基于单片机方波发生器课程设计报告.doc

上传人:罗晋 文档编号:7209137 上传时间:2020-11-06 格式:DOC 页数:18 大小:367.01KB
返回 下载 相关 举报
基于单片机方波发生器课程设计报告.doc_第1页
第1页 / 共18页
基于单片机方波发生器课程设计报告.doc_第2页
第2页 / 共18页
基于单片机方波发生器课程设计报告.doc_第3页
第3页 / 共18页
基于单片机方波发生器课程设计报告.doc_第4页
第4页 / 共18页
基于单片机方波发生器课程设计报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于单片机方波发生器课程设计报告.doc》由会员分享,可在线阅读,更多相关《基于单片机方波发生器课程设计报告.doc(18页珍藏版)》请在三一文库上搜索。

1、河池科技大学河池科技大学 单单 片片 机机 课课 程程 设设 计计 题题 目目 _ 姓姓 名名 _ 学学 院院 _ 专专 业业 _ 学学 号号 _ 指导教师指导教师 _ 成成 绩绩 _ 二一二年五月二十二日制 湖南科技大学本科生课程设计(论文) i 摘 要 本课程设计设计的是一种 AT89C51 单片机构成的波形发生器,可产生方波、三角 波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极 性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代 码,通过仿真测试,其性能指标达到了设计要求。 关键词:关键词:单片机;DAC;信号发生器 湖南科技大学本科生

2、课程设计(论文) - 1 - 目 录 第一章第一章 系统功能系统功能要求:要求:.2 1.1、设计内容.2 1.2 设计原理 .2 第二章第二章 方波发生器设计方案论证方波发生器设计方案论证.3 2.1 方案的设计与选择 .3 第三章第三章 系统的硬件电路的设计系统的硬件电路的设计.4 3.1 系统硬件原理 .4 3.2 芯片端口资源分配表 .4 第四章第四章 软件设计软件设计.5 4.1 主程序 .5 4.2 系统初始化子程序 .5 4.3 键盘中断子程序 .5 4.4 定时器中断子程序 .6 第五章、第五章、 系统调试系统调试.7 第六章、第六章、 结果分析结果分析.9 参考文献参考文献.

3、10 附件附件 1.11 附录附录 2 基于单片机方波发生器的器件清单基于单片机方波发生器的器件清单.16 湖南科技大学本科生课程设计(论文) - 2 - 第一章第一章 系统功能系统功能要求:要求: 用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz,频率误 差比小于0.5%。要求用4 个按钮改变方波给定频率,按钮每按下一次,给定频率改变 一次。用示波器观察方波波形。 1.11.1、设计内容、设计内容 本课程设计是设计一个方波发生器,用 4 个按钮控制方波的频率以及占空比。 1.21.2 设计原理设计原理 AT89C51单片机具有组成微型计算机的各部分部件:CPU、RAM、

4、I/O定时器/计数器 以及串行通讯接口等。只要将AT89C51的ROM,接口电路,再配置键盘及其接口,显示 器及其接口,数模转换及波形输出,指示灯及其接口等四部分,即可构成所需波形发 生器。其信号发生器构成原理框图如图1所示。 图1 方波信号发生器设计原理框图 在信号发生器中,只用到片内中断请求,即是在AT89C51输出一个波形采样点信 号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结 束,产生中断请求,AT89C51响应中断,接着输出下一个信号波形,如此循环。当有按 键按下时,产生外部中断请求信号,CPU暂停当前工作,处理中断请求,重新装入定时 初值,开始定

5、时。 湖南科技大学本科生课程设计(论文) - 3 - 第二章第二章 方波发生器设计方案方波发生器设计方案论证论证 在电子技术领域中,实现方波发生器的方法有很多种,可以采用不同的原理及器 件构成不同的电路,但可以实现相同的功能。 2.12.1 方案的设计与选择方案的设计与选择 实现方波发生器的方法很多, 但主要有三个方案: 采用单片函数发生器 8038, 采用锁 相式频率合成器,采用单片机编程。 方案优点缺点 单片函数发生器 8038简单易行, 可实现数控,调整频率信号频率稳定度不高 锁相式频率合成器性能良好难以达到输出频率覆盖系数 单片机编程信号精度较高 需求软硬件结合 通过对比, 决定采用单

6、片机编程的方法来实现。 该方法可以通过编程的方法来 控制信号波形的频率和幅度, 而且在硬件电路不变的情况下, 通过改编程序来实现 频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做得 很高。 本设计用到一个AT89C51微处理器,4个按键,一个四与门。AT89C51用到两个定时 器,定时器0和定时器1。其中定时器0工作在定时方式1下,决定方波频率;定时器1工 作在定时方式1下,用来设定占空比。按键1与2控制方波信号频率。按下按键1或2时, 进行频率的调节,占空比不变。1键按下时,频率增加100Hz,若2键按下时,频率增加 10Hz。频率最大值为500Hz,当频率大于最大值

7、时,重新赋值为50Hz。另外两个按键控 制方波信号占空比。当按键3和4按下时,进行占空比调节,频率不变。3键按下时,占 空比进行增加10%,4键按下时,占空比增加1%。占空比最大值为100%,当占空比大于 100%时,重新赋值为0%。 湖南科技大学本科生课程设计(论文) - 4 - 第三章第三章 系统的硬件电路的设计系统的硬件电路的设计 3.13.1系统硬件原理系统硬件原理 系统硬件原理图如图2。本次设计中,采用内部时钟方式。 AT89C51单片机的 P1.0、P1.1、P1.2、P1.3口分别连接四个按键,对输出方波的频率、占空比进行控制。 P2.0口作为方波输出口,可以通过示波器来观察波形

8、。四个键盘口连接一个四与门, 与INT0口连接,将键盘中断请求信号送入CPU。 图2 系统硬件原理图 3.23.2芯片端口资源分配表芯片端口资源分配表 表2 74LS21芯片端口资源分配表 芯片端口 作用说明 1 连接按键1,判断按键1是否按下 2 连接按键2,判断按键2是否按下 3 连接按键3,判断按键3是否按下 4 连接按键4,判断按键4是否按下 5 发送键盘中断请求信号 表3 AT89C51 芯片端口资源分配表 芯片端口 作用说明 P1.0 连接按键1,控制输出方波频率 P1.1 连接按键2,控制输出方波频率 P1.2 连接按键3,控制输出方波占空比 P1.3 连接按键4,控制输出方波占

9、空比 湖南科技大学本科生课程设计(论文) - 5 - P2.0 输出方波波形 P3.2 接收键盘中断请求信号 第四章第四章 软件设计软件设计 方波发生器的软件设计包括主程序、延时子程序、系统初始化程序、键盘中断子 程序、定时器中断子程序。 4.14.1 主程序主程序 主程序包括系统初始化,和一个死循环系统。当有中断请求信号产生时,跳出循 环, 执行中断程序。流程图如图3 所示。 图 3 主程序流程图 4.24.2系统初始化子程序系统初始化子程序 在此程序中,给所有变量赋初值:键盘扫描口、初始频率与占空比及定时、开中 断、定时器0与定时器1的工作方式等。初始化时启动了定时器0和定时器1.其中初始

10、频 率为50Hz,占空比为50%。键盘中断处理子程序流程图如图4所示 4.34.3键盘中断子程序键盘中断子程序 键盘用外中断 0 实现。当有键按下时,产生低电平送入 INT0 口,形成中断请求 信号,CUP 转去执行键盘中断子程序,进行频率调节或占空比调节。 (1)频率调节 按下按键 1 或 2 时,进行频率的调节,占空比不变。1 键按下时,频率增加 100Hz,若 2 键按下时,频率增加 10Hz。频率最大值为 500Hz,当频率大于最大值时,重新赋值为 50Hz。 (2)占空比调节 当按键 3 和 4 按下时,进行占空比调节,频率不变。3 键按 下时,占空比进行增加 10%,4 键按下时,

11、占空比增加 1%。占空比最大值为 99%,当占 空比大于 99%时,重新赋值为 1%。 开始 系统初始化 空循环 湖南科技大学本科生课程设计(论文) - 6 - N Y N Y 图 4 键盘中断处理子程序流程图 4.44.4 定时器中断子程序定时器中断子程序 定时器中断子程序中有定时器 0 与定时器 1 中断, 频率定时器 0 中断流程图 与占空比定时器 1 流程图分别如图 5、图 6 所示。 定时器 0 中断执行的操作有:复位,启动自身进行频率定时,同时启动定时器 1, 开始 关中断 延时消抖 是否有键按下 判断按键号 键处理 频率和占空比 范围是否超界 赋初值 计算定时初值 键盘口初始化

12、关中断 湖南科技大学本科生课程设计(论文) - 7 - 进行占空比定时,输出高电平。 定时器 1 中断,停止自身的计时,输出低电平。 第五章、第五章、 系统调试系统调试 在本次课程设计中, 使用 Proteus 软件进行仿真调试。调试内容主要为软硬件的协 同,观察波形输出结果是否能够与设计方案所设计的那样达到要求。 调试结果如下: 1) 在 Proteus 软件中运行仿真,示波器窗口中出现方波波形,显然波形频率与占 空比分别为 50Hz 和 50%,符合程序初始化的结果。 图 7 Proteus 仿真 初始状态 2) 分别按下按键 1、 2 调节方波频率。可以看到方波波形频率不断增加,一快一慢

13、, 而占空比依然为 50%未变。 图 8 Proteus 仿真 调节方波频率 3) 重新在初始状态下进行仿真。 分别按下按键 3、 4 调节方波占空比, 可以看到 方波波形的占空比发生变化,而频率未变。 湖南科技大学本科生课程设计(论文) - 8 - 图 9 Proteus 仿真 调节方波占空比 湖南科技大学本科生课程设计(论文) - 9 - 第六章、第六章、 结果分析结果分析 在本次设计中, 方波信号发生器的频率和占空比都独立可调。 输出方波信号 的占空比围为 0%100%,调节精度为 1%;频率范围为 50Hz500Hz,调节精度为 10Hz。频率和占空比之间的调节彼此独立。 进行频率调节

14、时, 每次可以增加 100Hz 或 10Hz, 超过 500Hz 输出为 50Hz 的方波;进行占空比调节时,每次可增加 1%或 10%, 超出 100%时输出占空为 0%方波。 总体看来,设计成果达到了设计要求。 输出方波的波形稳定,调节也较为简单。 湖南科技大学本科生课程设计(论文) - 10 - 参考文献参考文献 1 皮大能.南光群.刘金华.单片机课程设计指导书.北京理工大学出版社,2010.7. 2 李光飞.楼然苗.胡佳文.谢象佐.单片机课程设计实例指导.北京航空航天大学出版社,2004.9. 3 求是科技.单片机典型模块设计实例导航.人民邮局出版社.2004.5. 4 童诗白.模拟电

15、路技术基础M.北京:高等教育出版社,2000.5. 5 方大千.鲍俏伟.实用电子控制电路.国防工业出版社,2003.4. 6 李朝青.单片机原理及接口技术.北京航空航天大学出版社.2011.6 湖南科技大学本科生课程设计(论文) - 11 - 附件附件 1 1 基于单片机方波发生器的程序清单:基于单片机方波发生器的程序清单: #include #define uchar unsigned char #define uint unsigned int float fosc=12000000; /系统时钟频率 sbit KEY1=P10; /控制频率百位; sbit KEY2=P11; /控制频率

16、十位; sbit KEY3=P12; /控制占空比十位; sbit KEY4=P13; /控制占空比个位; sbit OUTPUT=P20; /方波输出端口; uchar zkb; uint freq; uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H; /定 /* 延时子程序 */ void delay(uchar n) /延时 uchar i; while(n-) for(i=255;i0;i-) 湖南科技大学本科生课程设计(论文) - 12 - /* 系统初始化 */ void chushihua(void) P1=0 x0f; freq=50; zkb

17、=50; TIMER0_L=0 xe0; TIMER0_H=0 xb1; TIMER1_L=0 xf0; TIMER1_H=0 xd8; TL0=0 xe0; /初始频率 50Hz 定时 20ms TH0=0 xb1; TL1=0 xf0; /初始占空比 50%定时 10ms TH1=0 xd8; TMOD=0 x11; /定时器 1 和定时器 0 工作在方式 1 IT0=1; /选择 INT0 为下降沿触发方式 EX0=1; /外部中断 0 允许 ET0=1; /定时器 1 和定时器 0 中断允许 湖南科技大学本科生课程设计(论文) - 13 - ET1=1; EA=1; /系统中断允许 T

18、R0=1; /定时器 1 和定时器 0 开始定时 TR1=1; /* 主函数 */ void main(void) chushihua(); /系统初始化 while(1) /* 定时器中断子程序 */ void Timer0_freq() interrupt 1 /频率定时器 0 中断 TR1=1; /启动定时器 1,占空比定时 TL0=TIMER0_L; TH0=TIMER0_H; OUTPUT=1; /输出高电平 湖南科技大学本科生课程设计(论文) - 14 - void Timer1_zkb() interrupt 3 /占空比定时器 1 中断 TR1=0; /定时器 1 停止 TL1

19、=TIMER1_L; TH1=TIMER1_H; OUTPUT=0; /输出低电平 /* 键盘扫描子程序 */ void keyscan() interrupt 0 using 1 /外部中断 0 float TF0,TZ1; EX0=0; /关中断 delay(10); /延时消抖 if(P1!=0 x0f) /判断是否有键按下 if(KEY1=0) freq+=100; /按键为 1 号,频率加 100 if(KEY2=0) freq+=10; /按键为 2 号,频率加 10 if(freq500) freq=50; /频率大于 500Hz,重新赋值为 5 if(KEY3=0) zkb+=

20、10; /按键为 3 号,占空比加 10 湖南科技大学本科生课程设计(论文) - 15 - if(KEY4=0) zkb+; /按键为 4 号,占空比加 1 if(zkb100) zkb=1; /占空比大于 100,重新赋值为 TF0=(65536-fosc/(12.0*freq);/频率定时初值 TZ1=(65536-(fosc*zkb)/(12.0*100*freq); /占空比定时 TIMER0_H=(uint)TF0/256; TIMER0_L=(uint)TF0%256; TIMER1_H=(uint)TZ1/256; TIMER1_L=(uint)TZ1%256; P1=0 x0f

21、; /给键盘扫描口赋初值 EX0=1; /开中断 TR0=1; /定时器 1 和定时器 0 开始定时 TR1=1; 湖南科技大学本科生课程设计(论文) - 16 - 附录附录 2 2 基于单片机方波发生器的器件清单基于单片机方波发生器的器件清单 1. 9*15 万能板.1 个 2. 40P 锁紧座.1 个 3. 40P 晶振座子.1 个 4. 自锁开关.1 个 5. 按键.5 个 6. 25V10uf 电解电容.5 个 7. 30pf 瓷片电容.5 个 8. 3mmLED 灯.15 个 9. 40P 单排排针.5 个 10. 40P 单排排座.5 个 11. 10K9 脚排阻.5 个 12. 方头 USB-B 母.2 个 13. 10k 电阻.4 个 14. AT89C52.1 个 15. 74LS21.1 个 16. 1uf 电容.1 个

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

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


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