占空比可调的信号发生器

上传人:笛音 文档编号:31727841 上传时间:2018-02-09 格式:DOCX 页数:17 大小:947.62KB
返回 下载 相关 举报
占空比可调的信号发生器_第1页
第1页 / 共17页
占空比可调的信号发生器_第2页
第2页 / 共17页
占空比可调的信号发生器_第3页
第3页 / 共17页
占空比可调的信号发生器_第4页
第4页 / 共17页
占空比可调的信号发生器_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《占空比可调的信号发生器》由会员分享,可在线阅读,更多相关《占空比可调的信号发生器(17页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学单片机原理与应用课程设计说明书11 设计原理和方法1.1 方案的设计与选择方案一:采用分立器件实现非稳态的多谐振荡器,然后根据具体需要加入积分电路等构成矩形等波形发生器。这种信号发生器输出频率范围窄而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。方案二:用集成芯片实现函数信号发生器。这种信号发生器。这种信号发生器能产生多种波形信号,可以达到较高频率,但电路复杂并且不易调试。方案三:采用单片机编程的方法实现。该方法可以通过编程,来控制方波信号输出的频率和幅度,并且只要改变程序的相关参数,便可以改变输出波形的频率和占空比。由于编程的方法产生的是数字

2、信号,所以信号的精度可以做到很高。并且电路简单。方案四:利用专用直接数字合成 DDS 芯片实现函数信号发生器。这种信号发生器能产生任意波形并且达到很高的频率,但成本较高。综合成本和性能等多方面因素,本例采用第三种方法,即采用单片机编程的方法实现占空比可调,频率可调的方波信号发生器。1.2 设计原理AT89C51 单片机是真个波形信号发生器的核心,通过程序的编写和执行,可以产生可以调节的方波,并受到按键的控制,增减频率和占空比。并且在液晶上显示出来。定时器 0 工作再方式 1 下,决定输出信号的频率,定时器 1 工作再方式 1 下,决定输出信号的占空比。按键 1 和 2 决定信号的输出频率,按键

3、 1 用于增大信号的频 率,按一下就增加 10HZ,当增减大 500HZ 时,就归为 50HZ。按键 2 用于减小输出信号的频率,按一次键,输出信号的频率减少 10HZ,当减少到 50HZ 时,频率就归于 500.按键 3 和 4 决定信号的占空比,按键 3 用于增加信号的占空比,按下一次键,占空比就增加 1,上限值为 99,当在此按键是,就 让占空比归 1.按键 4 用于减小信号的占空比,按下一次键,占空比就减 1,下限值为 1,当再次按键时,就让占空比回归到 99.通过上面的步骤,可以实现占空比和频率的可调。液晶则选用 LCD032L,可直观的看到频率和占空比。信号发生器原理框图如下频率与

4、占空比数据 频率与占空比数据键盘 单片机89C51LCD 显示武汉理工大学单片机原理与应用课程设计说明书2图 1.2.1 信号发生器原理框图、1.3 系统硬件电路设计图系统硬件电路原理图如下图 1.3.1 所示:四个独立按键分别与单片机P1.0,P1.1,P1.2,P1.3 相连接,并且通过一个四输入的与非门,将与非门的输出当做单片机外部中断 0 的触发信号。当有按键按下时,就会进入外部中断程序。P1.4 口输出信号连接到示波器,检测输出波形。通过单片机的 PO 口连接到 LCD032L 的数据段,用以显示波形信号发生器的频率和占空比。D012D345D67LCDENRS RSLCDEN0D1

5、23D456D7XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/A237.3/D36P0.4/A435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47UAT89C51C10uU2AND_4+5VR210kR310kR410k510k234567891RP1ESACK-8

6、+5VABCDRSTCLKE+5VD71463512D431029D1807E6RW5S4VS1D2VE3LCD1M032L每 按 一 下 , 频 率 加 10Hz每 按 一 下 , 频 率 减 10Hz每 按 一 下 , 占 空 比 加 1每 按 一 下 , 占 空 比 减 1图 1.3.11.3.1 键盘接口电路小键盘如图 1.3.1.1 所示,总共有四个键,前两个控制频率,后两个控制波形信号的占空比,分别接 P1.0P1.3,经过一个与门与 P3.2( )相连,当键盘被按下后转0INT到键盘处理子程序中。LCDENRSXTAL218XTAL119ALE301PSN29RST9P0./AD

7、039.1/18P0.2/A237.3/D36P0.4/A435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47UAT89C51C10uU2AND_4+5VR210kR310kR410k510kABCD每 按 一 下 , 频 率 加 10Hz每 按 一 下 , 频 率 减 10Hz每 按 一 下 , 占 空 比 加

8、1每 按 一 下 , 占 空 比 减 1武汉理工大学单片机原理与应用课程设计说明书3图 1.3.1.1 键盘接口电路1.3.2LCD 显示电路LCD 选取的是 LM032L 为 20*2 的液晶,与单片机的连接电路如下。其中 VSS 接地,VDD 接+5V 电源.D0D7 接单片机的 P0 口。RS LCDEN D0D1D2D3D4D5D6D7+5VD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM032L图 1.3.2.1 显示部分电路1.3.3系统的资源分配表系统的资源分配表如表 1.3.3.1 所示P0 P1.0P1.3 P1.

9、4 P3.2液晶数据线 按键接口 方波信号输出口 外部中断 0 触发引脚表 1.3.3.1 系统资源分配表1.4 系统的软件设计软件是该 LCD 显示控制系统的重要组成部分,在软件的设计中,我们采用了模块了设计,将各部分功能编写为子模块的形式,这样增加了程序的可读性。1.4.1 主程序主程序用于控制整个系统,先对系统初始化,然后通过一个空循环等待中断程序,当中断到来时候,就进入中断程序,执行中断程序。中断程序执行完成之后,就返回主程序,继续等待。武汉理工大学单片机原理与应用课程设计说明书41.4.1.1 主程序流程图1.4.2 系统初始化子程序在此程序中,给所有变量赋初值,特别是 T0,T1

10、的初始值使产生方波的频率为50Hz,占空比为 50%,且在 LCD032L 上显示出来。1.4.3键盘扫描程序键盘扫描用外部中断 0 实现,用以分析是那个键盘被按下,然后在实现所要的功能。关于键盘扫描程序的说明:频率可调时,占空比保持原状不变,反之亦然。(1)频率调节当按下键 1 的时候,会转到外部中断 0 子程序,判断之后,会改变其中变量 fre 的值,然后分别将 T0,T1 按要求重新赋初始值,然后再在液晶上实时刷新。即可改变即加10Hz,当加到最大值 500Hz 时,继续按下键 1,将会回到最小值 50Hz 上。同理按下键 2,频率值将会减 10Hz,当减到最小值 50Hz,会回到最大值

11、 500Hz 上。(2)占空比调节当按下键 3,进入到外部中断 0 子程序,判断却是按下后,改变 zkb(即占空比) ,然后改变定时器的初值。实时刷新,同频率调节,占空比也需要进行限制。要注意的是频率和占空比的初始值都为 50,我们定义的占空比为百分比的分子部分。开始系统初始化等待中断武汉理工大学单片机原理与应用课程设计说明书5键盘处理子程序流程图入图 1.4.2.1 所示。当有按键按下时,进入到外部中断,然后暂时关闭外部中断,启动延时程序,以消除抖动。然后检测是哪个按键被按下,然后对频率跟占空比的变量做出相应的赋 值,并且将占空比的值送到数码管显示。并且对定时器 0 和定时器 1 分别赋新的

12、初值,开启外部中断,定时器 0 和 1 中断,中断程序结束。NY 外部中断 0 入口关外部中断 0软件延时消抖是否为抖键盘扫描,得到键码查表,取键值键处理开外部中断结束LCD 显示频率和占空比武汉理工大学单片机原理与应用课程设计说明书6图 1.4.2.1 键盘处理子程序流程图1.4.4 源程序#include #define uchar unsigned char#define uint unsigned intfloat fosc=12000000; /系统时钟频率sbit key1=P10; /控制频率的增加sbit key2=P11; /控制频率的减少sbit key3=P12; /控制

13、占空比的增加sbit key4=P13;/控制占空比的减少sbit LCDEN=P34;sbit RS=P35;sbit clk=P14;uchar num;uchar code table1=FRE(Hz):;uchar code table2=DUT(%):;uint zkb=50; /占空比初值,取值范围为 0 到 100uint fre=50; /频率初值,取值范围为 50 到 500uint time0_H,time0_L,time1_H,time1_L;void delay(uint z) uint i,j;for(i=z;i-;i0)for(j=110;j-;j0);void w

14、rite_com(uchar com)RS=0;P0=com;delay(5);LCDEN=1;delay(5);LCDEN=0;void write_data(uchar date)RS=1;P0=date;delay(5);LCDEN=1;武汉理工大学单片机原理与应用课程设计说明书7delay(5);LCDEN=0;void init()TMOD=0x11; /定时器 0 和 1 都工作在方式 1time0_H=0xB1;time0_L=0xE0;time1_H=0xD8;time1_L=0xF0;TH0=0xB1; /定时器 0 装入初值,计数器计数 20000 次,20msTL0=0x

15、E0;TH1=0xD8; /定时器 1 装入初值,计数器计数 10000 次,10msTL1=0xF0;IT0=1; /外部中断 1 为低电平触发EX0=1; /开外部中断 1ET0=1; /定时器 T0 中断允许ET1=1; /定时器 T1 中断允许EA=1; /开启总中断TR0=1; /开启定时器 0TR1=1; /开启定时器 1LCDEN=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);void main()init();write_com(0x80);for(num=0;num500)fre=50;if(key2=0)fre=fre-10;if(fre99)zkb=1;if(key4=0)zkb=zkb-1;if(zkb1)zkb=99;TX=(65536-fosc/(12.0*fre);TZ=(65536-(fosc*zkb)/(12.0*100*fre);time0_H=(uint

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号