单片机课程设计波形发生器报告_第1页
单片机课程设计波形发生器报告_第2页
单片机课程设计波形发生器报告_第3页
单片机课程设计波形发生器报告_第4页
单片机课程设计波形发生器报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录第一章概述2第二章设计任务3第三章硬件设计33.1系统主体构造 33.2硬件元件概述 33.3硬件连接 93.4硬件参数简介 10第四章软件设计104.1锯齿波程序设计 114.2三角波程序设计 124.3正弦波程序设计 13第五章系统功能描述和功能15第六章设计心得16第七章参考文献16附录16程序设计20单片机课程设计第一章概述课程设计是一项重要的实践性教育环节 ,是学生在完成本专业所有课程学习后必须接受的一项结合本专业方向的、系统的、综合的工程训练。在教师指导下,运用工程的方法,通过一个较复杂课题的设计练习,可使学生通过综合的系统设计,熟悉设计过程、设计要求、完成的工作内容和具体的设

2、计方法,掌握必须提交的各项工程文件。课程设计的基本目的是: 培养理论联系实际的设计思想, 训练综合运用电路设计和有关先修课程的理论, 结合生产实际分析和解决工程实际问题的能力,巩固,加深和扩展有关电子类方面的知识。课程设计的主要任务是运用所学微控制器技术、 微机原理等方面的知识,设计出一台以 AT89C51 为核心的单片机数据采集、通讯或测控系统,完成信息的采集、处理、输出及人机接口电路等部分的软、硬件设计。多功能波形发生器设计课题需要充分灵活运用编程语言所提供的各种指令语句, 巧妙利用软硬件实现以上所要求的功能, 在程序逻辑设计上也要求正确, 合理的对项目进行分解分块, 合理的逻辑设计可以起

3、到事半功倍的效果, 是整个项目当中最富有创新性和挑战性的部分。2单片机课程设计第二章设计任务本次设计要求采用单片机和DAC 设计波形发生器,具体要求如下:( 1)利用单片机和 DAC0832 产生三角波、正弦波等波形。( 2)完成 DAC 与运放的连接,输出可供示波器显示。( 3)用按键改变波型的种类,同时显示波形的代号,波形的幅值与频率。第三章硬件设计3.1 系统主体构造芯片方面选用 AT89C51 与 DAC0832 为主要芯片,根据要求采用键盘选择产生的波形的类型, 所以基本电路有键盘电路, 数模转换电路。整体框架图如下所示:锯齿波单0832 D/A 转片三角波机运放示波器正弦波3.2

4、硬件元件概述3单片机课程设计本次设计所采用的硬件资源主要有:3.2.1 AT89C51 单片机其引脚图如图所示。U119XTAL1P0.0/AD03938P0.1/AD137P0.2/AD21836XTAL2P0.3/AD335P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD7P2.0/A82122P2.1/A923P2.2/A102924PSENP2.3/A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A151P1.0P3.0/RXD10211P1.1P3.1/TXD312P1.2P3.2/INT0413P1

5、.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C51PROGRAM=Text3.HEX图 3.1 AT89C51 引脚图芯片的引脚描述如下:1、主电源引脚 VCC 和 VSSVCC (40 脚)接 +5V 电压;VSS (20 脚)接地。2、外接晶体引脚XTAL1 和 XTAL2XTAL1 (19 脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端, 这个放大器构成了片内振荡器。当采用外部振荡器时,对 HMOS 单片机,此引脚应接地;对CHMOS 单片机,此引脚作为驱动端。XTAL2

6、 (18 脚)接外晶体的另一端。在单片机内部,接至上述振荡4单片机课程设计器的反相放大器的输出端。采用外部振荡器时,对HMOS 单片机,该引脚接外部振荡器的信号, 即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS ,此引脚应悬浮。3、控制或与其它电源复用引脚RST/VPD、ALE/PROG 、 PSEN 和EA/VPP RST/VPD(9 脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与 VSS 引脚之间连接一个约8.2k 的下拉电阻,与 VCC 引脚之间连接一个约 10F的电容,以保证可靠地复位。VCC 掉电期间,此引脚可接上备用电源, 以保

7、证内部 RAM 的数据不丢失。当 VCC 主电源下掉到低于规定的电平, 而 VPD 在其规定的电压范围( 5±0.5V)内, VPD 就向内部 RAM 提供备用电源。 ALE/PROG(30 脚):当访问外部存贮器时, ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器, ALE 端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE 脉冲。 ALE端可以驱动(吸收或输出电流)8 个 LS 型的 TTL 输入电路。对于 EPROM 单片机(如 8

8、751),在 EPROM 编程期间,此引脚用于输入编程脉冲( PROG)。 PSEN(29 脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN5单片机课程设计有效。但在此期间,每当访问外部数据存储器时, 这两次有效的 PSEN 信号将不出现。 PSEN 同样可以驱动 (吸收或输出) 8 个 LS 型的 TTL 输入。 EA/VPP (引脚):当 EA 端保持高电平时,访问内部程序存储器,但在 PC(程序计数器)值超过 0FFFH(对 851/8751/80C51)或 1FFFH(对 8052)时,将自动转向执行外部程序存储器内的程序。

9、 当 EA 保持低电平时,则只访问外部程序存储器, 不管是否有内部程序存储器。对于常用的 8031 来说,无内部程序存储器,所以 EA 脚必须常接地,这样才能只选择外部程序存储器。对于 EPROM 型的单片机(如 8751),在 EPROM 编程期间,此引脚也用于施加 21V 的编程电源( VPP)。4、输入 /输出( I/O)引脚 P0、P1、P2、P3(共 32 根) P0 口(39 脚至 32 脚):是双向 8 位三态 I/O 口,在外接存储器时,与地址总线的低 8 位及数据总线复用, 能以吸收电流的方式驱动 8 个LS 型的 TTL 负载。 P1 口( 1 脚至 8 脚):是准双向 8

10、 位 I/O 口。由于这种接口输出没有高阻状态, 输入也不能锁存, 故不是真正的双向 I/O 口。P1 口能驱动(吸收或输出电流) 4 个 LS 型的 TTL 负载。对 8052、8032,P1.0引脚的第二功能为T2 定时 /计数器的外部输入, P1.1 引脚的第二功能为 T2EX 捕捉、重装触发,即 T2 的外部控制端。对 EPROM 编程和程序验证时,它接收低 8 位地址。P2 口( 21 脚至 28 脚):是准双向 8 位 I/O 口。在访问外部存储器6单片机课程设计时,它可以作为扩展电路高 8 位地址总线送出高 8 位地址。在对 EPROM 编程和程序验证期间,它接收高 8 位地址。

11、 P2 可以驱动(吸收或输出电流) 4 个 LS 型的 TTL 负载。P3 口(10 脚至 17 脚):是准双向 8 位 I/O 口,在 MCS-51 中,这 8个引脚还用于专门功能,是复用双功能口。P3 能驱动(吸收或输出电流) 4 个 LS 型的 TTL 负载。作为第一功能使用时,就作为普通I/O 口用,功能和操作方法与P1口相同。作为第二功能使用时,各引脚的定义如表所示。值得强调的是, P3 口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。第二功能描述如下:P3.0 10 RXD(串行输入口)P3.1 11 TXD(串行输出口)P3.2 12 INT0(外部中断 0)P3.3

12、13 INT1(外部中断 1)P3.4 14 T0(定时器 0 外部输入)P3.5 15 T1(定时器 1 外部输入)P3.6 16 WR(外部数据存储器写脉冲)P3.7 17 RD(外部数据存储器读脉冲)3.2.2D/A 转换 0832 芯片7单片机课程设计DAC0832 是采样频率为八位的D/A 转换芯片,集成电路内有两级输入寄存器。 DAC0832 输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。其芯片引脚图如图所示,DAC0832 引脚图引脚功能如下:D0D7:数字信号输入端。ILE :输入寄存器允许,高电平有效。CS:片选信号,低电平有效。WR1 :写

13、信号 1,低电平有效。XFER:传送控制信号,低电平有效。WR2 :写信号 2,低电平有效。IOUT1 、IOUT2 :DAC 电流输出端。RFB:是集成在片内的外接运放的反馈电阻。VREF:基准电压( -1010V)。8单片机课程设计VCC:是源电压( +5+15V)。AGND :模拟地NGND :数字地,可与AGND 接在一起使用。3.3 硬件连接3.3.1数模转换电路数模转换电路采用的是 DAC0832 芯片。它是一种使用较多的 8 位 D/A 转换器,其转换时间 1us,工作电压为 +5V 到+15V,基准电压 -10V 到+10V 。由于其内部有两个 8 位寄存器和一个 8 位 D/

14、A 转换器,故可进行两级缓冲操作, 使操作有很大的灵活性, 本设计采用单缓冲方式。DAC0832 与 AT89C51 的连接。单片机 P0 口与数模转换器的数据口连接,为保证单片机 P0 口的驱动能力,在 P0口加上上拉电阻。3.3.2键盘电路键盘电路是控制部分。 通过 K1 控制产生方波, K2 控制产生三角波, K3 控制产生正弦波。分析 DAC0832 的输出, U=(Vref/2n)*D ,由此公式可知,输出波形的幅度与Vref 的大小有关,所以我们通过控制 Vref 的大小来改变波形的幅度,以简化我们的程序。3.3.3复位电路与时钟电路该电路采用上电复位, 利用电容充电来实现的, 即

15、上电瞬间 RST端的电位与 VCC 相同,随着充电电流的减少, RST 的电位逐渐下降。由于频率较大时, 三角波、正弦波、方波中每一点延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的功率波形,该电路采用9单片机课程设计12MHZ 晶振。原理图如下:复位电路与时钟电路3.4 硬件参数简介AT89C51 单片机采用12MHz 时钟, VCC 供电电源采用 +5v,DAC0832 工作电源采用 +5v。第四章软件设计程序是本设计中的重点。单片机的功能与它的程序有很大关系,本设计中,为实现输出三种波形, 要使单片机定时向数模转换器发送数据,数据的不同将实现不同的波形输出。输出波形原理图如下:

16、10单片机课程设计4.1 三角波程序设计三角波有上升与下降两条边,所以从00H 发送到 FFH 应有相同的间隔,选择每隔 02H 发送一次数据,即发送00H、02H、 04HFEH 、FEH04H 、02H、00H,程序原理图如下 :TRI:JNBP1.0,N3JNBP1.2,N4LJMP TTRIN3:MOVR7,#00HLJMP TC2N4:MOVR7,#02HLJMP TC2;判断其他键是否按下,从三角波转换到其他波形TTRI: CJNE R7,#01H,TC2MOVR0,#00HK20:MOVP0,R0;将 P0 的数据送入数模转换器MOVP2,#0FFHMOVA,P2CPLA11单片

17、机课程设计MOVR3,AL20:DECR3CJNE R3,#255,L20;通过 P2 口控制延时INCR0INCR0;R0 内容加 2CJNE R0,#254,K20;实现将 00H 不断加 2,然后送入数模转换器K21:MOVP0,R0;R0 的数据送入数模转换器MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL21:DECR3CJNE R3,#255,L21DECR0DECR0;R0 内容减 2CJNE R0,#0,K21;实现将 FEH 不断减 2,然后送入数模转换器LJMP TRITC2:RET4.2 正弦波程序设计正弦波和三角波类似,都有上升与下降两条边,而且正弦波有正负

18、极之分,所以它的数据表比三角波的复杂,其数据表见程序,程序原理如下:SIN:JNBP1.0,N5JNBP1.1,N6LJMP SSINN5:MOVR7,#00HLJMP TC3N6:MOVR7,#01HLJMP TC3;判断是否有其他键按下,并跳转到其他波形SSIN: CJNE R7,#02H,TC312单片机课程设计MOVR0,#00HK30:MOVA,R0MOVDPTR,#TAB;将 TAB 的地址送入 DPTRMOVC A,A+DPTR;从 TAB 中取出数据,放入 A 中MOVP0,A;将 A 中数据送入数模转换器INCR0MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL3

19、0:DECR3CJNE R3,#255,L30;K2 口控制延时CJNE R0,#255,K30LJMP SINTC3:RETTAB:DB80H,82H,84H,86H,88H,8AH,8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EHDB0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ABH,0ADH,0AFH,0B1H,0B2H,0B4H,0B6H,0B7H,0B9H,0BAHDB0BCH,0BDH,0BFH,0C0H,0C1H,0C3H,0C4H,0C5H,0C6H,0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEHDB0CEH

20、,0CFH,0D0H,0D1H,0D1H,0D2H,0D2H,0D3H,0D3H,0D4H,0D4H,0D4H,0D4H,0D5H,0D5H,0D5HDB0D5H,0D5H,0D5H,0D5H,0D4H,0D4H,0D4H,0D4H,0D3H,0D3H,0D2H,0D2H,0D1H,0D1H,0D0H,0CFHDB0CEH,0CEH,0CDH,0CCH,0CBH,0CAH,0C9H,0C8H,0C6H,0C5H,0C4H,0C3H,0C1H,0C0H,0BFH,0BDHDB0BCH,0BAH,0B9H,0B7H,0B6H,0B4H,0B2H,0B1H,0AFH,0ADH,0ABH,0AAH,0

21、A8H,0A6H,0A4H,0A2HDB13单片机课程设计0A0H,9EH,9CH,9AH,98H,96H,94H,92H,90H,8EH,8CH,8AH,88H,86H,84H, 82HDB80H,7DH,7BH,79H,77H,75H,73H,71H,6FH,6DH,6BH,69H,67H,65H,63H,61HDB5FH,5DH,5BH,59H,57H,55H,54H,52H,50H,4EH,4DH,4BH,49H,48H,46H,45HDB43H,42H,40H,3FH,3EH,3CH,3BH,3AH,39H,37H,36H,35H,34H,33H,32H,31HDB31H,30H,2

22、FH,2EH,2EH,2DH,2DH,2CH,2CH,2BH,2BH,2BH,2BH,2AH,2AH, 2AHDB2AH,2AH,2AH,2AH,2BH,2BH,2BH,2BH,2CH,2CH,2DH,2DH,2EH,2EH,2FH,30HDB31H,31H,32H,33H,34H,35H,36H,37H,39H,3AH,3BH,3CH,3EH,3FH,40H,42HDB43H,45H,46H,48H,49H,4BH,4DH,4EH,50H,52H,54H,55H,57H,59H,5BH,5DHDB5FH,61H,63H,65H,67H,69H,6BH,6DH,6FH,71H,73H,75H,

23、77H,79H,7BH,7DHEND第五章系统功能描述和说明DAC波形发生器采用 AT89C51单片机于 DAC0832连接,DAC0832输出的模拟信号经过运算放大器放大, 通过示波器显示波形。 本发生器可以实现对输出波形类型,幅值的人工控制。通过 AT89C51的 P0 口引出的三个个按键选择相应的输出波形:锯齿波,三角波,正弦波通过转动电位器的旋钮,改变输出波形的幅值。通过 P1 口输出三个波形的序号启动系统后,程序会等待用户按键选择波形,用户可以通过与 P1.0,P1.1, P1.2 三引脚相连的按键, 依次选择输出方波, 三角波和正弦波。 在输出波形的同时,LED 上会显示相应的波形

24、代号,通过旋转 RV1 电位器旋钮, 改变波形幅值。14单片机课程设计第六章设计心得这两周,在老师的指导下和同学合作之下最终成功地完成了此次设计,通过本次课程设计,我们有了很多收获,同时也发现了一些问题。通过本次课程设计, 使我对单片机的应用有了深刻的了解,让我对单片机编程和和使用单片机解决实际问题的能力有了很大的提高。另外,本次设计小组成员各有分工又紧密联系,每个人都注重分享、讨论,培养了团队意识。同时,通过本次课程设计也让我发现了一些问题。例如,对单片机基础知识掌握的不好,是我在本次设计中多次出现问题; 其次是对单片机的仿真缺乏了解。总之,通过这次课程设计使我对单片机语言的理解和掌握上有了

25、很大的进步,以前所了解的单片机语言仅限于一些片面的知识,课本上的内容如果不拿来实践一下的话很快就会忘记,通过这次编程,将这些零零碎碎的知识汇集起来,编写出了一个完整的系统, 并且对单片机语言的应用能力有了极大的提高,对于硬件接口的问题也有了深刻的了解。虽然不是最好的方案,但真实地得到锻炼。第七章参考文献新编单片机原理及应用 汪贵平 李登峰 龚贤武 雷旭 编著 机械工业出版社15单片机课程设计附录硬件电路连接图波形发生器硬件设计图16单片机课程设计DAC0832的接线方式17单片机课程设计静态显示模块系统仿真效果图锯齿波波仿真图18单片机课程设计三角波仿真图正弦波仿真19单片机课程设计程序设计O

26、RG0000HLJMP MAINORG0100HMAIN: JNBP1.0,D1;判断 K1JNBP1.1,D2;判断 K2JNBP1.2,D3;判断 K3LJMP MAIN;子程序跳转D1:MOVR7,#00HLCALLSTW;跳转到锯齿波波子程序LJMPMAIND2:MOVR7,#01HLCALLTRI;跳转到三角波子程序LJMPMAIND3:MOVR7,#02HLCALLSIN;跳转到正弦波子程序LJMPMAIN;锯齿波子程序STW:JNBP1.1,N1JNBP1.2,N2LJMP SSTWN1:MOVR7,#01HLJMP TC1N2:MOVR7,#02HLJMP TC1;判断其他键是

27、否按下,从锯齿波波转换到其他波形SSTW: CJNE R7,#00H,TC1MOVR0,#00HMOV P1,#1FHK00:MOVP0,R0;将 P0 的数据送入数模转换器CPLAMOVR3,AL00:DECR3CJNE R3,#255,L00INCR020单片机课程设计INCR0;R0 内容加 2CJNE R0,#254,K00;实现将 00H 不断加 2,然后送入数模转换器LJMP STWTC1: RET;三角波子程序TRI:JNBP1.0,N3JNBP1.2,N4LJMP TTRIN3:MOVR7,#00HLJMP TC2N4:MOVR7,#02HLJMP TC2;判断其他键是否按下,

28、从三角波转换到其他波形TTRI: CJNE R7,#01H,TC2MOVR0,#00HMOV P1,#2FHK20:MOVP0,R0; 将 P0 的数据送入数模转换器MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL20:DECR3CJNE R3,#255,L20;通过 P2 口控制延时INCR0INCR0;R0 内容加 2CJNE R0,#254,K20;实现将 00H 不断加 2,然后送入数模转换器K21:MOVP0,R0;R0 的数据送入数模转换器MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL21:DECR3CJNE R3,#255,L21DECR0DECR0;R

29、0 内容减 2CJNE R0,#0,K21 ;实现将 FEH 不断减 2,然后送入数模转换器21单片机课程设计LJMP TRITC2:RET;正弦波产生子程序SIN:JNBP1.0,N5JNBP1.1,N6LJMP SSINN5:MOVR7,#00HLJMP TC3N6:MOVR7,#01HLJMP TC3;判断是否有其他键按下,以从正弦波跳转到其他波形SSIN: CJNE R7,#02H,TC3MOVR0,#00HMOV P1,#3FHK30:MOVA,R0MOVDPTR,#TAB;将 TAB 的地址送入 DPTRMOVC A,A+DPTR;从 TAB 中取出数据,放入 A 中MOVP0,A;将 A 中数据送入数模转换器INCR0MOVP2,#0FFHMOVA,P2CPLAMOVR3,AL30:DECR3CJNE R3,#255,L30;K2 口控制延时CJNE R0,#255,K30LJMP SINTC3:RETTAB:DB80H,82H,84H,86H,88H,8AH,8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EHDB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ABH,0ADH,0AFH,0B1H, 0B2H,0B4H, 0B6H,0B7H,0B9H,0BAHDB0BCH,0BDH,0BFH,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论