方波发生器讲解.pdf

上传人:白大夫 文档编号:5485205 上传时间:2020-05-22 格式:PDF 页数:21 大小:618.67KB
返回 下载 相关 举报
方波发生器讲解.pdf_第1页
第1页 / 共21页
方波发生器讲解.pdf_第2页
第2页 / 共21页
方波发生器讲解.pdf_第3页
第3页 / 共21页
方波发生器讲解.pdf_第4页
第4页 / 共21页
方波发生器讲解.pdf_第5页
第5页 / 共21页
点击查看更多>>
资源描述

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

1、1 课程设计报告 课程名称:基于单片机的方波信号发生器 院部:电控学院 专业班级:电气 0601 班 学生姓名:程云鹏 指导教师:郝兆明 完成时间:2009 年 06 月 10 日 报告成绩: _ _ 评阅意见: 评阅教师日期 2 目录 一、概述 - 3 1.1 、设计内容 - 3 1.2 、设计的基本要求 - 3 二、方波发生器设计方案 - 4 2.1 、方案介绍 - 4 2.2 、方波信号发生器的原理与功能 - 4 三、系统的硬件设计 - 6 3.1 、单片机最小系统 - 6 3.2 、小键盘接口电路 - 7 3.3 、LED显示电路 - 7 四、系统的软件设计 - 8 4.1 、主程序

2、- 8 4.2 、系统初始化子程序 - 9 4.3 、显示子程序 - 9 4.4 、键盘扫描程序 - 10 4.5 、定时器中断子程序 - 11 五、调试与性能分析 - 12 5.1 硬件调试 - 12 5.2 软件调试 - 12 六、设计体会 - 13 参考文献 - 14 附录 A:基于单片机方波信号发生器的原理图- 15 附录 B:基于单片机方波信号发生器的程序清单- 16 附录 C:仿真图21 3 方波信号发生器设计 一、概述 单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一 系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不 为”。单片机的

3、应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用 消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。 单片机有两种基本结构形式: 一种是在通用微型计算机中广泛采用的,将程序存储 器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储 器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片 机以采用程序存储器和数据存储器截然分开的结构为多。本课题讨论的方波发生器的 核心是目前应用极为广泛的 51 系列单片机。 1.1 、设计内容 本课程设计是设计一个方波发生器,用4 位数码管显示方波的频率。 1.2 、设计的基本要求 频率

4、可调,用一个变阻器来调整波形的频率,频率调节范围为20Hz2000Hz; 占空比可调,采用两个按键来实现增加、减小波形的占空比作用,占空比调节步长 为 1%,即每按键一次,占空比增加或减少1%。占空比用另外两位数码管显示。 系统上电时频率依变阻器的阻值设定,占空比设定为50%。 而我们在此设计的方波发生器与要求要设计的有点区别,所设计的频率调节范围为 1Hz15000Hz,以调节变阻器的阻值来实现频率的调节相对来说要麻烦些。因此,频率 也使用按键来进行调节,不同的频率及占空比可以使用不同的按键来实现,而以键盘扫 描来实现各键的不同功能;显示部分可以使用ZLG7290 芯片及数码管来实现。由此即

5、可 构成一个最小单片机应用系统。 4 二、方波发生器设计方案 在电子技术领域中,实现方波发生器的方法有很多种,可以采用不同的原理及器件 构成不同的电路,但可以实现相同的功能。在此次设计中,有些地方与课题原本的具体 要求有点不同。如实现频率调节时,不是按要求利用调整变阻器的阻值来完成的,而是 用按键来实现的。 2.1 、方案介绍 微处理器模块 AT89S52,频率与占空比信息显示模块, 24 矩阵键盘模块, 74LS164 移位寄存器显示驱动模块。 本设计中用到两个定时器, 定时器 0 和定时器 1,其中定时器 0 工作在定时方式下,决定方波的频率;定时器1 同样工作在定时方式下,用于设定占 空

6、比。用 LED 显示器来显示频率与占空比,键盘的操作是通过外中断与单片机共同来控 制的,键盘操作来完成按要求对频率与占空比进行调节。 2.2 、方波发生器的原理与功能 方波发生器的原理方框图如图1 所示 由于系统的要求不高,比较单一的,再加上我们是通过定时器来调节频率 的,而非电阻, 键 盘 单 片 机 89S52 LED 显 示 频 率 与 占 空比数据 频 率 与 占 空比数据 图 1 方波发生器原理框图 5 因此实现起来就相对简化了。 仅用键盘、AT89S52及串行显示便可完成设计, 达到所要求 实现的功能。 方波发生器工作原理与功能: 简单的流程为:主程序扫描键盘,将设置信息输入,处理

7、后,输出到LED 显示器显 示。 单片机的晶振为 11.0592MHz,用到了两个定时器,即定时器0 与定时器 1,分别进 行频率与占空比的定时,两个定时器都是工作在方式1。根据计算定时器初值的公式: 12 2 tf TC oscL 计算出定时器 0 与定时器 1 所要装入的初值。 频率及占空比的显示电路由74LS164构成的驱动电路和LED 数码显示管组成, 利用 八个数码管来显示,有五位是用来显示频率的,有两位是显示占空比的,在频率与占空 比显示管中间有一个LED 数码管是用来显示“”的,用以区分频率显示与占空比显 示的。 此电路的键盘是由一个状态键,四个功能键(调节频率与占空比的增减)组

8、成,其 特殊之处在于利用外部中断实现键盘扫描。状态键有三种状态,当其处于状态0 时,则 其它的键会处于无用状态,当其处于状态1 时,可通过按四个调节键来调节频率,处于 第三种状态时,按四个调节键中的前两个便可对占空比进行调节了。 6 三、系统的硬件设计 3.1 、单片机最小系统 单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地进行工作。因而时 钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用 的时钟电路方式有两种:一种是内部时钟方式,一种是外部时钟方式,这里采用的是内 部时钟方式,外接晶振。时钟电路由片外晶体、微调电容和单片机的内部电路组成。选 取频率为 1

9、1.0592MHz的晶振,微调电容是瓷片电容。 89S52单片机的 P0.7 口作为波形输出口, 若接示波器,则可通过示波器来观察波形, 是一个矩形波。 此单元电路包括时钟电路、复位电路,具体电路如图2 所示: 图 2 单片机最小系统 7 3.2 、小键盘接口电路 小键盘如图 3 所示。它包括 8 个键,系统中用到的键只有5 个,分别为 0 号、1 号、 2 号、3 号、4 号键。其中 0 号键是状态键,采用外部中断控制,用它来确定其它几个键 的按键功能,具体作用在前述的系统功能中已做介绍了;另外4 个键为功能键,调节频 率与占空比的。小键盘中引出的6 根线依次分别接单片机的P1.0、P1.1

10、、P1.2、P1.3、 P1.4、P1.5 口。 图 3 小键盘接口电路 3.3 、LED显示电路 采用静态显示来实现显示功能,如图4 所示。移位寄存器74LS164 ,实现串行输入, 并行输出。串行数据由RXD 输出,从 74LS164的 A、B端口输入寄存器,移位时钟由TXD 提供。在移位时钟作用下,存放显示器段码的串行发送缓冲器数据逐位由A、B端移入到 74LS164中, 再由 Q0到 Q7并行输出到显示数码管相应的LED上。 8 片 74LS164首尾相串, 而时钟端则接在一起。这部分的最终功能是显示频率与占空比。 显示部分具体电路如图4 所示: 8 图 4 LED 显示电路 四、系统

11、的软件设计 方波发生器的软件设计包括主程序、延时子程序、系统初始化程序、显示子程序、 键盘扫描程序、定时器中断子程序。其中主程序用来控制整个程序的执行,它与各子程 序紧密相联,共同实现方波发生器各种功能的执行。 4.1 、主程序 主程序包括系统初始化及显示程序,是一个死循环系统。其流程图如图5 所示: 开始 系统初始化 显示 图 5 主程序流程图 9 4.2 、系统初始化子程序 在此程序中,给所有变量赋初值,有键盘扫描口、选择串行口工作方式SCON 、状态 标志位 flag 、初始频率与占空比及其定时、定时器0 与定时器 1 的工作方式等。初始化 时启动了定时器 0 与定时器 1。 4.3 、

12、显示子程序 利用分离频率的各位数值,将各位数值分别显示出来。在程序中利用了频率显示的 高位灭零的方法以致最高位为0 时就不显示,以致显示效果美观化。一共有五位是显示 频率的,若频率小于10000时,则万位不显示;若频率小于1000时,则万位与千位都不 显示,依次类推。 占空比的显示规律与频率的一样。 显示子程序流程图如图6 所示: 显示子程序入口 分离频率和占空比的各位数字 高位灭零处理 查表, 串口发送各位数字字型码 软件延时 结束 图 6 显示子程序流程图 10 4.4 、键盘扫描程序 键盘扫描用外中断0 实现,采用的是线反法,键盘扫描码采用逐行扫描的方法。 关于键盘扫描程序的说明: 频率

13、可调时,占空比保持原状不变,反之亦然,只能进行单一变量的调节,状态标 志 flag的初始值为 0。 (1)频率调节: i=0时,按键为状态键, 此时 flag加 1,即 flag=1, 此时进行频率的调节。 可以进 行加 1Hz、减 1Hz、加 100Hz 、减 100Hz操作,分别由 1 号键、2 号键、3 号键、4 号键控 制。如果按住某个键不放,便会执行连续加值或减值操作。这里的频率的最大值为 15000Hz ,当频率增至最大值时,还按增值键,此时频率会自动跳到1Hz开始继续增加。 同理,频率的最小值为1Hz,当减频率减至最小值时,再按减频率键,则频率会跳到 15000Hz 。 (2)占

14、空比调节: 当状态值 flag= 2 时,此时频率保持不变,进行占空比调节。只可进行加1 与减 1 操作,分别由 1 号键、 2 号键控制。 要注意的是占空比的初值是50,我们定义的 ZKB为 50(百分比的分子部分,为一 整数) ,故调节占空比时, ZKB会进行加 1,减 1 操作。 ZKB的最大值为 99,当增到最大 值时,便会返回到值1,如此循环。 (3)为了减轻单片机的工作量,在软件设计中采取了这样的措施,在修改参数确定 后才进行定时器初值TC0 、TC1的计算。 键盘中断处理子程序流程图与键处理流程图分别如图7、图 8 所示: 11 4.5 、定时器中断子程序 定时器中断子程序中有定

15、时器0 与定时器 1 中断, 频率定时器 0中断流程图与占空比 定时器 1 流程图分别如图 9、图 10 所示。 图 7 键盘中断处理子程序流程图 Y N EA=0 软件延时消抖 外部中断0 入口 键盘扫描,得到键码 查表取键值i 实时显示 键盘口初始化 EA=1 结束 键处理 是 否 为 抖 N Y i=1 ZKB+ i=2 ZKB- 边界 处理 Flag=2? N Y i=0? Flag+= 1 键处理 i=3 PL+=100 i=4 PL-=100 i=2 PL- i=1 PL+ 边 界 处 理 N Flag=1 Y N Flag=3? Flag=0 ,计算定时器0 和 1 的初值 键处

16、理结束 图 8 键处理流程图 12 (1) 定时器 0 遇中断执行的操作有复位, 启动自身进行频率定时, 同时启动定时器1, 进行占空比定时,输出高电平。 (2)定时器 1 遇中断,停止自身的计时,输出低电平。 五、调试与性能分析 5.1 硬件调试 硬件的测试首先是检查电路的逻辑线路是否正确,如果正确再检查原理图的线路连 接是否正确,电路的布局安排是否合理等等。软件的测试只要是检查程序的语法是否正 确,数据结构安排是否妥当,时序是否正确,整体流程安排是否合理。上面两部检查妥 当后,就到了系统调试最关键的一步,软硬件的协同调试,问题往往在此才能被发现。 5.2 软件调试 在软硬件协同调试时,硬件

17、问题比较少,主要体现在上拉电阻的使用,滤波电容的 使用等,极少发生逻辑上的错误。硬件的问题往往是致命的问题,其不易察觉,发现之 后电路更改也不容易。这就需要我们不断的实验,在实战中摸索出规律,吸取经验教训, 定时器 0 中断入口 TR1=1 重装定时初值 输出高电平 结束 图 9 频率定时器0 中断流程 定时器 1 中断入口 TR1=0 重装定时初值 输出低电平 结束 图 10 占空比定时器1 中断流程 13 在以后的电路设计中能设计出稳定的抗干扰能力强的电路。软件问题是调试中遇到问题 最多的,此系统中出现过的问题有以下几处: 1、键盘中断处理程序中中断入口后,没有关掉外部中断,出现键值读取不

18、正确, 不能正确操作键盘。解决方法,在中断入口处关掉外中断,并在出口时再开外中断; 2、键盘扫描前没有软件延时消抖,出现键值读取不准确。解决方法,在键盘中断 入口后在键值扫描前软件延时5ms ,消去键盘抖动所带来的误操作; 3、程序中有个别地方将“ =”与“=”混淆,造成结果不准确,解决办法,仔细查 找,将混淆出更正。 再把到计时设定时子程序加进来,看是否能通过菜单正确调用,返回。能否修改到 计时。整个调试完毕。 六、设计体会 在单片机课程设计中,我不仅加深了对单片机理论的理解,将理论很好地应用到实 际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自 己。更重要的是,

19、我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也 好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢 过,也战胜了,胜利的钟声也就一定会为我们而敲响。 但是,由于平时对单片机知识学习得不够扎实,理解得不够透彻、一知半解,致使 在运用是不能贯通,导致在设计过程中困难重重,往往无从下手,但是通过和同组的同 学一起探讨,最后还是一步一步的把所有的问题给一一解决了。在这次设计过程中,我 也对word、protel 、画图板等软件有了更进一步的了解,这使我在以后的学习中更加熟 练。 总之,本次单片机课程设计让我悟出了许多东西:第一,就是对资料的搜索、整理、 归类、总

20、结、保存的能力是一个至关重要的个人能力。如果没有这种能力,在大学学习 阶段,那么我们的学习将会是一种负担;今后我们走出校门,甚至在整个人生阶段,也 将会碌禄无为;第二,我们要学会坚持不懈,不轻易言弃,这对于我们非常的重要。如 果我们没有这种精神,一旦我们遇到一点挫折,我们也许就会被打败,以后进入社会就 14 会没有我们的立足之地。因此,我们要珍惜大学时光,循序渐进的培养这些能力,这样 才不会被瞬息万变的时代所淘汰。 参考文献 1 何立民 .MCS51单片机应用系统设计 M. 北京:北京航空航天大学出版社,2003. 2 徐君毅 . 单片微型机原理与应用 M. 上海:上海科技出版社 ,1995

21、3 公茂法 . 单片机人机接口实例集 M. 北京:航空航天大学出版社,1998. 4 沈红卫 . 基于单片机的智能系统设计与实现M. 北京:电子工业出版社 , 2005. 5 李广弟,朱月秀等 . 单片机基础 M. 北京:北京航空航天大学出版社, 2003. 15 附录 A:基于单片机方波信号发生器的原理图 RP R-10 SB1 SW1 SB2 SW1 SB3 SW1 SB4 SW1 SB5 SW1 SB6 SW1 SB7 SW1 SB8 SW1 1A 2 1B 3 1C 4 1D 5 NC 6 GND 7 NC 8 2D 9 2C 10 2B 11 2A 12 2Y 13 Vcc 14 1

22、Y 1 U10 CD4012 R2 2K PFO 5 NC 6 MR 1 Rst 8 PFI 4 GND 3 Vcc 2 Rst 7 U11 MAX708 C11 SB0 VCC GND 1 2 XP C1 Y C12 C13 GND GND Vcc R1 390 V1 电源输入 1 XP1 波形输 出 C10 Vcc GND XP2 INT0 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U1 74164 ab cde fgh G N D 3 V c c

23、8 LED1 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U3 74164 abcdefg h G N D 3 V c c 8 LED3 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U5 74164 a bcd efgh G N D 3 V c c 8 LED5 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4

24、7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U8 74164 a bcde fgh G N D 3 V c c 8 LED7 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U2 74164 abcd efg h G N D 3 V c c 8 LED2 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L

25、K 8 C L R 9 G N D 7 V c c 1 4 U4 74164 a bcdefgh G N D 3 V c c 8 LED4 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U7 74164 abc defgh G N D 3 V c c 8 LED6 Q 0 3 Q 1 4 Q 2 5 Q 3 6 Q 4 7 Q 5 8 Q 6 9 Q 7 1 0 A 1 B 2 C L K 8 C L R 9 G N D 7 V c c 1 4 U9 741

26、64 abc defg h G N D 3 V c c 8 LED8 1 2 XP2 GND RXD TXD GNDVcc C2 GNDVcc C3 GNDVcc C4 GNDVcc C5 GNDVcc C6 GNDVcc C7 GNDVcc C8 GNDVcc C9 Vcc Vss 40 Vcc 1 P0.0 2 P0.1 3 P0.3 5 P0.4 6 P0.5 7 P0.6 8 P0.7 9 EA 10 ALE 11 PSEN 12 P2.7 13 P2.6 14 P2.5 15 P2.4 16 P2.3 17 P2.2 18 P2.1 19 P2.0 20 P1.0 21 P1.1 2

27、2 P1.2 23 P1.3 24 P1.4 25 P1.5 26 P1.6 27 P1.7 28 RST 29 RXD 30 TXD 31 INT0 32 INT1 33 T0 34 T1 35 WR 36 RD 37 XTAL2 38 XTAL1 39 P0.2 4 U6 89S52 16 附录 B:基于单片机方波信号发生器的程序清单 #include #include #define uchar unsigned char #define uint unsigned int #define KEY_PORT P1 /P1口为键盘扫描口 sbit OutPut=P07; /矩形波输出口 /

28、* 设全局变量 */ float fosc=11059200; /系统时钟频率 float length=65536; /方式 1 计数长度 uchar flag; /状态键标志 uchar ZKB; /占空比 uint PL; /频率 uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H; /定时器 0 和 1 的定时初值 uchar code tabl12= 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00; /LED共阴极代码 uchar code tabl218= 0x11,0x12,0x14,0

29、x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88; / 键值表 /* 延时子程序 */ void delay1ms(uchar n) /延时 n ms uchar j; while(n-) for(j=0;j15000) PL=15; if(i=2) /按键为 2 号,频率减1 PL-; if(PL15000) PL=15; if(i=4) /按键为 4 号,频率减100 PL=PL-100; if(PL99) ZKB=1; if(i=2) /按键为 2 号,占空比减1 ZKB-; if(ZKB1) ZKB=99;

30、if(flag=3) /状态返回,正常工作 flag=0; /清状态标志 TC0=(length-fosc/(12*PL)+0.5); /频率定时初值 TC1=(length-(fosc*ZKB)/(12*100*PL)+0.5); /占空比定时初值 TIMER0_L=(uint)TC0/256; /计算定时器0 和定时器1 的初值 TIMER0_H=(uint)TC0%256; TIMER1_L=(uint)TC1/256; TIMER1_H=(uint)TC1%256; display(PL,ZKB); KEY_PORT=0x0f; / 给键盘扫描口赋初值,以便下次按键正确读入 EX0=1

31、; /开中断 20 /* 定时器中断子程序 */ void Timer0_PL() interrupt 1 / 频率定时器0 中断 TR1=1; / 启动定时器1,占空比定时 TL0=TIMER0_L; TH0=TIMER0_H; OutPut=1; / 输出高电平 void Timer1_PL() interrupt 3 / 占空比定时器1 中断 TR1=0; / 定时器 1 停止 TL1=TIMER1_L; TH1=TIMER1_H; OutPut=0; /输出高电平 /* 主函数 */ void main() uint PL0=0; uchar ZKB0=0; system_init(); / 系统初始化 while(1) / 死循环,显示频率和占空比 if(flag=0) /状态 0 时,正常显示频率和占空比 display(PL,ZKB); if(flag=1) /状态 1 时,频率调整状态,频率闪烁 display(PL0,ZKB); display(PL,ZKB); if(flag=2) /状态 2 时,占空比调整状态,占空比闪烁 display(PL,ZKB0); display(PL,ZKB); 21 附录 C:仿真图

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

当前位置:首页 > 其他


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