数字钟程序设计基于单片机.doc_第1页
数字钟程序设计基于单片机.doc_第2页
数字钟程序设计基于单片机.doc_第3页
数字钟程序设计基于单片机.doc_第4页
数字钟程序设计基于单片机.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

数字钟设计(论文)单片机课程设计报告课题名称: 基于单片机技术数字钟电路的设计 系 部: 班 级: 姓 名: 学 号: 指导教师: 年 月 日论文/设计/报告原创性声明本人郑重声明:所呈交的论文/设计/报告是本人在导师的指导下进行研究所取得的研究成果。除了论文/设计/报告中特别加以标注引用的内容外,本论文/设计/报告不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日 论文/设计/报告版权使用授权书本论文/设计/报告作者完全了解学校有关保障、使用学位论文/设计/报告的规定,同意学校保留并向有关论文/设计/报告管理部门或机构送交论文/设计/报告的复印件和电子版,允许论文/设计/报告被查阅和借阅。本人授权省级优秀论文/设计/报告评选机构将本论文/设计/报告的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文/设计/报告。本论文/设计/报告属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)作者本人签名: 年 月 日 指导教师签名: 年 月 日 目录一、前言5二、设计方案的选择与论证7(1)设计方案的选择7(2)单片机型号的选择7三、结构与功能介绍8四、系统原理设计10五、硬件设计11(1)总体介绍11(2)数字钟电路清单明细表如下:11(3)控制部分14(4)数码管显示部分15(5)原理图17(6)PCB图18(7)实物图以及调试19六、软件设计20(1)总的设计思想20(2)中断程序设计概述22(3)设计程序的流程图22(4)系统框图25(5)软件消抖26七、程序的下载27八、程序代码29九、课程设计心得体会36致谢37一、前言近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本文介绍了基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。系统采用单片机AT89C52控制,以AT89C52为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用ATMEL公司的AT89C52芯片,其功能强大,兼容性好,还支持软件选择的空间和掉电两种节电方式。本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。 本次设计通过对一个实现时钟显示功能的时间系统的设计,其中结合了数据转换显示、数码管显示、单片机中断等技术。系统由AT89C52、LED数码管、按键、二极管、三极管、SN74LS224N、晶振管、电阻等组成。能实现时钟时、分、秒的显示,也具有时间设置。关键字:单片机,数字钟,数据缓冲PrefaceIn recent years,with computers in the in filtration and the development of large-scale integrated circuits. SCM application is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances, and other areas, is often microcontroller as a core component to use, In light of specific hardware architecture, and application-specific software features object combine to make perfect. This article introduced revivification of digital clocks, discussed it since the implementation of the process of software, the emphasis on the adjustment of query and disrupted :, then, is digital clocks stability and precision for the relevant discussions. System uses AT89C52 monolithic integrated circuits to control to AT89C52 at the core, it through the systematic processing and coordination functions, the design of our company used atmel AT89C52 chip, the powerful functions, compatibility and supporting software choice of space and the two electricity way. the design of software, hardware use modular design, improving the efficiency. The design of a function of the clock shows the time of the system design, a combination of converting data to display, digital control display, monolithic integrated circuits disruptions. the system, led by AT89C52 the tube, buttons, and, triode, SN74LS224N, crystal mind and its resistance. to achieve such form as the clock, and second, it is time to set. Keyword : monolithic integrated circuits, digital clocks, and data buffers.二、设计方案的选择与论证(1)设计方案的选择:该课题主要有两种方案:一种是用数字电路通过硬件实现,另一种是用单片机通过软件编程实现。在以上两种方案中:第一种是直接采用的是数字电路,但是在外围电路和控制比较麻烦,需要比较多的器件来控制;第二种是采用软件来实现一些特定功能,硬件电路只需要一些显示部件和控制部件,其他的都是由软件来实现。第一种一切都由硬件实现,几乎没有软件编程,但电路复杂、芯片多、后续制板及硬件调试麻烦而且成本高;第二种虽电路简单、芯片少、成本低,但编写程序相当复杂。经过一番利弊的权衡及对今后电子业发展趋势的考量,最后敲定用单片机方案实现。另外用单片机实现本设计也有两种可选的子方案:第一种,用软件编程实现设计中的钟控功能;另一种则选用单片机加时钟芯片实现钟控功能。在本次主要的是时间的设计,因此对时间的精度要求是比较高的,竟量是误差减少到最小值,但是为了更好的练习复习自己在以前所学习的编程能力,所以不采用单片机加时钟芯片的方案,直接用软件编程实现钟控功能。(2)单片机型号的选择:单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。经过我们精心的挑选,最终挑选了AT89C52。总的来看,单片机已成为工控领域、尖端武器、日常生活中最广泛使用的计算机,且将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格方向发展,因此敲定用单片机加软编程方案符合今后电子业发展趋势;另外运用此方案既能将自己以前学过的模拟电路、数字电路、单片机、汇编语言、Protel99等知识结合实践进行一次全面的检测,又能为将来实际制作电路积累宝贵的经验。三、结构与功能介绍此电子钟是以AT89C52单片机(见图1 原理图&实物图)为核心来控制整个电子钟的运行,以74LS244N芯片(见图2 原理图&实物图)为程序缓冲区, 六位七段数码管(见图3 原理图&实物图)来显示时间(其中两位显示时,两位显示分,两位显示秒),采用的晶振频率约为12MHZ;再配合其外部元件共同完成该电子钟的功能。电子钟仅有两个控制开关分别为:1.复位开关S1(按下此开关六位七段数码管将立刻显示初始值12:59:50);2.调节开关S2(长按“S2”键(约3秒)松开,第一第二位数码管闪烁,此时轻按“S2”键,可设置“时” (0-23),再长按“S2”键(约3秒)松开,第三第四位数码管闪烁,此时轻按“S2”键,可设置“分” (0-59), 再长按“S2”键(约3秒)松开,第五第六位数码管闪烁,此时轻按“S2”键,可设置“秒” (0-59),如此循环。设置完成后再长按“S2”键(约3秒)松开即进入正常运行状态。)图 1(引脚图)图 1(实物图)图2 (引脚图)图 2(实物图)图3(引脚图)图 3(实物图) 四、系统原理设计设计思想单片机控制系统是整个控制系统的核心,它完成整个系统的信息处理及协调功能。本次我们选用ATMEL公司的AT89C52芯片;其功能强大,兼容性好。AT89C52是与8051兼容的CHMOS微控制器。与CHMOS工艺的8051一样,支持软件选择的空闲和掉电两种节电方式。 在AT89C52的P2.0P2.3是数码管的段选;P2.4P2.6是数码管的位选。P0.0P0.7是按键的判断输入口,是对时间调整设置,和其他功能的区分。其原理框图见下图4 段码 AT89C52六位数码管显示电路按键k1,k2speaker消抖电路驱动位选图4 数字钟硬件框图五、硬件设计定时模块,显示模块,数据调整模块,状态调整模块。 (1)总体介绍:此部分主要介绍定时模块,和显示模块。定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲区40h-45h,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只须改变R0(指向数据缓冲区的指针)指向的十进制数据缓冲区即可。(2)数字钟电路清单明细表如下:数字钟元器件明细表序号品名封装型号规格数量器件号功能焊接注意1碳膜电阻AXIAL0.41006R1,R4,R7,R10,R14,R17三极管集电极负载电阻注意焊接时要对号入座,看清阻值与电路板上的器件号2碳膜电阻AXIAL0.42001R13分压3碳膜电阻AXIAL0.41k1R20分压4碳膜电阻AXIAL0.42k6R2,R5,R8,R11,R15,R18限流偏置电阻5碳膜电阻AXIAL0.45.1k6R3,R6,R9,R12,R16,R19三极管基极偏置电阻6排阻SIP910K1RN1上拉电阻 限流注意方向7电解电容RB.2/.4100uF/25V2C6,C8电容复位注意正负极8电容RAD0.130pF2C9,C11产生自激振荡9电容RAD0.1100nF2C7,C10滤波隔直通交10二极管DIODE0.41N4733A1D1稳压注意正负极11二极管DIODE0.41N41481D2整流注意正负极12三极管TO-92BS85506Q1,Q2,Q3,Q4,Q5,Q6驱动选位注意方向13集成电路DIP20SN74LS224N1U4缓冲存储器注意方向14集成电路DIP40AT89C521U5数字钟控制程序注意方向15接插件DIP16MAX202CPE1U2对元器件的支撑16接插件DB9RA/FDBQ1JP1无不需焊接17数码管DIP10LG5621DH1U3动态显示18数码管DIP12LG5641BN1U1动态显示19插座SIP3CON31JP3接+5V电源注意方向20电源端口SIP3CON31JP2接+5V电源21晶振管XTAL111.0592MHZ1X1产生振荡频率信号22开关ANSW-PB2S1,S2时间调整(S1复位,S2调时间)23底座4对元器件的支撑注意方向24印制电路板N0.1数字钟1电路板25排线1连接电源(3)控制部分AT89C52单片机AT89C52单片机概述:AT89C52单片机是国Atmel公司生产的采用高性能的静态89C2051设计,是一个低电压,高性能CHMOS 8位单片机,片内含4kbytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。 AT89C52是一个功能强大的单片机,但它只有40个引脚,32个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。此外,由于器件采用了动态设计,可提供很宽的操作频率范围(频率0HZ-12MHZ)。在本设计中AT89C52的时钟电路采用内部时钟方式,此方式是在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器。在本设计中XTAL1和XTAL2两端跨接12MHz晶体振荡器,其发出的脉冲直接送入内部时钟电路。本设计采用按键手动复位的按键电平复位(见图5、图6)。图5 时钟输入图6 复位电路AT89C52在本设计中的I/O口应用:AT89C52的P0.0-P0.7控制74LS244实现数码管段选;AT89C52的P2.0-P2.5控制六个三极管实现数码管位选。 (4)数码管显示部分本设计中所涉及数码管分别采用共阳与共阴数码管,显示电路为动态扫描式显示。(如图7、图8所示)图7共阴极数码管及显示电路选择图8共阳极数码管及显示电路选择数码管显示位选:AT89C52的P2.0-P2.5输出控制数码管位选,在本次设计的电路中,因为是使用的是共阳数码管,因此由AT89C52的P2.0-P2.5的输出控制六个三极管,使之输出相应的端口为低电平,控制数码管点亮。图9数码管位选原理数码管段选AT89C52的P0.0-P0.7控制74LS244实现数码管段选,在本次设计的电路中,由于数码管使用的是共阳数码管,在输出的是要低电平。在设计的时候,怕在芯片输出的电流信号过大,因此在输出的时候加了限流电阻,为保护数码管,防止烧坏。 图10数码管段选原理(5)原理图原理图见图11图11原理图(6) PCB图图12(7)实物图以及调试根据元器件和PCB板焊接实物实物图见图131实物图图13 实物图2调试按S1复位,数码管上的数字为12:59:50;长按S2,再松开。对时钟部分进行调整;调整完时钟之后,再长按S2,对分钟部分进行调整;调整完分钟之后,再长按S2,对秒钟部分进行调整。19 毕业设计(论文)六、软件设计(1)总的设计思想 在本次主要是使用的是数字闹钟,因此主要部分是数字钟的实现,因此要实现这样的功能必须要在硬件的电路上实现数字钟的实现,然后在此基础上逐步实现其他的功能,数字电子钟的程序大概可以分为三个部分:时钟主程序、时钟显示程序、时钟中断程序。时钟主程就是对时钟的各个模块的实现。时钟显示程序是将秒显示用发光二极管显示,每一秒点亮一次;将分个位、分十位、时个位、时十位数据存储单元的计时数据通过设置段选和位选、由74LS244N段选译码,最后显示在相应的数码管上。 总体介绍:此部分主要介绍定时模块,和显示模块。定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲区40h-45h,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只须改变R0(指向数据缓冲区的指针)指向的十进制数据缓冲区即可。 数据调整:数据调整有多种方式。一、可以直接进入相关状态进行有关操作,二、将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。方式一、比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。如果用比较少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度(显示部分可以采用8279芯片来控制,可以解决此问题)。 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。如果采用二的方式,就不会出现这种情况。因为状态的调整,与状态的操作可以分别由两个键控制,其状态的调整数可以多达256个(理论上),操作的完成是这样的,一键控制状态的调整,一键控制数据的调整(具体操作如图2)。以上两种方式的实现都可以采用查询和中断的方式。两种方式必须注意的问题是两者进行相关操作的过程不能太长否则会影响显示的扫描。利用查询的方式,方法传统,对此就不作过多的讨论,以下是采用中断的方式实现的数字钟的一些讨论和有关问题作的一些处理。基于以上的讨论可以设计如下:将调整分为状态调整和数据调整两部分,每次进入中断只执行一次操作,然后返回,这样,就不必让中断处于调整等待状态,这样,可以使中断的耗时很小。将定时器中断的优先级设置为最高级,那么中断的方式和查询的方式一样不会影响到时钟的记数。基于以上的讨论,数据修改的具体操作如下。状态2状态3状态4状态5状态6R1-HOURR1-FSR1-SSR1-NULL状态1R1-MBF 图 14在状态进入后,调整指针的指向如右图所示:在右图中R1表示指向数据缓冲区的指针,它主要是为数据的调整而设立的,在图中:MBF 、HOUR、FS、SS,分别表示时钟的分、时,定时设置分、时,的数据缓冲区。状态5是秒表进入状态,状态6是时钟正钟显示状态。 在程序中R1为专用指针,它的值只在状态调整时改变,每次运行图示模块,只改变一次状态,就跳出程序。调整数据只须改变R1中的数据即可。注:本系统的软件系统主要可分为主程序和定时器中断程序两大模块。(2)中断程序设计概述中断程序完成时间计数,时间调整,误差消除等功能。中断采用AT89C52内部T0中断实现,定时时间为125ms,当时间到达125ms8,即1分钟时,分计数缓冲器MINBUFFER增加1,到达1小时,则时计数缓冲器HOURBUFFER增加1,并将分、时的个位、十位放入显示缓冲器。当分计数缓冲器和时计数缓冲器分别到达60min、24h时,则对它们清零,以便从新计数。在中断设计中,还通过软件实现了累计误差消除功能,使整个系统时间的精确度得到保证。(3)设计程序的流程图在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。但其设计就是基于以上介绍的显示指针,和状态指针的思想。在程序中用R0,R1充当此指针。程序设计的基本流程图如下: 开始各缓冲区初始化对定时器,中断设置开始计数显示缓冲单元首址送R0,扫描初值送R2取显示单元值,转为段显码送段数据口 扫描值送位数据口P1 延时一小段时间 显示单元地址加一扫描值右移一位 显示状态是否切换查询让调整位的DP点亮时钟数据显示区 秒表数据单元分调整?在显示的低位断码上加80H,即点亮DP。YN查询下一个调整位点亮DP的处理程序取断码送到显示缓冲区单元6位显示完?YN三个要显示的状态图 15报时模块标志位为1?秒表计数单元分值清零时值加一时值等于24?时值清零Y时值比较BS=1?Y标志位为1?中断入口定时模块定时器置初值时间计数单元加一计数值等于10?计数值单元清零秒值加一秒值等于60?秒值清零分值加一分值等于60?YYYNY分,时设定值等于时钟值?标志位 BS置1,输出报时脉冲Y分值比较定时器置初值结束以定时器定时频率为报时频率输出,做法是:在每个定时中断时,取反一个输出引脚图 1624 毕业设计(论文)(4)系统框图制式切换控 制按钮时间控 制触摸开 关单片机译码电 路驱动电 路时显示分显示秒显示 图17(5)软件消抖: 消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一、定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二、在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间间隔。以下是三种消抖方法的程序流程图:子程序延时延时键按下键按下处理程序结束YNN采用定时器延时中断入口定时器中断关延时N开定时器中断执行操作键按下,开定时器中断查询方式消抖图 18七、程序的下载 要使8051单片机能正常工作还需要将编写好的程序下载到单片机内,具体步骤如下:将USB串口线的驱动安装请看“关于USB转串口线和编程器连接的问题.pdf”文件。会显示USB-SERIAL CH340(COM7),记住COM?的端口号,要在STC-ISP软件中进行设置。将USB转串口线与编程器连接好,将单片机放入编程器ZIP1锁紧座上(芯片缺口朝上),打开STC-ISP软件(STC_ISP_V480.exe),选择STC单片机型号,打开要下载的程序文件,设置COM号,点击下载按钮,当出现给MCU上电提示时,插上USB取电线,进行正常下载。八、程序代码DATA_SEGSEGMENTDATA;定义一个DATA段STACKSEGMENTIDATA;定义一个堆栈段BIT_SEGSEGMENTBIT;定义一个位段bKeyBITP1.0;IdleConstEQU50RSEG STACKDS10H ;16个字节的堆栈RSEGDATA_SEG;开始DATA_SEG段buffer:DS6;6个字节的显示缓冲区ms50:DS1;50ms计数ms250:DS1;250ms计数sec:DS1 ;秒min:DS1 ;分hour:DS1;时ms50_1:DS1;存放多少个50ms,用于记录按键时间SetPos:DS1;设置位置SetPos1:DS1;需要屏蔽的数码管RSEGBIT_SEGbIdle:DBIT1;省电模式bTwinkle:DBIT1;当前设置位置闪烁CSEGAT0;相当于小汇编的ORGLJMPMAINCSEGAT000BH;定时器T0中断处理入口地址LJMPINT_Timer0CSEGAT001BH;定时器T1中断处理入口地址LJMPINT_Timer1CSEGAT0100HMAIN:MOVSP,#STACK-1;堆栈CLRbIdleCLRbTwinkleMOVms50,A;清零ms50MOVms250,AMOVhour,#12;设定初值: 12:59:50MOVmin,#59MOVsec,#50MOVTH0,#60;定时中断计数器初值MOVTL0,#176;定时250nsMOVTMOD,#11H;定时器0,1:方式一MOVIE,#8AH;中断初始化,EA=1,ET0=1, ET1 = 1SETBTR0;开定时器T0MOVSetPos,#0FFH;MAIN1:ACALLAdjustBuffer;调整显示缓冲区MAIN2:ACALLKey;调用键扫描ACALLDisplayJNBF0,MAIN2CLRF0SJMPMAIN1;需要刷新显示时间;中断服务程序INT_Timer0:MOVTL0,#176+5MOVTH0,#60PUSH01HMOVR1,#ms50INCR1;50ms单元加1CJNER1,#5,ExitIntMOVR1,#0;恢复初值INCR1MOVA,SetPosCJNEA,#0FFH,INT_Timer0_1SJMPINT_Timer0_2INT_Timer0_1:CPLbTwinkleSJMPExitInt1INT_Timer0_2:INCR1CJNER1,#4,ExitIntMOVR1,#0;恢复初值INCR1INCR1;秒加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;分加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;时加1CJNER1,#24,ExitInt1MOVR1,#0ExitInt1:SETBF0ExitInt:POP01HRETI;中断服务程序INT_Timer1:MOVTL0,#176+5MOVTH0,#60INCms50_1RETIHexToBCD:MOVB,#10DIVABMOVR0,BINCR0MOVR0,AINCR0RETAdjustBuffer:MOVR0,#bufferMOVA,secACALLHexToBCDMOVA,minACALLHexToBCDMOVA,hourACALLHexToBCDRET;显示Display:JNBbIdle,Display3RET;省电模式Display3:PUSHBPUSHACCPUSHDPLPUSHDPHPUSH00HMOVR0,#bufferMOVB,#0FEHMOVDPTR,#SEG_TABDisplay1:MOVA,R0MOVCA,A+DPTR;取段码MOVP0,AMOVA,BJNBbTwinkle,Display4ORLA,SetPos1 Display4:MOVP2,A;选种数码管CALLDelay1msMOVA,BRLAJNBACC.6,Display2MOVB,AINCR0SJMPDisplay1Display2:POP00HPOPDPHPOPDPLPOPACCPOPBRETSEG_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;段码DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH DB0FFH,0BFH;延时1msDelay1ms:PUSHACCMOVA,#230DJNZACC,$MOVA,#230DJNZACC,$POPACCRET;设置功能SetFunTab:AJMPNoSet;不需要调整AJMPSetHour;调整小时AJMPSetMin;调整分钟AJMPSetSec;调整秒钟NoSet:CLRbTwinkleRET;不在设置状态SetHour:INChourMOVA,hourCJNEA,#24,SetHour1MOVhour,#0SetHour1:SJMPSetFun1SetMin:INCminMOVA,minCJNEA,#60,SetMin1MOVmin,#0SetMin1:SJMPSetFun1SetSec:INCsecMOVA,secCJNEA,#60,SetFun1MOVsec,#0SetFun1:SETBF0RET;调整闪烁位置SetPosTab:AJMPNoSetPosAJMPSetHourPosAJMPSetMinPosAJMPSetSecPosNoSetPos:MOVSetPos1,#0RETSetHourPos:MOVSetPos1,#30HRETSetMinPos:MOVSetPos1,#0CHRETSetSecPos:MOVSetPos1,#03HRETKey:ACALLDisplayJNBbKey,Key4JNBTR1,Key3CLRTR1SETBbKeyMOVA,ms50_1CJNEA,#10,$+3JNCKey1;调整时间SetFun:MOVA,SetPosINCARLAMOVDPTR,#SetFunTabJMPA+DPTRKey1:CJNEA,#IdleConst,$+3JNCKey2;进入设置状态SetPosFun:INCSetPosMOVA,SetPosCJNEA,#3,SetPosFun1MOVSetPos,#0FFH;退出设置状态SetPosFun1:MOVA,SetPosINCARLAMOVDPTR,#SetPosTabJMPA+DPTRKey2:SETBbIdle;进入省电模式MOVP2,#0FFHKey3:RETKey4:JNBTR1,Key5MOVA,ms50_1CJNEA,#IdleConst,$+3JNCKey2RETKey5:ACALLDisplayACALLDisplayACALLDisplayACALLDisplayJNBbKey,Key6SJMPKey3Key6:CLRbIdleMOVTH1,#60MOVTL1,#176SETBTR1MOVms50_1,#0RETEND九、课程设计心得体会俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,选一个自己有兴趣的题目。其次,对老

温馨提示

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

评论

0/150

提交评论