倒计时器设计.doc_第1页
倒计时器设计.doc_第2页
倒计时器设计.doc_第3页
倒计时器设计.doc_第4页
倒计时器设计.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计倒计时器目录1.设计目的22.设计内容及要求23.硬件介绍及设计方案2单片机AT89C512蜂鸣器4LED驱动芯片74LS2455晶振电路6键盘按键电路6数码管74.软件设置7单片机定时系统工作原理7电路原理8系统工作流程8软件流程9主程序105.单片机倒计时控制系统硬件原理图116.流程图12主程序流程图12倒计时器设计框图12倒计时程序流程图13按键去抖框图137.调试问题与解决方法148.仿真图16软件仿真图16硬件仿真图179.参考文献1910.设计的优缺点分析1911.设计心得体会2012.程序模块201、设计目的通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。2、设计内容及要求(1)设计一个倒计时器,由单片机接收小键盘阵列设定倒计时时间,倒计时范围最大为60分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。倒计时时间到,由蜂鸣器发出报警。(2)绘制系统硬件接线图,并进行系统仿真。画出程序流程图并编写程序实现上述功能3.硬件介绍.单片机AT89C51 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。在控制系统中,特别是小型控制装置和数字化仪器仪表中,往往只需要几个简单的数字显示或字符报警功能便可满足现场的需求,而显示数码的LED因其成本低廉、配置灵活、与单片机接口方便等特点在小型控制系统中得到极为广泛的应用。现将各引脚简单介绍如下1.主电源引脚VCC :+5V电源输入端Vss :电源接地端2.始终引脚XTAL1:片内放大器输入端XTAL2:片内放大器输出端在采用独立时钟方式或外部时钟方式的不同情况下其连接电路有所不同。3.专用控制端口(1)ALE/ PROG ,双功能控制端口。ALE,地址所存允许信号输出端。在访问片外程序存储器期间,每个机器周期ALE信号出现两次,其下降沿用于锁存P0口输出低8位地址。在不访问片外程序存储器时,该信号也以1/6振荡频率稳定出现,因此可用作对外输出的时钟脉冲。但在有访问片外数据存储器情况时,ALE脉冲会跳空,不适合作为时钟输出。 PROG,对片内EPROM的芯片,在编程期间,此引脚作为编程脉冲 PROG的输出端。(2)PSEN ,片外程序存储器读选通信号输出端。(3)RST/VPD 双功能控制端口。RST作复位信号输入端。当RST输入端保持两个机器周期的高电平时,就可以单片机完成复位操作。 VDP,第二功能,备用电源端输入端。在设有掉电保护的系统中,当主电源VCC低于规定低电平时,VPD线上的备用电源自动投入,以保持片内RAM中信号不丢失。(4)EA /VDD:双功能控制端口。 EA 访问片外程序存储器允许端,当接低电平时,CUP只访问片外ROM,当接高电平时,CPU优先访问片内ROM,若访问地址大于某一范围时,将自动转去片外ROM。VDD编程电源输入端,当对片内ROM写入程序时,由该引脚输入编程电源。4.输入/输出端口51单片机共有32个I/O引脚,分成P0、P1、P2、P3共四组端口。每组端口都有8个引脚,用于传送数据、地址或控制信号。P0口(P0.7P0.0)P1口 (P1.7P1.0)P2口 (P2.7P2.0)P3口 (P3.7P3.0)5.方案(1) 单片机倒计时控制系统硬件原理图如图9-1所示。(2) 考虑到在停电时本机仍需正常走时,故单片机选用CMOS低功耗产品如AT89C51,由于LED显示电路耗电量较大,可将其电源与单片机电源分开,从而使得在停电时蓄电池仅对单片机供电,而不对显示电路供电,延长电池的供电时间,(3) 选用典型的并口扫描显示输出。用AT89C51的P0和P2口作为段码和位码输出口,并由74LS245芯片作为LED的驱动芯片。(4) 利用P3口作为键盘电路输出,P1口的P1.0作为蜂鸣器的控制端口。 蜂鸣器蜂鸣器常用于声音提示或报警。它是双端器件。属于感性负载,需要一定的电流。其接口电路如图如图所示。二极管VD和三极管VT分别起续流和驱动作用。当P1.0输出高电平时,经R1限流,VT饱和导通,蜂鸣器得电发声;当P1.0输出低电平时VT截止,蜂鸣器断电无声。设计要求倒计时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。选用电平式蜂鸣器。蜂鸣器电路与单片机的接口:蜂鸣器的输入接P1.0口,另一端接地。当P1.0=1时,蜂鸣器中有电流通过,而产生蜂鸣声。当P1.0=0时,蜂鸣器不发声。LED驱动芯片74LS24574LS245是我们常用的芯片,用来驱动LED或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。 74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收) DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。 由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.iDi),其它时间处于输出(P0.iDi)。 晶振电路晶振与单片机的脚XTAL0和脚XTAL1构成的振荡电路中会产生偕波(也就是不希望存在的其他频率的波),这个波对电路的影响不大,但会降低电路的时钟振荡器的稳定性。为了电路的稳定性起见,ATMEL公司只是建议在晶振的两引脚处接入两个10pf-50pf的瓷片电容接地来削减偕波对电路的稳定性的影响,所以晶振所配的电容在10pf-50pf之间都可以的。但是主流是接入两个33pf的瓷片电容,此次电路用20PF。键盘按键电路键盘接口分为独立式键盘接口和矩阵式键盘接口。独立按键:一个按键占用单独的一个I/O口;矩阵键盘:为了节省I/O口,通常将按键排列成矩阵形式,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。本设计采用3*4的矩阵式电路。P3.0,P3.1,P3.2为行码扫描,P3.4,P3.5,P3.6,P3.7为列码扫描。数码管通常数码管分为共阴极和共阳极两种形式如上图所示。本次设计采用共阳极的形式如上图(b)所示。 4.软件设置单片机定时系统工作原理我们知道单片机的外接石英体振荡器能提供稳定、准确的频率,并经12分频后向内部定时器提供实时基准频率信号,我们设定定时工作在中断方式下,连续对此频率信号进行分频计数,便可得到秒信号,在对秒信号进行计数便可得到分、时、实时时钟信息。石英晶体振荡频率为6MHz,设定定时器工作在方式1下,定时常数为3CB0H,则定时器每100ms产生1次中断,在定时器的中断定时处理中,每10次中断,则向秒计数器减1,秒计数器计数到00时则向分计数器退位(并建立退位标志),分计数器计数到00时则向时计数器退位,计数器退位如此周而复始地连续计数,便可获得时、分、秒的信号,建立一个实时时钟,接下来便可以进行报警输出,当主程序检测到有分退位标志时,便开始比较当前时间(小时与分,存放在RAM中)与规定时间(小时与分及秒,存放在ROM中)是否有相同者,则进行蜂鸣器报警,如无相同者则返回主程序,如此便实现了定时控制的要求。要准确到秒,则时、分、秒三者均需参与比较,并且建立秒进位标志位,即每秒钟的偶也要对定时设定值比较一遍。电路原理 定时电路的核心是AT89C51单片机,其内部带有4KB的FLASH ROM,无须外扩程序存储器。电脑时钟没有大量的运算和短暂缓存数据,现有的128B片内RAM亦能满足要求,也不必外扩片外RAM。系统配备5位LED显示和3*4键盘,用P3口作为减排接口电路,P2口作为5位LED显示的位选通口,P0口则作为字形码输出口。采用共阳极LED数码管,PO口、P2口和数码管之间传接了驱动芯片74LS245,因此P2口输出高电平选中相应的位,而对P0口输出低电平点亮相应的段。系统工作流程1) 进入主程序。2) 设置各中断的入口地址。3) 把相关的寄存器清零。4) 设置数码管显示的初始状态。5) 对键盘进行扫描。6) 显示下一个数字。7) 进行倒计时。8) 判断计时是否到了。9) 到了清零处理。10)没到继续倒计时知道清零为止。10 软件流程。根据上述工作流程,软件设计可分为以下几个功能模块:1) 主程序:初始化与键盘监控。2) 计时:未定时器0中断服务子程序,完成刷新计时缓冲区的功能。3) 显示:完成5位LED动态显示。4) 键盘扫描:判断是否有键按下,并求取键号。5) 其他辅助功能程序,如键盘设置、拆字、合字、等。下面分模块进行软件设计:计时程序模块。如前所述,系统定时采用定时器与软件循环相结合的方法。定时器0每隔100ms溢出中断一次,则循环中断10次延时时间为1秒,上述过程重复60次为1分钟,分计时60次为1小时。设系统使用6MHz的晶振,定时器0工作方式1,则100ms定时对应的定时器初值可与以下计算得到 定时时间=(216-定时器0初值)*(12/fosc)如果定时器0初值为3CB0H,则TH0=3CH,TL0=0B0H。当系统使用其他频率的晶振时,可以由上式计算相应的定时器0初值,也可以改变定时时间。例如当系统晶振为12MHz时,同样的初值对应的设定时间为50ms,则循环中断次数为20次时,延时为1秒。这里有两个问题要特别重视。. 定时器溢出产生中断请求,CPU并不一定立即响应中断,而可能需要延迟一定的中断响应时间之后才能响应中断,中断响应时间大约为38个机器周期。显然,这将在定时时间中加入额外的延时时间,导致即计时误差。为了保证计时精度,必须采取措施进行补偿。我们采用增大重装的定时器0初值的方法来减少定时器0 的定时时间。具体应调整为多大,一般需要通过调试来确定。经测试,定时器0重装初值设为3CB7H3CBFH可以满足精度要求。. 时间是按十进制递增,而MCS-51系列单片机只有二进制加法指令,因此用加法指令计时必须进行二十进制转换。一, 时间校时对设置程序和定时报时程序模块。将键盘输入的5位时间值合并为3位压缩BCD码(时、分、秒)送入即使缓冲区,作为当前倒计时起始时间。该模块的入口为即使缓冲区或报时值寄存区的首地址。程序调用一个键盘设置子程序将键入的5位时间值送入键盘缓冲区,然后用合字程序将键盘设置缓冲区中的5位LED码合并为5位BCD码,送入即使缓冲区或计时值寄存区。二, 键盘扫描程序模块。此模块的功能是判断是否有键按下,无键按下则循环等待,有键按下则求取键号并将键号送累加器A返回。程序中的去抖延时和循环等待延时都用显示子程序来代替,从而保证随时刷新显示。键盘扫描程序在前面已有详细叙述,在此不再累述。三,显示程序模块。将显示缓冲区中的5位BCD码用动态扫描方式扫描显示,为此必须首先将3字节计时缓冲区中的分、秒、毫秒,压缩BCD码拆分为5字节。四,拆字程序与合字程序,如前所述,拆字程序的功能是将3字节计时缓冲中的分、秒、毫秒压缩BCD码拆分为5字节,BCD码并刷新显示缓冲区,合字程序的功能是将键盘设置缓冲区中的5位BCD码合并为3位压缩BCD码,送入计时缓冲区或计时值寄存区。下面分别对各程序模块进行介绍。1) 主程序。主程序流程图如图9-2所示。2) LED数码管扫描显示程序模块(流程图略)。3) 键盘扫描程序模块4) 键值处理程序模块5) 倒计时程序模块流程图见图9-3。主程序主程序的设计一般包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。程序的起始地址MCS-51系列单片机复位后,(PC)=0000H,而0003H002BH分别为个中断源的入口地址。所以,编程池应在0000H处写一跳转指令。当CPU接受到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序入口处执行。一般在响应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的其始地址进行编程。主程序的初始化内容所谓初始化,是对用到的单片机内部部件或拓展芯片进行初始工作状态设定。本次设计中,使用了两个中断,即T0、T1。其中:1.T0中断:采用T0定时中断工作方式,完成倒计时。2.T1中断:采用T1定时中断工作方式,完成蜂鸣器报警。对于时钟而言,显示显然是另一个重要环节。如前所述,通常有两种显示方式:动态显示和静态显示。 方案一:串口扩展,LED静态显示。 该方案占用资源少,采用串口传输实现静态显示,显示亮度有保证,但硬件开销大、电路复杂、信息刷新速度慢,比较适用于并行口资源较少的场合。 方案二:直接利用AT89C51单片机的P0和P2口,LED动态显示。 该方案硬件连接简单,但动态扫描的显示方式需占用CPU较多时间,在单片机没有太多实时测控任务的情况下可以采用, 本次系统选择动态显示方式。5. 单片机倒计时控制系统硬件原理图6.流程图主程序流程图:主程序设置各中断服务程序的入口地址相关寄存器清零设置数码管显示初始状态按键扫描显示按下的数字进行倒计时时间到零否报警YN 倒计时器设计框图: 主程序数码管动态扫描模块当前时间倒计时模块输入倒计时时间模块蜂鸣器报警模块 倒计时器设计流程图:开始倒计时寄存器清零设置定时器0工作方式判断按键次数N启动定时器0关闭定时器01次2次3次等待中断T1中断发声提示达到最大值按键消抖框图:开始有键闭合?调用延时字程序Y有键闭合?确定闭合的YNN7.调试问题与解决方法完成了硬件的设计、制作和软件编程后,要使系统能够按设计意图正常运作,必须进行系统调试。系统调试包括软件调试和硬件调试。不过,作为一个小计算机系统,其运行是软硬件相结合的,因此,软硬件的调试也是不可能绝对分开的,硬件的调试常常需要利用调试软件,软件的调试也可能需要对硬件的测试和控制来进行。(1)硬件调试。硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。1)脱机检查。用万用表逐步按照电路原理图检查印制电路中所有器件的各引脚,尤其是电源的连接是否正确:检查数据总线、地址总线和控制总线是否有短路等故障,顺序是否正确;检查各开关按键是否能正常开关,是否连接正常;各限流电阻是否短路等内容。为了保护芯片,应先对各IC电位进行检查,确定其无误后再插入芯片检查。2)联机调试。暂时拔掉89C51芯片,将仿真器的40仿真插入89C51的芯片插座进行调试,检验键盘/显示接口电路是否满足要求设计。可以通过一些简单的测软件来查看接口工作是否正常。例如,我们可以设计一个软件,使89C51的P1、P2口输出55H或AAH,同时读P3口,运行后用万用表检查相应端口电平是否一高一低,在仿真器中检查读入的P3口8位是否为1,如果正常则说明89C51正常工作。还可以设计一个使所有LED全显示“8.”的静态显示程序来检验LED的好坏。如果运行测试结果与预期不符,很容易根据故障现象判断故障原因并采取针对性措施排除故障。(2) 软件调试。软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来进行联调。联调需要注意的是,各程序模块间能否正常传递参数,特别要注意各子程序的现场保护与恢复。调试的基本步骤如下:1)用仿真器修改显示缓冲区内容,屏蔽拆字程序,调试动态扫描显示功能。例如将DISP0DISP4单元置为“01234”,应能在LED上从左到右显示“01234”。若显示不正确,可在显示子程序相应设置断点调试检查,然后用仿真器修改计时缓冲区内容,调试显示模块,例如,将HOUR、MIN、SEC单元置为“01235”检查是否能正确显示“01.23.5”,若显示不正确,应在显示子程序相应位置设置断点,反复调试检验直至完全正确。2)运行主程序调试时模块,不按下任何键,检查是否从由60.00.0开始正确计时,若不能正确计时则应在定时器中断服务子程序中设置断点,检查HOUR、MIN、SEC、MSEC单元是否随断点运动而变化。然后屏蔽缓冲区初始化部分,用仿真器修改计时缓冲区内容为40:33.5,运行主程序,检验能否正确进位。3)调试键盘模块扫描,先用延时10ms子程序代替显示子程序延时消抖,在求取键号后设置断点,中断后观察A累加器中的键号是否正确,然后恢复用显示子程序延时消抖,检验与显示模块能否正常连接。4)调试时间设置/闹钟定时模块TIMSEF。首先屏蔽中断子程序,单独调试键盘设置模块CKECKEY,观察显示缓冲区DISP0DISP4单元的内容是否随键入的键号改变,以及键号能否在LED上显示。然后屏蔽CKECKEY子程序,分别将R1设置为时间缓冲区和闹钟值寄存区的首地址,修改显示缓冲区内容,程序运行后查看时间设置缓冲区HOUR、MIN、SEC单元和闹钟值寄存区AHOUR、AMIN、ASEC单元内容是否正确。最后联调TIMSET模块。5)运行主程序联调,检查能否用键盘修改当前时间以及设置闹钟,能否正确计时、启闭、停闹。(3)脱机运行。软、硬件调试成功之后,可以将程序固化到89C51的FLASH ROM中,插入89C51芯片,接上电源脱机运行。既然软硬件读都可以调试成功,脱机运行似乎肯定成功,然而事实往往并非如此,仍有可能出现以下故障;1)系统不工作。其原因主要有晶振不起振,或是 EA脚没有接高电平(接地或悬空)等。2)系统工作时好时坏。这主要是由于干扰引起的。由于本系统没有传感输入通道和控制输出通道,干扰源相对较少且简单,因此,在电源、总线处对地接滤波电容一般可以解决问题。对本节介绍的单片机报时控制系统,需要做以下几点说明:(1)软件陷阱。 为是跳飞的程序重新返回主程序区,恢复程序的正常运行,在EPROM的未编程区加入若干个如下的程序段:NOP NOP LJMP NEXTT NOP(2)输出驱动加光电隔离元件,如果是驱动高压大电流,继电器选用过零触发的固态继电器,继电器安装部位应尽量远离单片机并加装良好的电磁屏蔽,减少对单片机干扰 8.仿真图软件仿真图硬件仿真图9.参考文献1 余永权.AT89系列单片机应用技术.北京:北京航空航天大学出版社,20022 沈红卫.单片机应用系统设计实例与分析. 北京:北京航空航天大学出版社,20033 吴金戎.8051单片机实践与应用.北京:清华大学出版社,20024 胡汉才.单片机原理及系统设计.北京:清华大学出版社,20025 何希才.新型集成电路应用实例M.北京:电子工业出版社,2002.6 马中梅.单片机的汇编语言程序设计.北京:北京航空航天大学出版社,20047 公茂法.单片机接口实例集.北京:西安电子科技大学出版社,2004851系列单片机设计实例:北京航空航天大学出版社,2003.39单片机应用技术 北京:中国电力出版社,200310.设计的优缺点分析优点:设计思路简单,容易实现,有利于自己的学习本装置的最大特点是实时性强,可操作性好。因为采用了矩阵式键盘控制,能够随时改变倒计时时间,所以装置能够应对不同的要求而做出相应的调整,以适应不同的环境。缺点:倒计时器溢出中断请求,CUP并不一定立即响应中断,而可能需要延迟一定的中断响应时间之后才能响应中断,中断响应时间大约为3-8个机器周期。不能实现更为复杂的计时。本装置也存在一些缺点值得注意。如当按键开关出现问题时,系统会出现错误,甚至误报警。如果能采用红外线控制则可避免这一问题。11.设计心得体会单片机课程设计,是对单片机知识的验证,可以帮助我们理解巩固所学知识,激发我们对单片机课程的兴趣,更锻炼了我们独立思考、开拓创新的能力。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到合作的重要性,只有合作才能保证整个项目的有条不絮。在设计过程中,非常感谢同学们的指导,才使设计进展的比较顺利。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我的设计以极大的帮助,使我获益匪浅。因此非常感谢张晓虎老师的教导。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。12.程序模块;以下8个存储单元分别存放8位数码管的段码LED_BIT_1 EQU30HLED_BIT_2 EQU31HLED_BIT_3 EQU32HLED_BIT_4 EQU33HLED_BIT_5 EQU34HLED_BIT_6 EQU35HLED_BIT_7 EQU36HT_COUNT EQU38HKEY_CNT EQU39HLINE EQU3AHROW EQU3BHVAL EQU3CHTCOUNT EQU40HKCOUNT EQU41HKEY BITP3.3;*ORG00HSJMPSTARTORG0BHLJMPINT_T0ORG 1BHLJMP INT_T1START:MOVT_COUNT,#00H;初始化MOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HMOVLED_BIT_1,#3FHMOVLED_BIT_2,#3FHMOVLED_BIT_3,#40HMOVLED_BIT_4,#3FHMOVLED_BIT_5,#3FHMOVLED_BIT_6,#80HMOVLED_BIT_7,#3FHMOVDPTR,#TABLEA0:LCALLDISP;*;按键扫描LSCAN:MOVP3,#0F0H;行码扫描L1:JNBP3.0,L2LCALLDELAYJNBP3.0,L2MOVLINE,#00HLJMPRSCANL2:JNBP3.1,L3LCALLDELAYJNBP3.1,L3MOVLINE,#01HLJMPRSCANL3:JNBP3.2,L4LCALLDELAYJNBP3.2,L4MOVLINE,#02HRSCAN:MOVP3,#0FH;列码扫描C1:JNBP3.4,C2MOVROW,#00HLJMPCALCUC2:JNBP3.5,C3MOVROW,#01HLJMPCALCUC3:JNBP3.6,C4MOVROW,#02HLJMPCALCUC4:JNBP3.7,C1MOVROW,#03H;*CALCU:INCKEY_CNT;统计按键次数MOVA,KEY_CNTCJNEA,#9,K1;如果按键3次,发声提示MOVTMOD,#01HMOVTH1,#(65536-700)/256MOVTL1,#(65536-700)MOD256MOVIE,#82HSETBTR1W10:MOVA,P3;等待按键抬起CJNEA,#0FH,W11MOVP0,#00HCLRTR0LJMPSTARTW11:MOVA,P3CJNEA,#0F0H,W12MOVP0,#00HCLRTR0LJMPSTARTW12:SJMPW10;*;第1次按键,清除已显示的0,显示按下的数字K1:CJNEA,#1,K2MOVA,LINEMOVB,#04HMULABADDA,ROWMOVVAL,AMOVCA,A+DPTRMOVLED_BIT_1,A CJNE P3.3,#1,AA1DISP1:LCALLDISPW20:MOVA,P3;等待按键抬起CJNEA,#0FH,W21LJMPA0W21:MOVA,P3CJNEA,#0F0H,W22LJMPA0W22:SJMPDISP1;*;第2次按键,显示按下的数字K2:MOVA,LINEMOVB,#04HMULABADDA,ROWMOVVAL,AMOVCA,A+DPTRMOVLED_BIT_2,A LCALL AA1 DISP2:LCALLDISPW30:MOVA,P3;等待按键抬起CJNEA,#0FH,W31LJMPA0W31:MOVA,P3 CJNEA,#0F0H,W32 LJMPA0W32:SJMPDISP2;*;开始倒计数AA1: MOVTCOUNT,#00HMOVKCOUNT,#00HMOVTMOD,#01H ;定时器0工作在方式1MOVTL0,#(65536-50000)/256MOVTH0,#(65536-50000) MOD256K1:JBKEY,$ ;等待按键LCALLDELAYJB

温馨提示

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

评论

0/150

提交评论