课程设计(论文)-基于单片机的数字电子钟.doc_第1页
课程设计(论文)-基于单片机的数字电子钟.doc_第2页
课程设计(论文)-基于单片机的数字电子钟.doc_第3页
课程设计(论文)-基于单片机的数字电子钟.doc_第4页
课程设计(论文)-基于单片机的数字电子钟.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1 数字式秒表的设计介绍1.1设计课题任务设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。1.2功能要求说明由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式为 XX(分):XX(秒).XX,精确到0.1s的整数倍。计时器工作时由蜂鸣器发出报警。绘制系统硬件接线图,并进行系统仿真和实验。画出程序流程图并编写程序实现系统功能。1.3数字式秒表的总体设计方案介绍及工作原理说明使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;采用S8550作为数码管的驱动部分;用两个四位一体共阳极或共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计时、连续、清零、停止各项功能。对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电, 电子产品中作发声器件。在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口无法直接驱动,所以要利用放大电路来驱动,一般使用三极管来放大电流。本设计采用p3.2口和三极管组成的电路来驱动蜂鸣器。键盘部分方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。显示部分方案:显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。本设计可采用P0口直接驱动八段数码管显示。此方案成本低,而且单片机的I/O口占用较少,可以节约单片机接口资源,而且功耗更低。此电路采用单片机的P0口作为数码显示管的段控,采用P2口作为数码管的位控。8个独立式键盘分别接在单片机的P1口上,以及其他部分构成数字式秒表的硬件电路。通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现秒计时和相关控制。此数字式秒表的硬件整体结构如图1-1所示。AT89S52电源振荡电路复位电路独立式键盘驱动电路数码管显示图 1-1数字式秒表的硬件结构图2 数字式秒表硬件系统的设计2.1数字式秒表硬件系统各模块功能简要介绍2.1.1 AT89S52简介(1) 与MCS-51产品相兼容;(2) 具有8KB可改写的Flash 内部程序存储器,可写/擦1000次;(5) 256字节内部RAM;(6) 32根可编程I/O口;(7)3个16位定时器/计数器。 (8) 8个中断源;(9)可编程中串行口;(10) 低功耗空闲和掉电方式。它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。其芯片引脚图如图2-1-1所示。 图2-1-1 单片机AT89S52引脚图2.1.2时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚TXAL2,在芯片的外部通过这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用12MHz的石英晶体。时钟电路如图2-1-2:图2-1-2 时钟电路2.1.3键盘电路本设计使用独立式键盘接在单片机的P1口上但通过软件赋予其中三个按键功能,其中S2是计时开始按键,第二功能为停止,S3为计时暂停按键,第二功能为继续计时按键,S4是清零按键,S5为学号显示键。注意使用时只有在暂停状态下才能继续计时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。键盘电路如图2-1-3:图2-1-3独立式键盘电路图2.1.4复位电路 复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。 RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平复位方式,其复位电路如图2-1-4所示:图2-1-4 复位电路2.1.5 驱动及显示电路数码管实际上是由二极管构成发光二级管正常工作时,其两端正向压降约为1.6v,正向电流约为10mA,为了使数码管达到一定的亮度而又不至于由于电流过大而损坏,我们使用三极管S8550作为数码管的驱动,同时在P0口和P2口上串上470欧姆的电阻。此处使用四位一体共阴极数码管,由于驱动电路决定了此处共阴极数码管和共阳极数码管均可以采用而且均采用共阳极代码来编写显示程序,具体电路如图2-1-5所示。图2-1-5 数码管驱动及显示电路图2.1.6 单片机下载口电路 下载口主要是一个十芯的座子,可以通过使用USB下载线对单片机进行程序下载。方便整个软件的设计,使用起来也更加方便。具体的下载口电路如图2-1-6所示。图2-1-6 单片机下载口电路图2.2 数字式秒表的硬件系统设计图2.2.1 电路原理图 电路原理图的绘制由protel99软件完成,Protel99是基于Win95/Win NT/Win98/Win2000的纯32位电路设计制版系统。Protel99提供了一个集成的设计环境,包括了原理图设计和PCB布线工具,集成的设计文档管理,支持通过网络进行工作组协同设计功能。根据硬件接线要求设计绘制电路原理图。具体电路图见附录A。2.2.2 PCB图 PCB图设计时,首先要使元器件尽量少,这样既可以节约材料,又可以是布线更加短,减少干扰,同时还应注意尽量减少线路之间的寄生电容和电感,布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小也要设置的比较大,这样在腐蚀环节和焊接环节比较容易成功。不易出现短线的现象和焊盘剥离的现象。双面布线时芯片和针脚多的元件需将焊接点置于底层,这样才能比较方便的焊接。制作电路板PCB图见附录B。1.2.3 元器件布局图元器件布局图见附录C。1.2.4 元器件清单元器件清单见附录D。 3 数字式秒表软件系统的设计3.1 数字式秒表使用单片机资源情况本次电子钟设计除了了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET)外,对单片机的硬件资源还做了具体的安排。(1)P0口:P0.0-P0.7作为数码管段控线,接LED的显示段dp,g,f,e,d,c,b,a。(2)P1口:P1.0-P1.4作为独立式键盘的输入端。(3)P2口:P2.0-P2.7分别控制数码管LED0-LED7的位控码驱动。(4)显示缓冲区设定从左至右依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH。(5)定时/计数器:使用定时器0工作方式1实现数字式计数器的运行。(6)专用寄存器:定时器控制寄存器TCON,通过设置该寄存器TR0位的状态来控制定时/计数器0的启动/停止;中断允许寄存器IE,通过设置该寄存器EA/ET0位的状态来设置定时/计数器0中断允许/禁止;定时/计数器工作方式寄存器TMOD,设置定时/计数器0的工作方式。3.2 数字式秒表软件系统主要模块功能简要介绍(1) 主程序:主程序的主要功能是进行定时器/计数器,显示缓冲区的初始化,显示,以及判断是否有功能键按下,判断按下的键并调相应的键功能程序。(2) 键功能程序:键功能程序的主要功能是执行对应的功能,S2键为启动/停止键,第一次按下则由待机状态进入运行状态启动时钟,从00-00-00开始显示,然后按下为奇数则暂停。S2键为暂停/继续键,只有在启动的状态下才能暂停,而继续是在暂停的状态下运行。S3键位清零键,清零只有在停止的状态下使用有效。S5为显示学号键。(3) 中断服务程序:中断服务程序的主要功能是进行计时操作,程序开始先判断计数溢出是否满了8次,若不满8次则表明没有达到最小计时单位秒,则中断返回;若满100次表明已达到最小计时单位秒,则程序断续向下执行,进行毫秒计时,当毫秒满60时向秒执行,秒满60再向分运行。(4) 显示子程序:显示程序的主要功能是将显示缓冲区的段控码正确的显示在数码管上,采用动态显示,从右向左循环点亮每一位数码管。(5) 键扫子程序:键扫子程序的主要功能是判断是否有键按下,是哪个键按下。3.3主程序流程图MAIN定义堆栈显示缓冲单元清零定时器0工作方式1装载计数初值定时开始开中断设置循环次数调用显示子程序等待定时中断请求键盘扫描图3-1 主程序流程图3.4中断服务程序流程图TC0现场保护计数器重加载循环次数减1是否满8次毫秒值加1是否满60毫秒缓冲清零秒值加1是否60S秒显缓冲清零分显示加1是否满60分显示清零现场恢复返回YNNNNYYY图3-2 中断服务程序流程3.5显示程序流程图DISP现场保护寄存器初始化显示代码查表送段控代码送位控代码延时送段控代码位控代码左移是否左移8次恢复现场返回NY图3-3显示程序流程图3.6软件系统程序清单按照流程图应用软件keil汇编语言编程实现秒表功能。程序清单见附录E。4 设计结果及误差分析4.1 数字式秒表的设计结论及使用说明 通过设计和调试,数字式秒表能顺利完成各项功能。上电或复位后显示“P.”提示符,此时按1键便可开始计时。在计数状态下,按下2键即可实现暂停,再次按下2键即可实现继续计数,在计数状态下按下1键,实现计数停止,在停止状态下按下3键,便可实现计数清零。计数状态下按下清零键,无效。4键为显示学号输出。4.2 调试软件介绍 本电子钟的设计用的pretues仿真软件设计电路并仿真。Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。因为pretues仿真软件中所有的情况都是在理想想的条件下,但是与实际电路的工作还是有很大的差别,所以我们必需考虑到实际情况应接入驱动限流等电路它才能被实际所应用。4.3 程序仿真与结果 我们是在Keil软件里编写程序并编译通过才能被硬件电路所应用。Keil的功能比较强大但还是有一定的缺点。他编译过程中他只能检查出所编写的语法错误,所以我们一步一步的去在硬件电路里仿真去达到我们所设计要求的功能。经仿真修改和完善均已达到设计要求.“P.”显示,电子钟准备状态与电子钟自动运行状态的仿真如下图所示。(1). “P.”显示如图4-1所示。图4-1 “P”显示图(2). 数字式秒表准备状态仿真的显示如图4-2所示。图4-2 准备计时状态(3). 数字式秒表运行状态的仿真如图4-3所示。图4-3 计时器状态(4).学号显示如图4-4所示。 图4-4 学号显示状态4.4 误差分析及解决方法我们可以发现数字式秒表计数一段时间的我们的标准时间相比较出现了误差,所设计的数字式秒表比我们的标准时间要慢,而且相比较的时间越长他的时差越大。经过分其主要原因与硬件和软件都有关。软件原因:我们从外部中断请求有效到转向中断区入口地址所需的机器周期数来计算中断时间,51系列单片机最短响应时间为3个机器周期。在一般情况下中断响应时间通常无需考虑,但在精确定时的应用场合需知道中断响应时间,以保证定时的精确控制。硬件原因:单片机的时钟信号是由外部的振荡电路所提供,在芯片的外部通过接XATL1与XATL2这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。因为电子原件不可以就有我们所设计的那么理想(电容的容量,振晶的输出频率)所以会造成我们的时间准确。 针对这样的问题我们就能只能从上述两个方面入手去解决。软件方面我们可以通过计算设计子程序去减少响应的时差。硬件部分我们可以采用一些稳定,精确度比较高的电子元件去完善,但是在最后调试出的还是有误差但我尽可能的减少差误差接近理想。5课程设计体会及课程教学建议5.1课程设计体会这次课程设计采用的是硬件和软件相结合的方法,主要考察了我们制作电路板和编写程序的能力。对于制作电路板和编程都需要我们把理论知识和实际情况联系起来,这样既能加深我们对理论知识的理解程度,又能提高我们的动手能力,同时在遇到问题时加强我们对问题的解决能力。在这次课程设计中我遇到了不少问题。一是制作电路板的部分,在封装元器件时由于对元器件型号的不熟悉,在选择电容式直插式还是嵌入式时出了差错,导致在PCB板上焊接元器件时得另外加导线进行连接。在PCB印制过程中,布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小也要设置的比较大,这样在腐蚀环节和焊接环节比较容易成功,不易出现短线的现象和焊盘剥离的现象。双面布线时芯片和针脚多的元件需将焊接点置于底层,这样才能比较方便的焊接;若在顶层布线多,则过孔多,焊接时的难度也大大增加。由于以前做过焊接的电工实习,接下来的焊接工作就相对简单。二是编程部分,也是总个课程设计中最关键的地方。编程中的每段函数主要是参考书本上的知识和相关的资料,然而怎么把每部分程序很好的衔接起来是主要的问题,编程的大部分时间都是花在解决程序设计中的这问题上面。而衔接各个子程序需要对系统的结构很熟悉,因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。总得来说,通过这次课程设计我发现了自身存在的很多不足之处,虽然很多知识感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,后来都是经过一番努力才得以解决。正是因为在设计制作的过程中遇到的问题,使我能更好的理解理论知识,分析和解决问题的能力也得到了进一步的提高,从中培养了独立思考解决问题和出现差错随机应变的能力,锻炼了逻辑思维能力了。5.2 课程教学建议 目前单片机的教材基本上都是以单片机的结构为主线,展开的顺序依次为单片机的硬件结构到指令,然后是简单的软件编程,最后是单片机系统的扩展以及一些外围器件的应用。这些内容都是比较抽象生涩的,很难理解;而一些芯片的管脚以及一些位控的标记符也难以记忆,所以会让人一种枯燥、难以学好的印象。系统的理论难于理解,我们可以化整为零,把那些理论拆开来,糅合到每一个小任务中。这里我们可以多开创些小实验,通过自主的完成实验的内容来体会、思考所需的知识点,这样可以使知识点记的更牢固,也更能熟练的掌握单片机的软硬件资源的运用,真正意义上的做到学以致用,融会贯通。其次,单纯的在黑板上写教过于抽象,可以建议上多媒体课。通过观看具体的图像、实物感觉上会更清晰、明了,印象也更加深刻。在感官上有以实感,可以激发对单片机的兴趣。另外,在上课时可以使用扩音器,即使是教室大且人多的情况下大部分学生也都可以清晰的听到。同时在黑板上板书的字体可以稍大些,让四周的人可以很容易的看仔细。参考文献1 李朝青.单片机原理及接口技术M.北京:北京航空航天大学出版社,1988. 2 李勋等.单片机实用教程M.北京:北京航空航天大学出版社,2000.3 王幸之等.单片机应用系统抗干扰技术M. 北京:北京航空航天大学出版社,1999.4 何为民.低功耗单片微型计算机系统设计M. 北京:北京航空航天大学出版社,1994.5 李杏春等.8090单片机原理及实用接口技术M. 北京:北京航空航天大学出版社,1996.6 李华.MCS-51单片机原理及实用接口技术M.北京:北京航空航天大学出版社,1993.7 何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,1997.8 张友德.飞利浦80C51系列单片机原理与应用技术手册M.北京:北京航空航天大学出版社,1996.附录A 原理图附录 元器件清单元器件名称型号数量单片机AT89S521片芯片座40脚1个四位一体数码管共阳极2个晶振12M1个瓷片电容33pf2蜂鸣器5V1个电阻4.7K1个电阻1K3个电阻47024个电阻2001个电容22uf1个三极管S85509个排阻10K2个LED指示灯红9个单排插针8脚4排下载口10针1个六脚开关6脚1个附录E 程序清单MSECLEQU30HMSECHEQU31HSECLEQU32HSECHEQU33HMINUTELEQU34HMINUTEHEQU35HS2FLAGBIT2FH.0 ;位操作区20H至2FH,使用中间的2FH的0位;S3FLAGBIT2FH.1S4FLAGBIT2FH.2S5FLAG BIT 2FH.3 ORG0000HSTART: LJMP MAIN ORG000BH LJMP TC0;监控程序;ORG0030H MAIN:MOVSP,#7FH;堆栈初始化MOVPSW,#00H;当前通用寄存器组初始化MOVR0,#20H;MOVR2,#96;循环次数,用户RAM单元个数CL:MOVR0,#00H;清零INCR0;DJNZR2,CL;用户RAM,20H-7FH进行清零SETBEASETBET0MOVTMOD,#01HMOVTH0,#0D8HMOVTL0,#0F0H;定时器初始化 定时10msMOVMINUTEH,#00HMOVMINUTEL,#00HMOVSECH,#00HMOVSECL,#00HMOVMSECH,#00HMOVMSECL,#00H TCC:MOVDPTR,#DISBH;系统初始化后P.字符代码首地址MOVR0,#78H;显示子程序入口首地址MOVR5,#8H;8位数码管,故需要循环8次CLRADISPTSF:PUSHACC;保护AMOVCA,A+DPTR;MOVR0,A;将P.字符代码送入显示缓冲区POPACC;恢复AINCA INCR0;为送下一个字符代码序号做准备DJNZR5,DISPTSF XIAN:LCALLDISP;调用显示子程序LCALLKEYKEY0:JB20H.0,S2FUNCTIONJB20H.1,S3FUNCTIONJB20H.2,S4FUNCTIONJB 20H.3, S5FUNCTIONLJMPXIAN/ /;按键程序S2FUNCTION:JNBEA,EX;只有清零后才可开始JBS3FLAG,EX;暂停时开始键无效CPLS2FLAG;1代表开始JBS2FLAG,STARTTIMECLRTR0CLREA;第一次按键是开启TR0 第二次按键后将TR0 清零 并且将EA也清零,这样使改建只有启停功能,而无暂停功能LJMPUPSTARTTIME: SETBTR0 ;开始计时UP: LCALLUPDATE LCALLDISPEX:LJMPXIAN/暂停/条件:表在运行中 /S2FLAG为1/S3FUNCTION:JNBS2FLAG,EX11;S2FLAG为1时代表计时已经开始 可以执行暂停功能CPLS3FLAG;0表继续 1代暂停JNBS3FLAG,CONTINUECLRET0LJMPUP1CONTINUE:SETBET0UP1:LCALLUPDATELCALLDISPEX11:LJMPXIAN /清零/条件实在停止后/S4FUNCTION:JNBEA,S4 ;清零的是在按下停止键后进行的, 注意在EA为1退出时不要更新显示缓冲单元否则, 在系统功提示符状态下按下清零键也会有效 LJMPEXITS4S4:CPLS4FLAGMOVMSECH,#00HMOVMSECL,#00HMOVSECH,#00HMOVSECL,#00HMOVMINUTEH,#00HMOVMINUTEL,#00HSETBEALCALLUPDATEEXITS4:LCALLDISPLJMPXIANS5FUNCTION: MOVDPTR,#DISBH1;系统初始化后学号字符代码首地址 MOVR0,#78H;显示子程序入口首地址 MOVR5,#8H;8位数码管,故需要循环8次 CLRADISPTSF1: PUSHACC;保护A MOVCA,A+DPTR; MOVR0,A;将P.字符代码送入显示缓冲区 POPACC;恢复A INCA INCR0;为送下一个字符代码序号做准备 DJNZR5,DISPTSF1 LCALLDISP LJMPXIAN;*;中断服务程序;TC0:PUSHACCPUSH PSWSETBRS1SETBRS0;中断程序用第3组通用寄存器MOVTH0,#0D8HMOVTL0,#0F0H /判断毫秒显示是否为99/将两个非压缩BCD码合并为压缩BCD码若为9则合字后为10011001,在与01100110异或后就为 MOVA,#00HMOVA,MSECHSWAPAORLA,MSECLXRLA,#01100110B;相异为1CJNEA,#0FFH,PLUS1;毫秒加一LJMPCLEARMSEC;相等毫秒清零 之后秒加一 /毫秒加一/PLUS1:MOVR0,#31HLCALLDADD1LJMPEXITTC0CLEARMSEC: MOVMSECL,#00H MOVMSECH,#00H;毫秒清零 /秒加1/ MOVR0,#SECH LCALL DADD1 CPLP3.0 CPLP3.1 CPLP3.2 CPLP3.3 CPLP3.4 CPLP3.5 CPLP3.6 CPLP3.7 MOVA,SECH CJNEA,#06H,EXITTC0;判断秒是否了60,只需判断秒的十位是否为6即可LJMPCLEARSECCLEARSEC: MOVSECH,#00HMOVSECH,#00H ;秒清零后 应该有进位 /分加1/MOVR0,#MINUTEHLCALLDADD1 ;判断分是否了60,只需判断分的十位是否为6即可MOVA,MINUTEHCJNEA,#06H,EXITTC0MOVMINUTEH,#00HMOVMINUTEL,#00HEXITTC0:LCALLUPDATEPOPPSWPOP ACCRETI;*;常数表格区;系统初始化后1-8字符代码表DISBH: DB 10H,10H,10H,10H,10H,10H,10H,11H ;提示符P.字符序号;DISBH1: DB 04H,00H,03H,00H,09H,00H,12H,0DH ;提示符 学号字符序号;;显示字符段选码表(共阳极代码)TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH ,10111111B ;9,A,B,C,D,E,F,灭,p. ,-;*;子程序区;键扫描程序区 按键按下并松开后在进入按键程序 出口地址20HKEY:LCALLQUHAOMOVA,20HCJNEA,#00H,QUEREN1;CJNE不等就跳转,相等顺序执行LJMPFANQUEREN1: LCALLDISP LCALLDISP/延时去抖 LCALLQUHAO MOVA,20H CJNE A,#00H,SONG

温馨提示

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

评论

0/150

提交评论