波形发生器.doc

上传人:啊飒飒 文档编号:11744216 上传时间:2021-09-02 格式:DOC 页数:25 大小:1.50MB
返回 下载 相关 举报
波形发生器.doc_第1页
第1页 / 共25页
波形发生器.doc_第2页
第2页 / 共25页
波形发生器.doc_第3页
第3页 / 共25页
波形发生器.doc_第4页
第4页 / 共25页
波形发生器.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《波形发生器.doc》由会员分享,可在线阅读,更多相关《波形发生器.doc(25页珍藏版)》请在三一文库上搜索。

1、课程设计(论文)题 目 名 称 波形发生器 课 程 名 称 单片机原理及应用 学 生 姓 名 黎领 学 号 0640842060 系 、专 业 信息工程系电子信息工程专业 指 导 教 师 陈 玮 2008年12月6日邵阳学院课程设计(论文)评阅表学生姓名 学 号 系 专业班级 题目名称 课程名称 一、学生自我总结 学生签名: 年 月 日二、指导教师评定评分项目综合成绩权 重单项成绩指导教师评语: 指导教师(签名): 年 月 日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。摘要波形

2、发生器在一般的电子和通信实验中使用频率很高,目前我们实验室用的较多的波形发生器主要有两种:低频正弦波发生器和通用多波形发生器,前者只能产生正弦波,调节范围不大,但是信号稳定,失真度底,主要用在对波形有很高的要求的实验中;后者能产生正弦波、方波和三角波,也有的能产生三种以上波形。这两种波形发生器都比较昂贵,而在我们很多的实验中有的要求产生更多的波形种类和它们的谐波,有很多对于波形的要求不是很高,有的只是演示一下,在本课题中将这两方面的缺点结合起来加以改进,最大限度地利用单片机及其外围设备的资源,开发出能产生三角、方波、梯形、锯齿等多种波形及组合波形,并可以根据实际情况的需要在波形存储器中写入不同

3、的波形,可以随时控制波形的输出,能满足一般的实验及演示的需要,并且成本很低,操作简洁方便。关键词:AT89S51 单片机,DAC0832芯片,LM324运算放大器,PROTEUS和WAVE仿真软件等。 目录1. 绪论72. 系统硬件设计 8 2.1系统电路图设计82.2 各单元模块设计 82.2.1输入控制单元92.2.1单片机及外围电路设计 10 2.2.4输出单元 11 2.2.3 DA转换接口电路123. 系统软件设计16 3.1程序设计19 3.2 子程序及其流程图224. 整机软硬件联调与仿真254.1 方波264.2 锯齿波274.3 三角波274.4 梯形波275. 展望和总结2

4、86. 参考文献281.绪论在日常的工作和学习中,波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用波形发生器大部分是利用分立元件组成的起体积大,可靠性差,准确度低。目前我们实验室用的较多的波形发生器主要有两种:低频正弦波发生器和通用多波形发生器,前者只能产生正弦波,调节范围不大,但是信号稳定,失真度底,主要用在对波形有很高的要求的实验中;后者能产生正弦波、方波和三角波,也有的能产生三种以上波形。这两种波形发生器都比较昂贵,而在我们很多的实验中有的要求产生更多的波形种类,有很多对于波形的要求不是很高,有的只是演示一下,在本课题中将这两方面的缺点结合起来加

5、以改进,最大限度地利用单片机资源。本次课程设计以AT89S51 单片机为核心,采用AD/DA 转换接口技术构成的波形发生器可产生方波、三角波、锯齿波、梯形波等多种波形,波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、价格低廉、性能优越等优点。在本设计的基础上,加上开关键盘控制和LED显示,则可开关键盘输入选定所需要的波形,并用相应的LED显示。利用AT89S51单片机产生方波、锯齿波、三角波及梯形波,并可以在不同的波形之间任意切换,并可以根据实际情况的需要在波形存储器中写入不同的波形,可以随时添加,能满足一般的实验及演示的需要,并且成本很低,操作简洁方

6、便。本设计使用AT89S51单片机、DAC0832转换芯片以及LM324放大器等元件组成硬件电路,编写产生方波、三角波、锯齿波、梯形波等多种波形程序。通过单片机P1口开关输入所要产生波形的信号,单片机根据输入信号的判断调用相应的子程序产生数字信号波形,从P0输出到DAC0832芯片,运用DA转换技术,将数字信号转换成模拟信号到达LM324中处理并输出最终所需的波形。最后将整个电路在PROTUES和WAVE软件中进行仿真,通过示波器可以直接观测到所需的波形,同时也可以反过来修改程序的参量以实现所需的波形的参数要求。2.系统硬件设计2.1系统电路图设计如下:该电路大致由输入控制电路、单片机及外围电

7、路、DA转换接口电路、波形输出电路四部分组成。主要利用AT89C51单片机、DAC0832芯片、LM324运放集成芯片等元器件,完成由单片机产生的数字信号转换成模拟信号并输出显示。下图是波形发生器的原理图。以AT89C51单片机为核心。AT89C51的P1接口接一转换开关K,通过软件编程来选择方波,锯齿波,三角波,梯形波的产生。其中R8R11的作用是保证开关的各浮点节为0。方波,锯齿波,三角波,梯形波对应P1.0,P1.1,P1.2,P1.3三个接口是驱动蓝,绿,红,黄四个发光二极管,每种波形对应一个发光二极管作为波形指示灯。P0口接一数模转换器DA0832,CPU产生的数字量通过它转换成模拟

8、量输出相应的波形。在AT89C51的复位端接一复位电路,可进行手动复位。22 各单元模块设计2.2.1输入控制单元要使波形发生器产生所需波形,首先应通过DIPSW_4开关选择输入,并使相应的波形指示灯D1,D2,D3,D4发光,同时单片机的P0口相应的信号接受端为高电平,以达到选择信号输入的目的。 具体连接电路如下所示: 输入控制电路图2.2.1单片机及外围电路设计要使AT89S51单片正常工作必须要有外围时钟电路产生脉冲,本设计采用12MHZ晶振直接送入单片机中作为驱动端。同时在波形发生器中有时需要复位处理,需要设计按键脉冲复位利用RC微分电路产生脉冲。在本设计中,PO口外接DAC0832作

9、为负载,需要接RP1 10K的电阻作为负载,以增强P0口带负载能力,使波形发生器后续DA转换电路和放大电路正常运行。电路连接如下所示: 2.2.3 DA转换接口电路 AT89C51单片机输出的数字信号利用DAC0832芯片转换成模拟信号, 0832的输入寄存器和DAC寄存器采用单缓冲控制方式,因为波形发生器只需要一路模拟信号输出或者几路模拟量的非同步输出的情况。在这种方式下,将2级寄存器的控制信号接,输入数据在控制信号的作用下,直接送入DAC寄存器中。写选通线、都与AT89C51的写信号WR连接。DAC0832芯片的引脚连接方式如下图所示: 2.2.4输出单元 由于0832芯片是电流型输出,所

10、以在电路中采用运算放大器LM324实现I/V转换,外接集成运算放大器使之成为电压型输出。本设计采用的是双电源工作模式,同时采用反馈原理,构成电流/电压转换电路和反相比例加法器电路。在调试和仿真时,通过PROTEUS软件的虚拟示波器观察到最终波形显示。2.3元器件选择与介绍2.3.1 单片机AT89S51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的

11、可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输

12、出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地

13、址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。主要特性:1.与MCS-51 兼容 2.4K字节可编程闪烁存储器 3.寿命:1000写/擦循环 4.数据保留时间:10年5.全静态工作:0Hz-24MHz 6.三级程序存储器锁定7.1288位内部R

14、AM 8.32可编程I/O线9.两个16位定时器/计数器10.5个中断源 11.可编程串行通道12.低功耗的闲置和掉电模式 13.片内振荡器和时钟电路振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.3.2 DAC0832芯片DAC0832芯片的原理:DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。图1为DAC08

15、32的引脚图。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为1LSB,参考电压为(+10-10)V,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 /XFER。DAC0832可处于三种不同的工作方式: (1)直通方式 :当ILE接高电平,、和都接数字地时,DAC处于直通方式,8位数字量一旦到达DI7DI0输入端,就立即加到8位D/A转换器,被转换成模拟量。例如在构成波形发生器的场合,就要用到这种方式,即把要产生基本波形的数据存在R

16、OM中,连续取出送到DAC去转换成电压信号。(2)单缓冲方式 :只要把两个寄存器中的任何一个接成直通方式,而用另一个锁存器数据,DAC就可处于单缓冲工作方式。一般的做法是将和都接地,使DAC寄存器处于直通方式,另外把ILE接高电平,接端口地址译码信号,接CPU的信号,这样就可以通过一条MOVX指令,选中该端口,使和有效,启动D/A转换。本设计就是采用单缓冲方式控制DAC0832电路连接如下所示: (3)双缓冲方式 :主要在以下两种情况下需要用双缓冲方式的D/A转换。在需要同步进行D/A转换的多路DAC系统中,采用双缓冲方式,可以在不同的时刻把要转换的数据打入各DAC的输入寄存器,然后由一个转换

17、命令同时启动多个DAC转换。先用3条输出指令选择3个端口,分别将数据写入各DAC的输入寄存器,当数据准备就绪后,再执行一次写操作,使变低同时选通3个D/A的DAC寄存器,实现同步转换。2.3.3 LM324芯片LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+

18、)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图2图 1 图 2 LM324的特点:1.短跑保护输出 2.真差动输入级3.可单电源工作:3V-32V 4.低偏置电流:最大100nA(LM324A)5.每封装含四个运算放大器。 6.具有内部补偿的功能。7.共模范围扩展到负电源 8.行业标准的引脚排列9.输入端具有静电保护功能由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。3.系统软件设计3.1 设计程序 主程序的运行过程是:开机以后进行查键,即做查询输入控制端P1的状态,将信息输入单片机中,运

19、行相应的程序产生对应的波形,然后根据按的键转到相应的子程序进行处理 。程序流程图如下图:SQUARE按下初始化,设置常量及指针SAW按下TRIANG按下LADDER按下跳转到主程序NNNN开 始点亮 D1调用方波输出程序,输出一个周期的方波点亮 D2调用锯齿波输出程序,输出一个 周期的锯齿波点亮D3调用三角波输出程序,输出一个周期的三角波点亮D4调用梯形波输出程序,输出一个周期的梯形波主程序主程序如下:ORG 0000H SQU BIT P1.0 ;P1口位定义 方波SAW BIT P1.1 ; 锯齿波 TRI BIT P1.2 ; 三角波LADDER BIT P1.3 ; 梯形波LJMP S

20、TARTORG 0030HSTART: MOV P1,#0FFH ;P1口置一 MAIN: JBC SQU,S1 ; SQU为1跳转到S1 JBC SAW,S2 ; SAW为1跳转到S2 JBC TRI,S3 ; TRI为1跳转到S3 JBC LADDER,S4 ; LADDER为1跳转到S4 SJMP MAINS1: LCALL SQUARE ;调用方波发生子程序 SJMP MAINS2: LCALL SAV;调用锯齿波发生子程序 SJMP MAINS3: LCALL TRIAGE;调用三角波发生子程序 SJMP MAINS4: LCALL LADD;调用梯形发生子程序 SJMP MAINS

21、QUARE: MOV DPTR,#0FFH;选定0832L1: MOV A,#00H MOVX DPTR,A ;向0832输出数据 LCALL DELAY ;调用延时子程序 MOV A,#0FFH ;给A赋值0FFH MOVX DPTR,A LCALL DELAY ;调用延时子程序 RETDELAY: MOV R0,#250 ;延时子程序 D: MOV R1,#255 DJNZ R1,$ DJNZ R0,D RETSAV: L2: MOV A,#00H ;选定0832L21: MOV DPTR,#0FFH MOVX DPTR,A INC A CJNE A,#088H,L21 ;上升到088H

22、RETTRIAGE: CLR AL3: MOV DPTR,#0FFH ;选定0832 MOV A,#00HUP: MOVX DPTR,A INC A CJNE A,#0DEH,UP ;上升到A中为0DEHDOWN: DEC A MOVX DPTR,A CJNE A,#000H, DOWN ;下降到00H INC A RETLADD: MOV DPTR,#0FFH ;选定0832L4: MOV A,#42H ;下限减一送AUP1: INC A MOVX DPTR,A CJNE A,#0AEH,L5 ;与上限比较L5: JC UP1DOWN1:LCALL DELAY1 ;调用上限延时子程序L6:

23、DEC A MOVX DPTR,A CJNE A,#043H,L6 ;与下限比较L7: JC L4 RETDELAY1: MOV R0,#58 D1: MOV R1,#55 DJNZ R1,$ DJNZ R0,D1 RET END3.2子程序单元及流程图3.2.1方波发生子程序7A赋值为00HDPTR为0FFH选中DAC0832向0832中输出数据调用延时子程序延时给A赋值为0FFH 并输出数据再次调用延时程序返回单周期方波输出子程序流程图 方波程序: ORG 0000H LJMP STARTSTART:MOV DPTR,#0FFHL1: MOV A,#00H MOVX DPTR,A LCAL

24、L DELAY MOV A,#0FFH MOVX DPTR,A LCALL DELAY SJMP L1DELAY: MOV R0,#250 D: MOV R1,#255 DJNZ R1,$ DJNZ R0,D RET END程序仿真结果: 3.2.2锯齿波子程序及流程图锯齿波程序:ORG 0000H 将A清零令DPTR为0FFH选定0832将A的 值赋给DPTR数据输出累加器A值加1A=88返回NY单周期锯齿波输出子程序LJMP L2ORG 0030HL2: MOV A,#00HL21: MOV DPTR,#0FFH MOVX DPTR,A INC A CJNE A,#088H,L21 SJM

25、P L2 END锯齿波子程序仿真结果:3.2.3.三角波子程序及流程图:设A=00H令DPTR为0FFH选定0832将A的值赋给DPTR数据输出累加器A的值加1累加器A值减1A=0AEH累加器A再减1将A的值赋给DPTR输出数据累加器A加1A=068H返回NYNY单周期三角波输出子程序三角波程序:ORG 0000H LJMP START ORG 0030HSTART:MOV DPTR,#0FFH MOV A,#00H UP:MOVX DPTR,A INC A CJNE A,#0AEH,UP DEC A DOWN:DEC A MOVX DPTR,A CJNE A,#068H, DOWN INC

26、A SJMP UP END三角波程序结果:3.2.4梯形波子程序及流程图A赋值为42H令DPTR为0FFH选定0832累加器A加1将A 的值赋给DPTR输出A=0AEH调用延时子程序延时累加器A值减1将A的值赋值给DPTR输出A=43H返回梯形波输出程序NNYY梯形波程序: ORG 0000HLJMP L4ORG 0030HMOV DPTR,#0FFHL4: MOV A,#42HUP1: INC A MOVX DPTR,A CJNE A,#0AEH,L5L5: JC UP1DOWN1:LCALL DELAYL6: DEC A MOVX DPTR,A CJNE A,#043H,L7L7: JC

27、L4 SJMP L6DELAY: MOV R0,#65 D: MOV R1,#55 DJNZ R1,$ DJNZ R0,D RET END梯形波程序结果: 4.整机软硬件联调与仿真 运用PROTUES和WAVE软件对所编写的主程序进行仿真,通过PROTUES中的模拟示波器观察到结果仿真如下:4.1方波 当DIPSW4中第一路开关闭合,方波所对应的蓝灯发光,信号从P1.0输入,经过单片机产生和DA转换后,可在模拟示波器中观察到如下所示图象:4.2锯齿波当DIPSW4中第二路开关闭合,方波所对应的绿灯发光,信号从P1.1输入,经过单片机产生和DA转换后,可在模拟示波器中观察到如下所示图象:4.3三

28、角波当DIPSW4中第三路开关闭合,方波所对应的红灯发光,信号从P1.2输入,经过单片机产生和DA转换后,可在模拟示波器中观察到如下所示图象:4.4梯形波当DIPSW4中第四路开关闭合,方波所对应的黄灯发光,信号从P1.3输入,经过单片机产生和DA转换后,可在模拟示波器中观察到如下所示图象: 5.总结与展望 通过这次单片的单片机课程设计,让我真正的认识到课程设计的重要性,不但可以通过具体课题的设计工作学习到相关的新知识,而且可以课堂上所学习的知识用于实践。当在实际运用单片机的时候,才发现原来自己所学的知识并不熟悉,运用起来更是生疏,没有实现学以致用的目的,而且还发现了原来很多存在的疏忽,如简单

29、的指令一直都用错了。这次波形发生器的课程设计基本运用了单片机学习中的很多知识,如单片机的结构及基本原理,指令系统和汇编语言程序设计,DA转换接口技术等等。电路设计和程序设计都 参考了教材上的实例,但是在实际仿真的过程中却发现有些不妥只处,不能实现预期的结果,这样也提醒了自己书本不一定都是对的,所学的知识必须要充分理解再加以灵活的运用,更要注意具体问题具体分析解决。此外,通过实际的仿真操作,更加熟悉了PROTEUS和WAVE软件的操作流程,为以后的更好地学习和运用创造了条件。 本课程设计中的波形发生器只能用于简单的波形的产生,能满足一般的实验及演示的需要,但不能作为精确的波形信号发生源,不能随时

30、随地的改变波形的具体参数,如频率、幅度、脉宽等,不便于调节。本设计中如果要修改这些参数的话必须通过修改程序中的具体值得以实现,这是本次课程设计的缺陷之处。要想解决这个问题,可以通过的单片机的其他I/O连接一个外部设备用于信号输入来调节所需的各种参数,外部信息读入单片机内部,通过相关的程序操作和中断技术等来实现实时的控制和调节。这样制作的波形发生器就更趋于完美了,能够得到更加广泛的运用。 参考文献:1. 张迎新.单片机初级教程(第二版).北京航空航天大学出版社2. 徐新民.单片机原理与应用.浙江大学出版社3. 徐爱军.单片机实用教程-基于PROTEUS仿真.电子工业出版社4. 蔡惟铮.集成电子技术.高等教育出版社5. 刘芸.电路与电子技术基础.高等教育出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1