占空比可调方波发生器.docx
《占空比可调方波发生器.docx》由会员分享,可在线阅读,更多相关《占空比可调方波发生器.docx(28页珍藏版)》请在冰豆网上搜索。
占空比可调方波发生器
燕山大学
课程设计说明书
题目:
低通FIR滤波器设计与应用
学院(系):
电气工程学院
年级专业:
10级精仪二班
学号:
************
***************
****************
教师职称:
副教授
电气工程学院《课程设计》任务书
院(系):
电气工程学院基层教学单位:
仪器科学与工程系
学号
100103020148
学生姓名
王舟济
(专业)班级
精仪二班
设计题目
方波发生器
设
计
技
术
参
数
设计一个以单片机为核心的方波发生器,通过键盘可以改变方波的占空比和频率,并显示波形的频率
设
计
要
求
设计键盘输入电路、波形的输出电路、显示电路(4位数码管);编制相应的程序
工
作
量
设计的内容满足课程设计的教学目的与要求,设计题目难度和工作量适合学生的知识和能力状况,工作量饱满。
工
作
计
划
查阅资料进行设计准备、设计硬件电路、编制程序,编制程序、验证设计、撰写任务书
参
考
资
料
单片微型计算机接口技术及其应用张淑清国防工业出版社
单片机原理及其应用技术张淑清国防工业出版社
单片机应用技术汇编
指导教
师签字
基层教学单位主任签字
说明:
此表一式四份,学生、指导教师、基层教学单位、系部各一份。
年月日
摘要.................................................................
第1章绪论..........................................................
1.1设计内容.....................................................
1.2设计基本要求.................................................
第2章总体方案论证与设计..........................................
2.1方案论述.....................................................
2.2方波发生器的硬件组成框图.....................................
第3章方波发生器原理.................................................................................................
3.1方波发生器的原理与功能................................................................................
3.2键盘控制原理....................................................................................................
3.3程序框图............................................................................................................
3.4方波波形显示............................................................................................第4章系统硬件设计...........................................................................................
4.1最小单片机系统...............................................
4.2小键盘接口电路...............................................
4.3LED显示电路..................................................
4.4八段数码管原理.............................................................................................
第5章系统软件设计................................................
5.1主程序......................................................
5.2系统初始化子程序............................................
5.3显示子程序..................................................
5.4键盘扫描程序................................................
5.5定时中断子程序..............................................
5.6汇编总程序.....................................................................................................
第6章系统调试与测试结果分析......................................
6.1硬件调试.....................................................
6.2软件调试.....................................................
结论............................................................
参考文献.......................................................................................................................
附录:
仿真效果图
摘要
随着大规模集成电路技术和计算机技术的飞速发展,把计算机的运算器和控制器(即CPU)、存储器和多种接口集成在一块芯片上而成的芯片为单片机。
单片机问世20年来,发展速度之迅猛,应用范围之广泛是以往任何技术都无法比拟的。
单片机作为嵌入式微控制器其应用很普及。
近十几年来,单片机在生产过程控制、自动检测、数据采集与处理、科技计算、商业管理和办公室自动化等方面获得了广泛应用。
本设计是一个以单片机为核心的方波发生器,通过对键盘输入电路、波形的输出电路、显示电路的设计已经程序的编程,实现通过键盘改变方波占空比和频率,并显示波形频率的功能。
关键字:
单片机、法波发生器、频率、占空比
第一章绪论
单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:
一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本课题讨论的方波发生器的核心是目前应用极为广泛的51系列单片机。
1.1设计内容
本课程设计是设计一个方波发生器,用4位数码管显示方波的频率。
1.2设计基本要求
频率可调,用一个变阻器来调整波形的频率,频率调节范围为20Hz~2000Hz;
占空比可调,采用两个按键来实现增加、减小波形的占空比作用,占空比调节步长为1%,即每按键一次,占空比增加或减少1%。
占空比用另外两位数码管显示。
系统上电时频率依变阻器的阻值设定,占空比设定为50%。
而我们在此设计的方波发生器与要求要设计的有点区别,所设计的频率调节范围为1Hz~15000Hz,以调节变阻器的阻值来实现频率的调节相对来说要麻烦些。
因此,频率也使用按键来进行调节,不同的频率及占空比可以使用不同的按键来实现,而以键盘扫描来实现各键的不同功能;显示部分可以使用ZLG7290芯片及数码管来实现。
由此即可构成一个最小单片机应用系统。
第2章总体方案论证与设计
在电子技术领域中,实现方波发生器的方法有很多种,可以采用不同的原理及器件构成不同的电路,但可以实现相同的功能。
在此次设计中,有些地方与课题原本的具体要求有点不同。
如实现频率调节时,不是按要求利用调整变阻器的阻值来完成的,而是用按键来实现的。
2.1方案论述
基于MCS—51单片机8051芯片所设计的可以实现键位与数字动态显示的一种频率,占空比可调方波发生器。
设四位数码管显示频率范围为1HZ-9999HZ,可任意取1HZ、10HZ、100HZ等值,占空比任意取10%,20%,40%,50%,80%等值。
通过对键盘上按键的操作完成对所取频率值,占空比的调用,以达到改变当前频率值,占空比的目的,并使用其八段数码管显示。
单片机对键位进行扫描,确定键位的输入,根据程序设计要求,数码管显示频率以及占空比改变后当前的数值,方波发生器输出以数码管显示的数值为频率的方波。
基于以上思路,可进行如下功能扩展:
由于伟福2000仿真实验箱共有6位数码管,显示频率只用其中4位,可使用余下2位进行占空比显示。
设计思路同频率显示,可选定占空比10、20、50等值,通过键盘上的两个按键顺序调换所选取的占空比值,实现占空比的可调控改变。
键盘可采用4*4的键盘,但是只选取选取其中的4个按键,其功能分别为:
频率顺向增大、频率逆向减小、占空比顺向增大、占空比逆向减小。
按键每按下一次,当前频率或占空比转向下一选定的频率或占空比值。
单片机通过输出方波控制一个数码管的显用,该数码管显示当前所调换到的频率及占空比,并把该数值当做方波发生器的输入频率及输入占空比。
单片机控制该方波发生器以该数值作为频率和占空比显示方波,从而得到我们想要频率及占空比的方波。
最后,可采用示波器观察方波波形。
2.2方波发生器的总体硬件组成框图
简单的流程为:
主程序扫描键盘,将设置信息输入,处理后,输出到LED显示器显示。
单片机用到了两个定时器,即定时器0与定时器1,分别进行频率与占空比的定时,两个定时器都是工作在方式1。
计算定时器初值的公式如下:
X=2N-FOSC/12×T
根据计算定时器初值的公式,计算出定时器0与定时器1所要装入的初值。
频率及占空比的显示电路由74374和74245构成的驱动电路和LED数码显示管组成,利用六个数码管来显示,有四位是用来显示频率的,有两位是显示占空比的。
此电路的键盘由四个功能键(调节频率与占空比的增减)组成,其特殊之处在于利用外部中断实现键盘扫描。
功能键有两种种状态,一种为正顺序调换,根据所取值顺向增大的特点,此时为增大调节;另一种为逆顺序调换,同理,此时为减小调节。
频率和占空比各有一组增大及减小的功能键。
第3章方波发生器原理
3.1、方波发生器的原理与功能
方波发生器的总体原理方框图如下图所示:
由于系统的要求不高,比较单一,再加上我们是通过定时器来调节频率的,这样仅用键盘、8051芯片及数码显示管便可完成设计,达到所要求实现的功能。
3.2键盘控制原理
通过键盘的控制,可以实现频率和占空比的变化。
本设计仅仅选用四个数码管显示频率,并增加了后两个数码管显示占空比的功能。
其中,用NEXT键和LAST键控制频率的变化,每按一下NEXT键频率就按着的顺序正向变化到下一个数值;每按一下LAST键,频率就反向变化到另一个数值。
C键和D键控制占空比的变化:
每按一下C键,数码管上的显示数字就按照的顺序正向变化一个数字,每按一下D键,数字就反向变化。
其对应关系如表1所示:
表1频率-占空比-按键对照表
频率
占空比
NEXT
LAST
C
D
+上
_下
+上
_下
3.3程序框图
初始化后单片机产生初值,将初值以动态扫描的方式显示于八段数码管,同时还对键盘进行实时扫描。
在扫描后,单片机读取键值,并将键值通过数码管模块显示出来,方波发生器输出该频率,占空比的方波.
表2频率(HZ)-程序代码对照表
编辑代码1
00H
00H
06H
3FH
显示频率1(HZ)
0
0
1
0
编辑代码2
00H
00H
5BH
3FH
显示频率2(HZ)
0
0
2
0
编辑代码3
00H
00H
6DH
3FH
显示频率3(HZ)
0
0
5
0
编辑代码4
00H
06H
3FH
3FH
显示频率4(HZ)
0
1
0
0
表3占空比(%)-代码对照表
编辑代码1
5BH
3FH
显示占空比(%)
2
0
编辑代码2
66H
3FH
显示占空比(%)
4
0
编辑代码3
6DH
3FH
显示占空比(%)
5
0
编辑代码4
7DH
3FH
显示占空比(%)
6
0
编辑代码5
7FH
3FH
显示占空比(%)
8
0
3.4方波波形显示
图1频率100HZ,占空比50%
图2频率100HZ,占空比80%
图3频率100HZ,占空比20%
第4章系统硬件设计
4.1最小单片机系统
单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地进行工作。
因而时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路方式有两种:
一种是内部时钟方式,一种是外部时钟方式,这里采用的是内部时钟方式,外接晶振。
时钟电路由片外晶体、微调电容和单片机的内部电路组成。
选取频率为11.0592MHz的晶振,微调电容是瓷片电容。
89S52单片机的P0.7口作为波形输出口,若接示波器,则可通过示波器来观察波形,是一个矩形波。
此单元电路包括时钟电路、复位电路,具体电路如图所示:
4.2小键盘接口电路
方案一:
独立式键盘
一个具有4个按键的独立式键盘,每一个按键的一端都接地,另一端接MEGA16的I/O口。
独立式键盘每一按键都需要一根I/O线,占用MEGA16的硬件资源较多。
因此独立式键盘只适合按键较少的场合。
键盘是一组按键或开关的集合,键盘接口向计算机提供被按键的代码。
特点:
使用方便、结构复杂、成本高。
方案二:
矩阵式键盘
我们采用4×4矩阵式键盘,键盘的行线X0~X3通过电阻接+5V,当键盘没有键闭合时,所有的行线和列线断开,行线X0~X3均呈高电平,如下图:
图5—2键盘控制LED连接原理图
为了节省I/O口,使我们的设计能够顺利进行,我们选用方案二——矩阵连接式键盘。
为了能够较为简单的编程,和节省CPU的资源,我们采用定时扫描,每隔一段时间,CPU对键盘扫描一次,并将键值读入。
扫描法是在判定有键按下后逐列(或行)置低电平,同时读入行(或列)状态,如果行(或列)状态出现非全1状态,这时与状态行,列交叉点的键就是所按下的键。
扫描发的特点是逐列(或行)扫描查询。
这时,相应的行(或列)应有上拉电阻接高电平。
当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。
如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线Y0为低电平,其余三根列线Y1、Y2、Y3均为高电平,然后单片机读输入口状态(即键盘行线状态),若X0、X1、X2、X3均为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。
如果Y0这一列没有键闭合,紧接着使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列有无键闭合,如此类推。
CPU对键盘的扫描可以采取程序控制的随机方式,CPU空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,CPU对键盘扫描一次;还可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理。
图3-2小键盘接口电路
4.3LED显示电路
方案一:
静态显示方式
静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。
在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。
静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。
其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。
随着显示器位数的增加,需要的I/O口线也将增加。
方案二:
动态显示方式
所谓动态显示,就是单片机定时地对显示模块件扫描。
在这种方法中,显示模块件分时工作,每次只能有一个器件显示。
但由于人视觉的暂留现象,所以仍感觉所有的器件都在显示。
如许多单片机的开发系统及仿真器上的6位显示模块即采用这类显示方法。
此种显示方法的优点是使用硬件少,因而价格低。
但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。
由此可见,这种显示将使计算机的开销增大。
由于8051单片机本身提供的I/O口有限,因此我们选择方案二——动态扫描方式。
扫描方式中在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的约1MS,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
节约了电能,节省了I/O口
4.4八段数码管原理
数码管内部由8个发光发光二极管组成,排成一个8字,可以组成0到9数字以及A-F字符的表示形式。
图5-3.八段数码管引脚图图5-4.八位数码管原理图
表2显示数字及其所对应的代码
显示数字
1
2
3
4
程序输入数
06H
5BH
4FH
66H
显示数字
5
6
7
8
程序输入数
6DH
7DH
07H
7FH
显示数字
9
0
A
B
程序输入数
6FH
3FH
77H
7CH
显示数字
C
D
E
F
程序输入数
39H
5EH
79H
71H
第5章系统的软件设计
软件是该LED显示屏控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
5.1主程序
主程序包括系统初始化及显示程序,是一个死循环系统。
其流程图如图所示:
5.2系统初始化子程序
在此程序中,给所有变量赋初值,有键盘扫描口、选择串行口工作方式SCON、状态标志位flag、初始频率与占空比及其定时、定时器0与定时器1的工作方式等。
初始化时启动了定时器0与定时器1。
5.3显示子程序
利用分离频率的各位数值,将各位数值分别显示出来。
在程序中利用了频率显示的高位灭零的方法以致最高位为0时就不显示,以致显示效果美观化。
一共有五位是显示频率的,若频率小于10000时,则万位不显示;若频率小于1000时,则万位与千位都不显示,依次类推。
占空比的显示规律与频率的一样。
显示子程序流程图如图4-2所示:
5.4键盘扫描程序
键盘扫描用外中断0实现,采用的是线反法,键盘扫描码采用逐行扫描的方法。
关于键盘扫描程序的说明:
频率可调时,占空比保持原状不变,反之亦然,只能进行单一变量的调节,状态标志flag的初始值为0。
(1)频率调节:
i==0时,按键为状态键,此时flag加1,即flag==1,此时进行频率的调节。
可以进行加1Hz、减1Hz、加100Hz、减100Hz操作,分别由1号键、2号键、3号键、4号键控制。
如果按住某个键不放,便会执行连续加值或减值操作。
这里的频率的最大值为15000Hz,当频率增至最大值时,还按增值键,此时频率会自动跳到1Hz开始继续增加。
同理,频率的最小值为1Hz,当减频率减至最小值时,再按减频率键,则频率会跳到15000Hz。
(2)占空比调节:
当状态值flag==2时,此时频率保持不变,进行占空比调节。
只可进行加1与减1操作,分别由1号键、2号键控制。
要注意的是占空比的初值是50%,我们定义的ZKB为50(百分比的分子部分,为一整数),故调节占空比时,ZKB会进行加1,减1操作。
ZKB的最大值为99,当增到最大值时,便会返回到值1,如此循环。
(3)为了减轻单片机的工作量,在软件设计中采取了这样的措施,在修改参数确定后才进行定时器初值TC0、TC1的计算。
键盘中断处理子程序流程图与键处理流程图分别如图4-3、图4-4所示:
5.5定时中断子程序
定时器中断子程序中有定时器0与定时器1中断,频率定时器0中断流程图与占空比定时器1流程图分别如图4-5、图4-6所示。
(1)定时器0遇中断执行的操作有复位,启动自身进行频率定时,同时启动定时器1,进行占空比定时,输出高电平。
(2)定时器1遇中断,停止自身的计时,输出低电平。
5.6汇编程序
CISHUEQU31H
LOW0EQU32H
HIGH0EQU33H
BILIEQU34H
HLEQU35H
UPEQU16H
DOWNEQU15H
CPEQU0CH
DPEQU0DH
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIN0
ORG0040H
ZHONGDUAN:
DB100502010
ZHANKONG:
DB8,6,5,4,2
MAIN:
MOVTMOD,#02H
SETBEA
SETBET0
MOVPINLV,#00H
MOVBILI,#02H
LCALLGOON
LJMPMLOOP
ZHUANGRU:
MOVA,PINLV
RU1:
MOVTH0,#06H
MOVTL0,#06H
JISHU:
SETBHL
SETBTR0
SETBP1.0
MOVCISHU,#01H
MOVDPTR,#ZHANKONG
MOVA,BILI
MOVCA,@A+DPTR
MOVLOW0,A
MOVB,#10
XCHA,B
SUBBA,B
MOVHIGH0,A
RET
OUTBITEQU08002H
OUTSEGEQU08004H
INEQU08001H
LEDBUFEQU60H
LEDPINLVMAP:
DB00H,00H,06H,3