南昌航空大学PWM波形发生器实验报告

上传人:仙*** 文档编号:29973203 上传时间:2021-10-08 格式:DOC 页数:30 大小:635.50KB
收藏 版权申诉 举报 下载
南昌航空大学PWM波形发生器实验报告_第1页
第1页 / 共30页
南昌航空大学PWM波形发生器实验报告_第2页
第2页 / 共30页
南昌航空大学PWM波形发生器实验报告_第3页
第3页 / 共30页
资源描述:

《南昌航空大学PWM波形发生器实验报告》由会员分享,可在线阅读,更多相关《南昌航空大学PWM波形发生器实验报告(30页珍藏版)》请在装配图网上搜索。

1、PWM波信号发生器的研制 课程设计说明书课程设计名称: 单片机专业课设 课程设计题目: PWM信号发生器的研制 学 院 名 称: 信息工程学院 专业: 电子信息工程 班级: 学号: 姓名: 评分: 教师: 20 13 年 7 月 2 日摘要随着电力电子全控开关器件的出现,脉宽调制技术()在电力电子变流技术中获得了,。泛的应,如直流开关电源(变换)、交。交变频(变换)、交直交变频系统、电源(变换)、高功率因数整流(整流或功率灭数校正等)等电力电子各个应用领域,无不采用控制技术。控制最基本的实现方法是通过载波和控制波的模拟电路调制米产生,如采用三角形载波(或锯齿波)和直流(或正弦波)控制信号比较器

2、进行比较产生波。这种方法在模拟控制技术中广泛采用,并出现过许多产生波控制芯片,如用于开关电源的、等。随着数字控制技术的发展,又出现了许多数字式集成芯片,如用于变频调速的三相发生器、等。但与迅速发展的微机控制技术相比,该方法显示出电路复杂、调制方式不够灵活等缺点,而采用软件计算的实时控制策略越来越彼人们接受,并出现了许多不同的波的计算方法,如采样法、谐波注入法、均值法、等面积法等。电力电子的微机控制技术已成为一种必然趋势。因此本文就的单片机控制与实现进行分析研究,通过对外围电路芯片的设计实现PWM输出波形的频率、电压幅值、占空比的连续调节,达到产生PWM信号目的。关键字:脉宽调制技术()、占空比

3、、控制信号 单片机原理与接口技术 课程设计任务书20 12 20 13 学年 第 2 学期第 17 周 19 周 题目PWN波形发生器内容及要求(1) 采用定时/计数器8253。(2) PWM信号的工作频率为500Hz(1000Hz)。(3) 占空比可变且显示占空比。进度安排 第一周进行课程的理论设计,包括各个模块的原理和电路图。第二周进行电路的仿真与电路板板的焊接。第三周进行电路的调试。学生姓名:指导时间指导地点:任务下达20 12 年6 月 24 日任务完成20 12年 7 月 4日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师系(部)主任注:1、此表一组一表二份,课程设计小组

4、组长一份;任课教师授课时自带一份备查。2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。目 录 第一章 系统的基本结构与分析51.1 系统设计内容与要求51.2系统的基本结构51.3系统的原理分析5第二章 软件设计62.1程序设计语言的区别与选择62.2 键盘功能介绍72.3 程序内部的具体说明82.3.1关键字的具体说明82.3.2单元地址介绍82.4软件流程图9第三章 硬件设计103.1 方案的选择103.2 各个电路模块的介绍113.2.1振荡电路113.2.2复位电路113.2.3 8253芯片定时/模块123.2.4键盘及显示电路15第四章 实验调试与结果分析17

5、4.1 实验调试器材174.2 实验调试过程174.3 测试结果分析18结论19参考文献20附录A21附录B23第一章 系统的基本结构与分析1.1 系统设计内容与要求一、设计内容与要求:(4) 采用定时/计数器8253(5) PWM信号的工作频率为500H(6) 占空比可变且显示占空比1.2 系统的基本结构如图1.1所示为系统的基本结构框图。第一个框图中的显示器是由HD7279来控制,HD7279芯片是管控制的显示与键盘。第二个框图中锋的单片机用到的是89C51的核心控制单元。第三个框图中的定时/计数器,选用的是8253芯片,并且用到了74LS138译码器的片选功能。另外还用到一些门电路以及7

6、4LS373地址寄存器。显示器单片机定时/计数器整形PWM图1.1 基本结构框图1.3 系统的原理分析在实验中,首先我们通过编写软件程序的,对8253计数器的写入值产生一系列幅值相等而宽度不等的脉冲。其次,89C51单片机的作用是对PWM的显示器和定时/计数器进行控制。最后,产生一系列有规则的脉冲PWM波形。此外通过键盘按键的控制可以对8253计数器的初值进行改变,与此同时,数码管的占空比也能相应的显示出来。第二章 软件设计2.1程序设计语言的区别与选择汇编语言和C语言他们的指令集,寻址方式不同,相当于两个机器各有各的操作方式汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的

7、寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用,综合我们的实验要求,我们选择用汇编语言对程序进行编写。2.2键盘功能介绍我们键盘功能需要使用到的芯片是HD7279,HD7279A是一片具有串行接口的,可驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。产品特点:串行接口,无需外围元件可直接驱动LED各位独立控制译码/不译码及消隐和闪烁属性(循环)左

8、移/(循环)右移指令具有段寻址指令,方便控制独立LED64键键盘控制器,内含去抖动电路有DIP和SOIC两种封装形式供选择。 图2.2-1 图2.2-2 HD7279A芯片图 HD7279A芯片及键盘图2.3程序内部的具体说明2.3.1关键字的具体说明表2.3.1 关键字说明MAIN主程序KEY读键值子程序STFS发送一字节子程序STJS接收一字节子程序DISPLAY7279显示子程序DIS_DEAL初始化显示处理子程序INT_72797279初始化子程序PWM_DEALPWM的占空比数据处理子程序PWM_OUTPWM的输出子程序DIS_DEAL1修改后的显示处理子程序TV4键入占空比子程序T

9、AB07279键值表TAB0到9及good和nice字型码2.3.2单元地址介绍表2.3.2 单元地址介绍DFFFH8253控制口地址DFFDH8253计数器1地址DFFCH8253计数器0地址50H,51H8253计数器0的计数初值存储单元48H,49H,4AH键入的占空比存储单元40H,41H,42H,43H,44H,45H,46H,47H显示缓冲区2.4软件流程图对7279初始化,判断是否有按键按下,若没有按键按下,再次判断,重新进行键盘扫描;若键按下,判断是哪个键按下,并进行相应的操作。最后通过ALE不断给8253计数器时钟信号,进而改变占空比,对计数器0口不同输出,进而达到实验要求。

10、开始调7279初始化子程序判断是否有键按下调读键盘子程序调显示子程序判断第二个键是否按下将十进制占空比转化为二进制调延时子程序产生PWM波图2.4.1流程图第三章 硬件设计3.1方案的选择通过研究占空比可调信号的产生方法,采用三种不同的方案使用汇编语言的产生。方案一:的原理是分频,即用计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM信号;方案二:的原理是锯齿波比较法,首先编程产生阶梯状的锯齿波,再通过锯齿波与输入占空比值(数值可控的直线)比较产生脉冲宽度随输入占空比数值变化的PWM信号。方案三:是用有限状态机产生有用信号,首先定义两个状态,再通过计数器

11、值与输入占空比值比较控制状态的切换,产生PWM信号。方案四:选用可编程芯片8253的计数器0作为PWM信号发生器,8253的计数器0工作在可重复触发单稳态方式1下,它的输出口OUT0产生宽度可调的PWM信号脉冲,该输出脉冲宽度为:W=N/f;输出的占空比为:P=W1(f/N)通过使用proteus软件采用汇编语言能仿真证实了上文提到的四种PWM信号产生方案都是可行的,都能产生切实可用的PWM信号,四种方案中均可以通过修改输入端口占空比来控制产生信号的脉宽,且可以通过在程序中修改计数器的计数上限和分频模块的分频比改变信号的周期及频率,实现了多参数可调,使整体设计具有灵活的现场可更改性和较好的可移

12、植性。且实现功能的程序简单易懂,设计过程中思路阐述清晰,流程介绍明了,且程序易于修改,可读性好但是我综合各个因素我选择方案四。3.2各个电路模块的介绍3.2.1振荡电路振荡器能够输出某一指定频率的正弦波,因此闭合环路中包含选频网络。若选频网络由RC元件构成,则该振荡器称为RC振荡器,一般用来产生1赫至几兆赫范围内的低频信号;若选频网络由LC元件组成,则该振荡器称为LC振荡器,一般用来产生几百千赫以上的高频信号。若在LC振荡电路的选频网络中加入晶振元件,我们则称该电路为石英晶体振荡器,其目的是为了提高输出信号的频率稳定度。3.2.2 复位电路按键按下会复位,单片机启动0.1S后,电容C两端的电压

13、持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。总结:1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。2、按键按下系统复位,是电

14、容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。图3.2.2复位电路图3.2.1复位与振荡电路仿真图3.2.3 8253芯片定时/模块这个芯片和模块的功能对于此次实验起着这关重要的作用,下面先来介绍一下这块芯片的控制字和具体的工作方式。图3.2.3-1 8253控制字每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时, 最大计数值是FFFFH, 采用BCD码计数时。 最大计数值是9999。与此计数器相对应, 每个通道内设

15、有一个16位计数值锁存器。必要时可用来锁存计数值。 当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入, 每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。 OUT端将有输出。表示计数次数到。当某个通道用作定时器时。 由CLK输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”, 待计数值计到“0”。OUT将有输出,表示定时时间到。允许从CLK输入的时钟频在12MHz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“

16、1”计数。 而后者是内时钟脉冲进行减“1”计数。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时, 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到: 定时系数需要定时的时间时钟脉冲周期 设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式; 计数/定时:向通道写入计数值,启动计数操作; 读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。 计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。 计数初值输入存放在初值

17、寄存器中,计数开始或重装入时被复制到计数器中。 锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。8253中各通道可有6种可供选择的工作方式, 以完成定时、计数或脉冲发生器等多种功能。8253的各种工作方式如下: 1.方式0:计数结束则中断 工作方式0被称为计数结束中断方式,它的定时波形如图9.3.4所示。当任一通道被定义为工作方式0时, OUTi输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值WR#有效时,OUTi仍保持低电平,然后计数器开始减“1”计数, 直到计数值为“0”,此刻OUTi将输出由低电

18、平向高电平跳变,可用它向CPU发出中断请求,OUTi端输出的高电平一直维持到下次再写入计数值为止。 2.方式1:单脉冲发生器 工作方式1被称作可编程单脉冲发生器,进入这种工作方式, CPU装入计数值n后OUTi输出高电平, 不管此时的GATE输入是高电平还是低电平, 都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。与此同时,OUTi输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”, OUTi输出由低电平向高电平跳变,形成输出单脉冲的后沿, 因此,由方式l所能输出单脉冲的宽度为CLKi周期的n倍。 3.方式2:速率波发生器 工作方

19、式2被称作速率波发生器,其定时波形如图9.3.6所示。进入这种工作方式, OUTi输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUTi保持为高电平不变; 待计数值减到“1”和“0”之间, OUTi将输出宽度为一个CLKi周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUTi将输出一定频率的负脉冲序列, 其脉冲宽度固定为一个CLKi周期, 重复周期为CLKi周期的n倍。 4.方式3:方波发生器 工作方式3被称作方波发生器,其定时波型如图9.3.7所示。任一通道工作在方式3, 只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。 进入工作方式

20、3,OUTi输出低电平, 装入计数值后,OUTi立即跳变为高电平。如果当GATE为高电平, 则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为nCLKi周期,占空比为1:1的方波序列; 若n为奇数, 则OUTi端输出周期为nCLKi周期,占空比为(n+1)/2)/(n-1)/2)的近似方波序列。 5.方式4:软件触发方式计数 工作方式4被称作软件触发方式,其定时波形如图9.3.8所示。进入工作方式4,OUTi输出高电平。 装入计数值n后, 如果GA

21、TE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUTi输出宽度为一个CLKi周期的负脉冲。由软件装入的计数值只有一次有效,如果要继续操作, 必须重新置入计数初值n。如果在操作的过程中,GATE变为无效,则停止减“1”计数, 到GATE再次有效时,重新从初值开始减“1”计数。 6.方式5:硬件触发方式计数 工作方式5被称为硬件触发方式,其定时波形如图9.3.9所示。进入工作方式5, OUTi输出高电平, 硬件触发信号由GATE端引入。 因此,开始时GATE应输入为0, 装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会

22、开始,待计数值计到“0”, OUTi将输出负脉冲,其宽度固定为一个CLKi周期,表示定时时间到或计数次数到。 图3.2.3-2 定时/计数器8253控制电路图3.2.4 键盘及显示电路HD7279A专用键盘显示电路,真正的单片LED数码管显示和键盘接口芯片,无需外围电路,只需要外接少量的电阻等,即可构成完善的显示、键盘接口电路。而与CPU的接口采用SPI串行接口方式,使用方便。可方便的构成64按键,8位数码显示电路(共阴极结构)HD7279A内部含有译码器,可直接受BCD码或16进制数据或七段显示码数据。此外,还具有多种控制指令,如消隐,闪烁,左移,右移,段寻址等。具有片选信号,可方便地实现多

23、于8位的显示或多于64键的键盘接口。HD7279的纯指令:1、复位指令(A4H)当HD7279A收到该指令后,将所有显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行后,芯片的状态与上电时一样。2、测试指令(BFH)该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试(检查LED是否坏)3、左移指令(A1H)使所有显示左移一位,消隐及闪烁属性不移位,最右边一位为空(暗)。4、右移指令(A0H)使所有显示右移一位,消隐及闪烁属性不移位,最左边一位为空(暗)。5、循环左移指令(A3H)使所有显示右移一位,消隐及闪烁属性不移位,最左边一位移到最右边。6、循环右移指令(A2H)使所有显示

24、右移一位,消隐及闪烁属性不移位,最右边一位移到最左边。 图3.2.4键盘与显示控制电路第四章 实验调试与结果分析4.1 实验调试器材数字万用表 一个稳压电源 一个示波器 一台4.2 实验调试过程采用了ISIS 7 Professional 进行了实验电路的构建,接下来用Keil uVision4软件进行仿真,并在仿真调试中不断的对实验程序进行修改,最后仿真能较好的完成。接下来开始了硬件电路板的设计制作,硬件电路制作中杜邦线的制造是需要花一点心思的,线一定要插到底并加以固定。 之后实验电路制作完成后,用万用表检测有无短路开路等现象,在保证硬件电路没有问题后,用示波器的串口线与硬件电路相连,运行程

25、序进行调试。在一开始时数码管能显示“good050”,但在接下来输入的时候发现输入的数并不能在数码管上有所显示,一直是“NICE050”,于是我又对程序进行了检查,原来是输入按键时没有调用显示子程序,程序发生了问题,接着在对程序修改之后,输入不显示的问题解决了。如我要输入占空比为“45”的数值,只要依次输入“0”、“4”、“5”。数码管就能显示“nice045”。 输入问题解决了,但是波形并不能如愿的产生,我们再次对电路进行了检查,原来是电路中部分焊点的连线接触不良,导致波形不能产生,于是我们重新对那些焊点重新焊接加以固定。并在连接示波器的时候对于线的连接也进行了一番细致的检查。最后能产生稳定

26、的方波。4.3 测试结果分析全部调试结果出来,首先上电,7279显示器上默认显示“good050”,而在示波器上显示出来的也是50%的方波。接着按下“设置/确认” 键后,由于“good”占了5个数码管故显示器上第6个数码管开始闪烁,即提示可以修改此数值。接下来按键数值只能选择“0”,因为占空比数值范围为“0%99%”百位上不会有数值出现,若选择了“1-9”的任意数值,则会继续闪烁直到你选择0才会变为第七个数码管闪烁选好“0”接下来第七个数码管闪烁,选择“0-9”的任意数值,选好之后第八个数码管闪烁,也选择“0-9”的任意数值。选择好之后,再次按下“设置/确认”键后,修改完成。例如你想输出PWM

27、占空比为45%的方波,你要依次输入“0”、“4”、“5”三个数值,示波器上就会显示出来,满足我们所想要的实验效果。结论 单片机这门课程需要硬件和软件两方面的能力,在硬件方面,需要对各类芯片管脚以及不同的器件的性质十分的熟悉,懂得器件之间如何搭配,使得电路效率最大化,价格最优化。此外硬件还需要过硬的焊接技术和排版能力,这个是保证电路不出错误的基本要素。在软件方面,需要较强的思维逻辑性,对于一个设计要求,在程序设计时要有连贯性,能够巧妙的用较简洁的程序来解决问题,这个需要平时多加的训练以提高编程能力。不管怎样硬件与软件都是十分重要的,只有两方面都重视,才能在单片机领域上有所前进,为以后自己的工作学

28、习带来便捷。 虽然三周的课设时间说长不长说短不短,但是却是让人收获颇多的,首先在选题时,觉得这个题目既熟悉又陌生,熟悉的是用到了书本上用到的芯片,陌生的是不懂得如何编程来达到所需的要求。但是凭借着一股谦虚好学的劲头,问同学问老师,自己再回去钻研看书本,终于在编程上有多突破,自己也品尝到了些许成功的喜悦。但是不能放松心态,因为真正的实验调试结果还没有出来,需要我们理论到实验的过程了。在焊接时就遇到问题,常常因为自己焊接技术的不熟练会犯焊错、虚焊的错误。但是自己定下心来,在多次失败之后逐渐掌握了焊接的技巧,于是接下来很顺利的完成了实验版的制作。 总之不管怎么样,这次课程设计是对我们专业课程学习的一

29、种检验,更是一种激励,它在一定程度上表明了光学书本上的知识是远远达不到真正掌握单片机的程度的,只有不断的自我学习,请教他人,吸取别人的优秀经验,自己敢于创新,才能在单片机领域中立于不败之地,这对于我们即将毕业的大三学子有着巨大的启示和鞭策。参考文献1 江世明和黄同成编著的单片机原理及应用.出版社,20102 赖麒文 8051单片机C语言开发环境实务与设计.出版社,20023 杨欣 51单片机应用从零开始清华大学出版社,20084 唐继贤 51单片机工程应用实例北京航天航空大学出版社 ,20095 冯文旭 单片机原理及应用 机械工业出版社,20086 苏家健、曹柏荣、汪志锋 单片机原理及应用技术

30、 高等教育出版社,20047 李朝青 单片机原理与接口技术 北京航空航天大学出版社出版,20088 蔡明文、冯先成. 单片机课程设计. 武汉:华中科技大学出版社 , 20079 房小翠、王金凤. 单片机实用系统设计技术.北京:国防工业出版社,1996附录A芯片引脚图:AT89C51单片机:可编程的8253定时/计数器: HD7279:74LS373: 附录B系统设计程序代码如下:ORG 0000HLJMP MAINMAIN:MOV SP,#67H ACALL INIT_7279 ;7279初始化L1:ACALL PWM_DEAL ;PWM的占空比数据处理 ACALL PWM_OUT ;PWM输

31、出 ACALL DIS_DEAL ;显示处理L2:ACALL DISPLAY ;7279显示子程序 ACALL KEY CJNE A,#0FFH,L4 ;判断有无键按下LJMP L2L4:CJNE A,#0AH,L2 ;判断是否按下设置键 ACALL TV4 SJMP L1;PWM的占空比数据处理PWM_DEAL:MOV R7,#02HMOV R0,#4AHMOV A,R0L6:MOV B,#0AH MUL AB ;十进制占空比转化为二进制 DEC R0ADD A,R0DJNZ R7,L6MOV B,#25H MUL ABMOV 50H,AMOV A,BMOV 51H,ARET;PWM的输出P

32、WM_OUT:MOV DPTR,#0DFFFH MOV A,#74H ;计数器1,方式2,二进制计数MOVX DPTR,AMOV DPTR,#0DFFDH;MOV A,#74H ;OUT1 输出 500HZ的方波,计数器1的初值为0E74H MOVX DPTR,AMOV A,#0EHMOVX DPTR,AMOV DPTR,#0DFFFHMOV A,#32H ;计数器0,方式1,二进制计数 MOVX DPTR,AMOV DPTR,#0DFFCHMOV A,50H ;OUT0 输出脉宽可调的频率为500HZ的脉冲,计数器0的初值为键入值,存在50H,51H单元里 MOVX DPTR,AMOV A,

33、51H MOVX DPTR,ARET;初始化显示处理DIS_DEAL:MOV 40H,#09H ;上电后,前五个数码管显示good MOV 41H,#10HMOV 42H,#10HMOV 43H,#11HMOV 44H,#0BHMOV 45H,4AH ;最后三个数码管所显示的占空比值存于48H-4AH单元中MOV 46H,49HMOV 47H,48HRET;修改后显示处理DIS_DEAL1:MOV 40H,#0CH ;按下确认键后,前五个数码管显示nice MOV 41H,#0DHMOV 42H,#0EHMOV 43H,#0fHMOV 44H,#0BH MOV 45H,4AH ;最后三个数码管

34、所显示的占空比值存于48H-4AH单元中MOV 46H,49HMOV 47H,48H RET;键入占空比 TV4:MOV B,A CLR P1.0 MOV A,#88H ;7279闪烁指令 ACALL STFS MOV A,#0FBH ;第六个数码管闪烁 ACALL STFS SETB P1.0 MOV A,BACALL DIS_DEAL1 ;显示结果处理ACALL DISPLAY ;7279显示子程序 ACALL KEY ;键入第一个值 CJNE A,#01H,M1 ;与1比较,不能大于等于1 M1:JC M2 LJMP TV4 M2:MOV 4AH,A ;将第一个值存于4AH单元中 MOV

35、 B,A CLR P1.0 MOV A,#88H ACALL STFSMOV A,#0FDH ;第七个数码管闪烁 ACALL STFS SETB P1.0MOV A,BL12:ACALL DIS_DEAL1 ;显示结果处理 ACALL DISPLAY ;7279显示子程序 ACALL KEY ;键入第二个值 CJNE A,#0AH,L11 ;与10比较,不能大于等于10L11:JNC L12 MOV 49H,A ;将第二个值存于49H单元中 MOV B,A CLR P1.0 MOV A,#88H ACALL STFSMOV A,#0FEH ;第八个数码管闪烁 ACALL STFS SETB P

36、1.0 MOV A,B L13:ACALL DIS_DEAL1 ACALL DISPLAY ACALL KEY ;键入第三个值 CJNE A,#0AH,L14 ;与10比较,不能大于等于10 L14:JNC L13 MOV 48H,A ;将第三个值存于48H单元中 L15:ACALL DIS_DEAL1 ACALL DISPLAY ACALL KEY CJNE A,#0AH,L16 ;判断确认键是否按下 MOV B,ACLR P1.0 MOV A,#88H ACALL STFSMOV A,#0FFH ;取消闪烁 ACALL STFS SETB P1.0 MOV A,B ACALL DIS_DE

37、AL1 ;修改后的最终结果显示处理 ACALL DISPLAY ;7279显示最终结果 SJMP L18 L16:SJMP L15 L18:RET;显示部分DISPLAY:MOV R5,#08H ;显示子程序,显示8个字符,显缓区40H-47H MOV R0,#40H ;显缓区首址 MOV R1,#97H ;命令字控制显示的数码管 DL1:CLR P1.0 MOV R6,#0CH DL2:DJNZ R6,DL2 MOV A,R1 ;发送命令字 ACALL STFS; MOV R6,#06H DL3:DJNZ R6,DL3 ;延时 MOV A,R0 ADD A,#0DH MOVC A,A+PC

38、;查表 ACALL STFS ;发送显示内容 MOV R6,#02H DL4:DJNZ R6,DL4 ;延时SETB P1.0 INC R0 DEC R1 DJNZ R5,DL1 ; 循环次数 RET TAB: DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FHDB 7BH,00H,01H,76h,30h,4Eh,6Fh,1Dh,3Dh ;字型码;发送一字节STFS:MOV R7,#08H ;与7279串行发送子程序 SL1:RLC A MOV P1.2,C SETB P1.1 MOV R6,#02HSL2: DJNZ R6,SL2 CLR P1.1 MOV R6,#

39、02HSL3: DJNZ R6,SL3 DJNZ R7,SL1 RET ;键扫KEY:ACALL KEY1 CJNE A,#0FFH,KL1CLR 00HRETKL1:JB 00H,KL2 SETB 00HACALL KEY2RETKL2:MOV A,#0FFH RETKEY1:CLR P1.0 ;读键值子程序 MOV R6,#0CH L01:DJNZ R6,L01 MOV A,#15H ACALL STFS MOV R6,#06H L02:DJNZ R6,L02 ACALL STJS SETB P1.0 RETSTJS:MOV R7,#08H ;与7279串行接收子程序 L21:SETB P

40、1.1 SETB P1.2 MOV R6,#02H L22:DJNZ R6,L22 MOV C,P1.2 RLC A CLR P1.1 MOV R6,#02H L23:DJNZ R6,L23 DJNZ R7,L21 RETKEY2:MOV B,A MOV R2,#00H MOV R7,#0FH L31:MOV A,R2 ADD A,#0AH MOVC A,A+PC CJNE A,B,L32 SJMP L33L32:INC R2 DJNZ R7,L31 L33:MOV A,R2 RET TAB0: DB 1CH,1DH,1EH,1FH,14H ;7279键值表 DB 15H,16H,17H,0CH,0DH DB 0EH,0FH,04H,05H,06H DB 07H ;7279初始化INIT_7279:CLR P1.0 ;7279初始化 MOV R6,#0CH NL0:DJNZ R6,NL0 MOV A,#0A4H ACALL STFS MOV R6,#02H NL1:DJNZ R6,NL1 SETB P1.0 MOV 4AH,#00H ;上电后,数码管显示初始值050,即占空比50% MOV 49H,#05H MOV 48H,#00H RETEND30

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!