占空比可调方波发生器
TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】
占空比可调的方波发生器
燕山大学 课 程 设 计 说 明 书
题目: 低通FIR滤波器设计与应用
学院(系): 电气工程学院 年级专业: 10级精仪二班 学 号: 100103020148 学生姓名: 王舟济 指导教师: 孟 宗 教师职称: 副教授
占空比可调的方波发生器
电气工程学院《课程设计》任务书
院(系):电气工程学院 基层教学单位:仪器科学与工程系 学号 设计题目 设 计 技 术 参 数 设 计 要 求 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软件调试..................................................... 结 论............................................................ 参考文献....................................................................................................................... 附录:仿真效果图
第 1 页 共 34 页
占空比可调的方波发生器
第 2 页 共 34 页
占空比可调的方波发生器
摘 要
随着大规模集成电路技术和计算机技术的飞速发展,把计算机的运算器和控制器(即CPU)、存储器和多种接口集成在一块芯片上而成的芯片为单片机。单片机问世20年来,发展速度之迅猛,应用范围之广泛是以往任何技术都无法比拟的。单片机作为嵌入式微控制器其应用很普及。近十几年来,单片机在生产过程控制、自动检测、数据采集与处理、科技计算、商业管理和办公室自动化等方面获得了广泛应用。
本设计是一个以单片机为核心的方波发生器,通过对键盘输入电路、波形的输出电路、显示电路的设计已经程序的编程,实现通过键盘改变方波占空比和频率,并显示波形频率的功能。
关键字:单片机、法波发生器、频率、占空比
第 1 页 共 34 页
占空比可调的方波发生器
第一章 绪论
单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。 本课题讨论的方波发生器的核心是目前应用极为广泛的 51系列单片机。
1.1 设计内容
本课程设计是设计一个方波发生器,用4位数码管显示方波的频率。
1.2 设计基本要求
频率可调,用一个变阻器来调整波形的频率,频率调节范围为20Hz~2000Hz;
第 2 页 共 34 页
占空比可调的方波发生器
占空比可调,采用两个按键来实现增加、减小波形的占空比作用,占空比调节步长为1%,即每按键一次,占空比增加或减少1%。占空比用另外两位数码管显示。
系统上电时频率依变阻器的阻值设定,占空比设定为50%。而我们在此设计的方波发生器与要求要设计的有点区别,所设计的频率调节范围为1Hz~15000Hz,以调节变阻器的阻值来实现频率的调节相对来说要麻烦些。因此,频率也使用按键来进行调节,不同的频率及占空比可以使用不同的按键来实现,而以键盘扫描来实现各键的不同功能;显示部分可以使用ZLG7290芯片及数码管来实现。由此即可构成一个最小单片机应用系统。
第2 章 总体方案论证与设计
在电子技术领域中,实现方波发生器的方法有很多种,可以采用不同的原理及器件构成不同的电路,但可以实现相同的功能。在此次设计中,有些地方与课题原本的具体要求有点不同。如实现频率调节时,不是按要求利用调整变阻器的阻值来完成的,而是用按键来实现的。
2.1 方案论述
基于MCS—51单片机8051芯片所设计的可以实现键位与数字动态显示的一种频率,占空比可调方波发生器。设四位数码管显示频率范围为1HZ-9999HZ,可任意取1HZ、10HZ、100HZ等值,占空比任意取10%,20%,40%,50%,80%等值。通过对键盘上按键的操作完成对所取频率值,占空比的调用,以达到改变当前频率值,占空比的目的,并使用其八段数码管显示。单片机对键位进行扫描,确定键位的输入,根据程序设计要求,数码管显示频率以及占空比改变后当前的数值,方波发生器输出以数码管显示的数值为频率的方波。
第 3 页 共 34 页
占空比可调的方波发生器
基于以上思路,可进行如下功能扩展:由于伟福2000仿真实验箱共有6位数码管,显示频率只用其中4位,可使用余下2位进行占空比显示。设计思路同频率显示,可选定占空比10、20、50等值,通过键盘上的两个按键顺序调换所选取的占空比值,实现占空比的可调控改变。
键盘可采用4*4的键盘,但是只选取选取其中的4个按键,其功能分别为:频率顺向增大、频率逆向减小、占空比顺向增大、占空比逆向减小。按键每按下一次,当前频率或占空比转向下一选定的频率或占空比值。单片机通过输出方波控制一个数码管的显用,该数码管显示当前所调换到的频率及占空比,并把该数值当做方波发生器的输入频率及输入占空比。单片机控制该方波发生器以该数值作为频率和占空比显示方波,从而得到我们想要频率及占空比的方波。最后,可采用示波器观察方波波形。
2.2方波发生器的总体硬件组成框图
简单的流程为:主程序扫描键盘,将设置信息输入,处理后,输出到LED显示器显示。单片机用到了两个定时器,即定时器0与定时器1,分别进行频率与占空比的定时,两个定时器都是工作在方式1。计算定时器初值的公式如下:
X = 2N - FOSC/12 × T
根据计算定时器初值的公式,计算出定时器0与定时器1所要装入的初值。
第 4 页 共 34 页
占空比可调的方波发生器
频率及占空比的显示电路由74374和74245构成的驱动电路和LED数码显示管组成,利用六个数码管来显示,有四位是用来显示频率的,有两位是显示占空比的。
此电路的键盘由四个功能键(调节频率与占空比的增减)组成,其特殊之处在于利用外部中断实现键盘扫描。功能键有两种种状态,一种为正顺序调换,根据所取值顺向增大的特点,此时为增大调节;另一种为逆顺序调换,同理,此时为减小调节。频率和占空比各有一组增大及减小的功能键。
频率与键盘 单片机89S52 频率与 LED 显 示 图2-1 方波发生器原理框
第3章 方波发生器原理
3.1、方波发生器的原理与功能
第 5 页 共 34 页
占空比可调的方波发生器
方波发生器的总体原理方框图如下图所示:
由于系统的要求不高,比较单一,再加上我们是通过定时器来调节频率的,这样仅用键盘、8051芯片及数码显示管便可完成设计,达到所要求实现的功能。
3.2键盘控制原理
通过键盘的控制,可以实现频率和占空比的变化。本设计仅仅选用四个数码管显示频率,并增加了后两个数码管显示占空比的功能。
其中,用NEXT键和LAST键控制频率的变化,每按一下NEXT键频率就按着 的顺序正向变化到下一个数值;每按一下LAST键,频率就反向变化到另一个数值。
C键和D键控制占空比的变化:每按一下C键,数码管上的显示数字就按照 的顺序正向变化一个数字,每按一下D键,数字就反向变化。
其对应关系如表1所示:
表1频率-占空比-按键对照表
频率 NEXT LAST C 占空比 D 第 6 页 共 34 页
占空比可调的方波发生器
+上
_下 +上 _下 3.3程序框图
初始化后单片机产生初值,将初值以动态扫描的方式显示于八段数码管 ,同时还对键盘进行实时扫描。在扫描后,单片机读取键值,并将键值通过数码管模块显示出来,方波发生器输出该频率,占空比的方波.
表2频率(HZ)-程序代码对照表
编辑代码1 显示频率1(HZ) 编辑代码2 显示频率2(HZ) 编辑代码3
00H 0 00H 0 06H 1 3FH 0 00H 0 00H 0 5BH 2 3FH 0 00H 00H 6DH 3FH 第 7 页 共 34 页
占空比可调的方波发生器
显示频率3(HZ) 编辑代码4 显示频率4(HZ) 0 0 5 0 00H 0 06H 1 3FH 0 3FH 0
表3 占空比(%)-代码对照表
编辑代码1 显示占空比(%) 编辑代码2 显示占空比(%) 编辑代码3 显示占空比(%) 编辑代码4 显示占空比(%) 编辑代码5 显示占空比(%) 5BH 2 66H 4 6DH 5 7DH 6 7FH 8
3FH 0 3FH 0 3FH 0 3FH 0 3FH 0 3.4方波波形显示
图1 频率100HZ,占空比50%
第 8 页 共 34 页
占空比可调的方波发生器
图2 频率100HZ,占空比80%
图3 频率100HZ,占空比20%
第4章 系统硬件设计
4.1最小单片机系统
单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地进行工作。因而时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路方式有两种:一种是内部时钟方式,一种是外部时钟方式,这里采用的是内部时钟方式,外接晶振。时钟电路由片外晶体、微调电容和单片机的内部电路组成。选取频率为11.0592MHz的晶振,微调电容是瓷片电容。
第 9 页 共 34 页
占空比可调的方波发生器
89S52单片机的P0.7口作为波形输出口,若接示波器,则可通过示波器来观察波形,是一个矩形波。
此单元电路包括时钟电路、复位电路,具体电路如图所示:
图3-1 单片机最小系统
4.2小键盘接口电路
方案一:独立式键盘
一个具有4个按键的独立式键盘,每一个按键的一端都接地,另一端接MEGA16的I/O口。独立式键盘每一按键都需要一根I/O线,占用MEGA16的硬件资源较多。因此独立式键盘只适合按键较少的场合。键盘是一组按键或开关的集合,键盘接口向计算机提供被按键的代码。特点:使用方便、结构复杂、成本高。
第 10 页 共 34 页
占空比可调的方波发生器
方案二:矩阵式键盘
我们采用4×4矩阵式键盘,键盘的行线X0~X3通过电阻接+5V,当键盘没有键闭合时,所有的行线和列线断开,行线X0~X3均呈高电平,如下图:
图5—2键盘控制LED连接原理图
为了节省I/O口,使我们的设计能够顺利进行,我们选用方案二——矩阵连接式键盘。为了能够较为简单的编程,和节省CPU的资源,我们采用定时扫描,每隔一段时间,CPU对键盘扫描一次,并将键值读入。
扫描法是在判定有键按下后逐列(或行)置低电平,同时读入行(或列)状态,如果行(或列)状态出现非全1状态,这时与状态行,列交叉点的键就是所按下的键。扫描发的特点是逐列(或行)扫描查询。这时,相应的行(或列)应有上拉电阻接高电平。
当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线Y0为低电平,其余三根列
第 11 页 共 34 页
占空比可调的方波发生器
线Y1、Y2、Y3均为高电平,然后单片机读输入口状态(即键盘行线状态),若X0、X1、X2、X3均为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。如果Y0这一列没有键闭合,紧接着使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列有无键闭合,如此类推。
CPU对键盘的扫描可以采取程序控制的随机方式,CPU空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,CPU对键盘扫描一次;还可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理。
图3-2 小键盘接口电路
第 12 页 共 34 页
占空比可调的方波发生器
4.3 LED显示电路
方案一: 静态显示方式
静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。 方案二: 动态显示方式
所谓动态显示,就是单片机定时地对显示模块件扫描。在这种方法中,显示模块件分时工作,每次只能有一个器件显示。但由于人视觉的暂留现象,所以仍感觉所有的器件都在显示。如许多单片机的开发系统及仿真器上的6位显示模块即采用这类显示方法。此种显示方法的优点是使用硬件少,因而价格低。但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。由此可见,这种显示将使计算机的开销增大。
由于8051单片机本身提供的I/O口有限,因此我们选择方案二——动态扫描方式。扫描方式中在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的约1MS,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。节约了电能,节省 了I/O口
4.4八段数码管原理
第 13 页 共 34 页
占空比可调的方波发生器
数码管内部由8个发光发光二极管组成,排成一个8字,可以组成0到9数字以及A-F字符的表示形式。
图5-3.八段数码管引脚图 图5-4.八位数码管原理图
表2 显示数字及其所对应的代码
显示数字 程序输入数 显示数字 程序输入数 显示数字 程序输入数 显示数字 程序输入数 1 06H 5 6DH 9 6FH C 39H 2 5BH 6 7DH 0 3FH D 5EH 3 4FH 7 07H A 77H E 79H 4 66H 8 7FH B 7CH F 71H
第 14 页 共 34 页
占空比可调的方波发生器
第5章 系统的软件设计
软件是该LED显示屏控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
5.1 主程序
主程序包括系统初始化及显示程序,是一个死循环系统。其流程图如图所示:
开始
显示
图4-1 主程序流程图
系统初始化 5.2 系统初始化子程序
在此程序中,给所有变量赋初值,有键盘扫描口、选择串行口工作方式SCON、状态标志位flag、初始频率与占空比及其定时、定时器0与定时器1的工作方式等。初始化时启动了定时器0与定时器1。
5.3显示子程序
利用分离频率的各位数值,将各位数值分别显示出来。在程序中利用了频率显示的高位灭零的方法以致最高位为0时就不显示,以致显示效果美观化。
第 15 页 共 34 页
占空比可调的方波发生器
一共有五位是显示频率的,若频率小于10000时,则万位不显示;若频率小于1000时,则万位与千位都不显示,依次类推。 占空比的显示规律与频率的一样。 显示子程序流程图如图4-2所示:
显示子程序入口
分离频率和占空比的各位
高位灭零处
查表,串口发送各位数字软件延 结束 图4-2 显示子程序流程图
5.4 键盘扫描程序
键盘扫描用外中断0实现,采用的是线反法,键盘扫描码采用逐行扫描的方法。
关于键盘扫描程序的说明:
频率可调时,占空比保持原状不变,反之亦然,只能进行单一变量的调节,状态标志flag的初始值为0。 (1)频率调节:
i==0时,按键为状态键,此时flag加1,即flag==1,此时进行频率的调节。可以进行加1Hz、减1Hz、加100Hz、减100Hz操作,分别由1号键、2号键、3号键、4号键控制。如果按住某个键不放,便会执行连续加值或减值操作。这里的频率的最大值为15000Hz,当频率增至最大值时,还按增值键,此
第 16 页 共 34 页
占空比可调的方波发生器
时频率会自动跳到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所示: EA=0 Y 是否为抖N 键盘扫描,得到键码 键处理 键盘口初始化 外部中断0入键处理 软件延时消i==0? N Y Y Flag+=1 i==1 PL++ i==2 PL-- i==3 i==4 PL-Y i==1 i==2 ZKB-边界处边Flag==N 查表取键值i Flag==2N Flag==3N 实时显示 Y Flag=0,计算定时器EA=1 键处理结束 结束 图4-4 键处理流程图 第 17 页 共 34 页 图4-3 键盘中断处理子程序流程图 占空比可调的方波发生器
5.5定时中断子程序
定时器中断子程序中有定时器0与定时器1中断,频率定时器0中断流程图与占空比定时器1流程图分别如图4-5、图4-6所示。
(1)定时器0遇中断执行的操作有复位,启动自身进行频率定时,同时启动定时器1,进行占空比定时,输出高电平。
(2)定时器1遇中断,停止自身的计时,输出低电平。
定时器0中断入 TR1=1 TR1=0 定时器1中断入
重装定时初重装定时初输出高电
输出低电
结束 图4-5 频率定时器0中断流程
结束 图4-6占空比定时器1中断流程
5.6汇编程序
CISHU EQU 31H LOW0 EQU 32H HIGH0 EQU 33H BILI EQU 34H HL EQU 35H UP EQU 16H DOWN EQU 15H CP EQU 0CH
第 18 页 共 34 页
占空比可调的方波发生器
DP EQU 0DH ORG 0000H
LJMP MAIN ORG 000BH LJMP TIN0 ORG 0040H ZHONGDUAN:
DB 100 50 20 10 ZHANKONG: DB 8,6,5,4,2 MAIN:
MOV TMOD,#02H SETB EA SETB ET0
MOV PINLV,#00H MOV BILI,#02H LCALL GOON LJMP MLOOP
ZHUANGRU: MOV A,PINLV RU1:
MOV TH0,#06H MOV TL0,#06H JISHU: SETB HL SETB TR0 SETB P1.0
MOV CISHU,#01H MOV DPTR,#ZHANKONG MOV A,BILI
MOVC A,@A+DPTR MOV LOW0,A MOV B,#10 XCH A,B SUBB A,B MOV HIGH0,A RET
OUTBIT EQU 08002H OUTSEG EQU 08004H IN EQU 08001H LEDBUF EQU 60H LEDPINLVMAP:
DB 00H,00H,06H,3FH
第 19 页 共 34 页
占空比可调的方波发生器
DB 00H,00H,5BH,3FH DB 00H,00H,6DH,3FH DB 00H,06H,3FH,3FH LEDZHANKONGMAP: DB 7FH,3FH DB 7DH,3FH DB 6DH,3FH DB 66H,3FH DB 5BH,3FH DELAY:
MOV R7, #0 DELAYLOOP:
DJNZ R7, DELAYLOOP DJNZ R6, DELAYLOOP RET DISPLAYLED:
MOV R0, #LEDBUF MOV R1, #6
MOV R2, #00100000B LOOP:
MOV DPTR, #OUTBIT MOV A, #0 MOVX @DPTR, A
MOV A, @R0
MOV DPTR, #OUTSEG MOVX @DPTR, A
MOV DPTR, #OUTBIT MOV A, R2 MOVX @DPTR, A
MOV R6, #1
CALL DELAY
MOV A, R2
RR A MOV R2, A INC R0
DJNZ R1, LOOP
MOV DPTR, #OUTBIT MOV A, #0 MOVX @DPTR, A RET TESTKEY:
MOV DPTR, #OUTBIT MOV A, #0 MOVX @DPTR, A
第 20 页 共 34 页
占空比可调的方波发生器
MOV DPTR, #IN MOVX A, @DPTR CPL A
ANL A, #0FH RET KEYTABLE:
DB 16H, 15H, 14H, 0FFH DB 13H, 12H, 11H, 10H DB 0DH, 0CH, 0BH, 0AH DB 0EH, 03H, 06H, 09H DB 0FH, 02H, 05H, 08H DB 00H, 01H, 04H, 07H GETKEY:
MOV DPTR, #OUTBIT MOV P2, DPH
MOV R0, #LOW(IN) MOV R1, #00100000B MOV R2, #6 KLOOP:
MOV A, R1 CPL A
MOVX @DPTR, A CPL A RR A MOV R1, A MOVX A, @R0 CPL A
ANL A, #0FH JNZ GOON1 DJNZ R2, KLOOP MOV R2, #0FFH SJMP EXIT GOON1:
MOV R1, A MOV A, R2 DEC A RL A RL A
MOV R2, A ; R2 = (R2-1)*4 MOV A, R1 MOV R1, #4 LOOPC:
RRC A JC EXIT
第 21 页 共 34 页
占空比可调的方波发生器
INC R2
DJNZ R1, LOOPC EXIT:
MOV A, R2
MOV DPTR, #KEYTABLE MOVC A, @A+DPTR MOV R2, A WAITRELEASE:
MOV DPTR, #OUTBIT CLR A
MOVX @DPTR, A MOV R6, #5 CALL DELAY CALL TESTKEY JNZ WAITRELEASE MOV A, R2 RET
GOON: MOV R0,#LEDBUF
MOV DPTR, #LEDPINLVMAP MOV B,#4 MOV A,PINLV MUL AB MOV R2,A MOV R1,#4 GOONLOOP:
MOV A,R2
MOVC A, @A+DPTR MOV @R0, A INC R2 INC R0
DJNZ R1,GOONLOOP GOON2:
MOV DPTR,#LEDZHANKONGMAP MOV B,#2 MOV A,BILI MUL AB MOV R2,A MOV R1,#2 GOONLOOP2:
MOV A,R2
MOVC A, @A+DPTR MOV @R0, A INC R2 INC R0
第 22 页 共 34 页
占空比可调的方波发生器
DJNZ R1,GOONLOOP2 RET
KEYPRESSED:
CALL GETKEY MOV B, A XRL A, #DOWN JNZ KEY0 MOV A, PINLV XRL A, #0 JZ KEY3 DEC PINLV SJMP KEY3 KEY0:
MOV A, B XRL A, #UP JNZ KEY1 MOV A, PINLV XRL A, #3 JZ KEY3 INC PINLV KEY1:
MOV A,B XRL A,#CP JNZ KEY2 MOV A,BILI XRL A,#0 JZ KEY3 DEC BILI KEY2:
MOV A,B XRL A,#DP JNZ KEY3 MOV A,BILI XRL A,#4 JZ KEY3 INC BILI KEY3: LCALL ZHUANGRU SJMP MLOOP1 MLOOP:CALL ZHUANGRU MLOOP1: CALL TESTKEY JNZ KEYPRESSED CALL GOON
CALL DISPLAYLED
第 23 页 共 34 页
占空比可调的方波发生器
SJMP MLOOP1
TIN0: PUSH PSW PUSH A PUSH B
DJNZ CISHU,FANHUI CPL P1.0 CPL HL
MOV DPTR,#ZHONGDUAN MOV A,PINLV MOVC A,@A+DPTR MOV B,#5 DIV AB
JB HL,HIGHLEVEL MOV B,LOW0 LJMP FUZHI HIGHLEVEL: MOV B,HIGH0 FUZHI: MUL AB
MOV CISHU,A FANHUI: POP B POP A POP PSW RETI END
第6章 系统调试与测试结果分析
6.1 硬件调试
硬件的测试首先是检查电路的逻辑线路是否正确,如果正确再检查原理图的线路连接是否正确,电路的布局安排是否合理等等。软件的测试只要是检查程序的语法是否正确,数据结构安排是否妥当,时序是否正确,整体流程安排
第 24 页 共 34 页
占空比可调的方波发生器
是否合理。上面两部检查妥当后,就到了系统调试最关键的一步,软硬件的协同调试,问题往往在此才能被发现。
6.2软件调试
在软硬件协同调试时,硬件问题比较少,主要体现在上拉电阻的使用,滤波电容的使用等,极少发生逻辑上的错误。硬件的问题往往是致命的问题,其不易察觉,发现之后电路更改也不容易。这就需要我们不断的实验,在实战中摸索出规律,吸取经验教训,在以后的电路设计中能设计出稳定的抗干扰能力强的电路。软件问题是调试中遇到问题最多的,此系统中出现过的问题有以下几处:
1、键盘中断处理程序中中断入口后,没有关掉外部中断,出现键值读取不正确,不能正确操作键盘。解决方法,在中断入口处关掉外中断,并在出口时再开外中断;
2、键盘扫描前没有软件延时消抖,出现键值读取不准确。解决方法,在键盘中断入口后在键值扫描前软件延时5ms,消去键盘抖动所带来的误操作;
3、程序中有个别地方将“=”与“==”混淆,造成结果不准确,解决办法,仔细查找,将混淆出更正。
总结
在单片机课程设计中,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
但是,由于平时对单片机知识学习得不够扎实,理解得不够透彻、一知半解,致使在运用是不能贯通,导致在设计过程中困难重重,往往无从下手,但是通过和同组的同学一起探讨,最后还是一步一步的把所有的问题给一一解决
第 25 页 共 34 页
占空比可调的方波发生器
了。在这次设计过程中,我也对word、protel、画图板等软件有了更进一步的了解,这使我在以后的学习中更加熟练。
参考文献
单片微型计算机接口技术及其应用 张淑清 国防工业出版社单片机原理及其应用技术 张淑清 国防工业出版社 单片机应用技术汇编
第 26 页 共 34 页
占空比可调的方波发生器
display(PL,ZKB0);附录 仿真效果图
第 27 页 共 34 页
占空比可调的方波发生器
燕山大学课程设计评审意见表
指导教师评语: ①该生学习态度 (认真 较认真 不认真) ②该生迟到、早退现象 (有 无) ③该生依赖他人进行设计情况 (有 无) 平时成绩: 指导教师签字: 2012 年6 月 日 图面及其它成绩: 答辩小组评语: ①设计巧妙,实现设计要求,并有所创新。 ②设计合理,实现设计要求。 ③实现了大部分设计要求。 ④没有完成设计要求,或者只实现了一小部分的设计要求。 答辩成绩: 组长签字: 2012年6 月 日 课程设计综合成绩: 答辩小组成员签字: 2012年6 月 日 第 28 页 共 34 页
因篇幅问题不能全部显示,请点此查看更多更全内容