毕业设计(论文)基于单片机的数字钟设计1.doc

上传人:土8路 文档编号:10038544 上传时间:2021-04-13 格式:DOC 页数:38 大小:240KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的数字钟设计1.doc_第1页
第1页 / 共38页
毕业设计(论文)基于单片机的数字钟设计1.doc_第2页
第2页 / 共38页
毕业设计(论文)基于单片机的数字钟设计1.doc_第3页
第3页 / 共38页
毕业设计(论文)基于单片机的数字钟设计1.doc_第4页
第4页 / 共38页
毕业设计(论文)基于单片机的数字钟设计1.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的数字钟设计1.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的数字钟设计1.doc(38页珍藏版)》请在三一文库上搜索。

1、基于单片机的数字钟设计摘要在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。其中钟表的数字化给人们生产生活带来了极大的方便,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因

2、此,研究数字钟及扩大其应用,有着非常现实的意义。关键词数字钟、单片机、动态显示、调时、调分、蜂鸣器目录第一章 概述41.1 设计目的41.2 设计任务及要求4设计要求及基本功能41.3 任务分析51.4 方案选择与论证61.4.1 单片机芯片的选择方案和论证61.4.2 时钟芯片的选择方案和论证71.4.3 电路设计最终方案决定7第二章 硬件电路设计82.1系统硬件概述82.2单片机主控制模块的设计82.3控制器的选择82.4 数码管的选择92.4.1产品分类92.4.2显示方式112.5.石英晶体振荡器112.6.蜂鸣器的介绍122.6.1蜂鸣器的作用122.6.2蜂鸣器的分类122.7 复

3、位电路132.8元件清单142.9 原理图14第三章 软件设计153.1中断方式应注意的问题:153.2 定时准确性的讨论:153.3软件消抖:163.4原理框图17第四章 调试22心得体会22附录一 :电路原理图23附录二 :程序24参考文献36第一章 概述1.1 设计目的通过数字钟的制作,进一步熟悉LED数码管与单片机的接口方式以及定时/计数器、中断技术的综合运用,并学会键盘的使用.1.2 设计任务及要求本次毕业设计要求设计一个数字钟,基本要求为数字钟的时间周期为24小时,数字钟显示时、分、秒,数字钟的时间基准一秒对应现实生活中的时钟的一秒。键盘是单片机应用系统中最常用的输入设备,用它输入

4、数据或命令。显示器是单片机应用系统中最常见的输出设备,用它显示单片机输出的视觉信息。本课题制作的数字钟,利用按键实现数字钟的校时,定时等操作,利用蜂鸣器输出音频信息,利用LED数码管显示时间。设计要求及基本功能1.掌握数字钟的设计、组装与调试方法。2.熟悉单片机逻辑功能及使用方法。3.掌握面包板结构及其接线方法4.熟悉仿真软件的使用。5.设计要求及指标6.时钟显示功能,能够正确显示“时”、“分”、“秒”。7.具有快速校准时、分、秒的功能。8.具有整点报时的功能,具有闹钟的功能。 1.3 任务分析此部分主要介绍定时模块,和显示模块。定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的

5、主要部分,以及产生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其模块的的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲区,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别数据调整有多种方式。一,可以直接进入相关状态进行有关操作,二,将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。方式一,比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。如果用比较少的键,那

6、么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度。 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。如果采用二的方式,就不会出现这种情况。因为状态的调整,与状态的操作可以分别由两个键控制,其状态的调整数可以多达256个(理论上),操作的完成是这样的,一键控制状态的调整,一键控制数据的调整。以上两种方式的实现都可以采用查询和中断的方式。两种方式必须注意的问题是两者进行相关操作的过程不能太长否则会影响显示的扫描。利用查询的方式,方法传统,对此就不作过多的讨论,以下是采用中断的方式实现的数字钟的一些讨论和有关问题作的一些处理。基于以上的讨论可以设计如下

7、:将调整分为状态调整和数据调整两部分,每次进入中断只执行一次操作,然后返回,这样,就不必让中断处于调整等待状态,这样,可以使中断的耗时很小。将定时器中断的优先级设置为最高级,那么中断的方式和查询的方式一样不会影响到时钟的记数。1.4 方案选择与论证1.4.1 单片机芯片的选择方案和论证方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造

8、成一定的损坏。方案二:采用AT89S521,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S521作为主控制系统.1.4.2 时钟芯片的选择方案和论证方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不

9、采用此方案。方案二: 采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.1.4.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用AT89S521作为主控制系统; DS1302提供时钟;LED数码管动态扫描作为显示。第二章 硬件电路设计2.1系统硬件概述本电路是由AT89S521单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带

10、RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能。2.2单片机主控制模块的设计 AT89S521单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。18引脚

11、和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.2.3控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。2.4 数码管的选择2.4.1产品分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位

12、、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。LED显示方式有共阴极和共阳极两种。在本实验中采用共阳极数码管。以共阳极为

13、例, LED七段数码管的每一段接高电平时亮,不同的组合可以显示不同的数字,有一定的对应关系。具体的对应关系如下图2-1,表2-1:af b g e c d 图2-10Gfedcba10000001Gfedcba11110012Gfedcba01001003Gfedcba01100004Gfedcba00110015Gfedcba00100106Gfedcba00000107Gfedcba11110008Gfedcba00000009Gfedcba0010000表2-1 数码管段码2.4.2显示方式 (1)静态显示 在静态显示方式下,每一位显示器的字段控制线是独立的。当显示某一字时,该位的各字段

14、线和字位线的电平不变,也就是各字段的亮灭状态不变。静态显示方式下LED显示器的电路连接方法是:每位LED的字位控制线门共阴极点或共阳极点连在一起,接地或接 5V;由于显示的是整数,所以小数点那位可以不接,所以其字段控制线 (ag)分别接到一个7位口。(2)动态显示 利用人眼的视觉暂留效应,通过位选分时显示不同的数码管,这样可以看到正常的显示。调用延时子程序循环显示各路水压值, 使能清楚的看到八路水压的大小。2.5.石英晶体振荡器 石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。它被广泛应用于彩电、计算机、遥控器等各类振荡电路中。它还具有压电效应:在晶体某一方向加一电场,晶体就会产

15、生机械变形;反之,若在晶片的两侧施加机械压力,则在晶片相应的方向上将产生电场,这种物理现象称为压电效应。在这里,我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。2.6.蜂鸣器的介绍2.6.1蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2.6.2蜂鸣器的分类 蜂鸣器主要分为压电式蜂

16、鸣器和电磁式蜂鸣器两种类型。 (1) 压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 (2)电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振

17、动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。2.7 复位电路 无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。系统有时会出现一些不可预料的现象,如无规律可循的“死机”、“程序走飞”等。而用仿真器调试时却无此现象发生或极少发生此现象。图2-2复位电路2.8元件清单元件名称类型数量晶震12m17段数码管红6单片机AT89S52111排阻RESPACK81三极管S9013H3317电

18、阻4.7K6按键BUTTON4电阻1K4蜂鸣器Speaker1电阻2201电容33P4电容10u12.9 原理图见附录图4-1第三章 软件设计3.1中断方式应注意的问题: 采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问题:一,在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。二,在入栈保护有关数据后,对中断程序执行有影响的状态位,寄存器,必须恢复为复位状态的值。例如,在以下程序中,由于用到了十进制调整,所以在中断进入时,将PSW中的AC,CY位清零,否则,十进制调整出错。3.2 定时准确性的讨论: 程序中定时器,一直处于运行状态,也就是说定

19、时器是理想运作的,其中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差712个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为

20、最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。3.3软件消抖: 消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于2

21、0毫秒,如果采用定时器定时的方式,延时时间不影响时钟。3.4原理框图子程序延时延时键按下键按下处理程序结束YNN采用定时器延时中断入口定时器中断关延时N开定时器中断执行操作键按下,开定时器中断查询方式消抖 图3-1延时消抖程序框图流程图3-1为消抖程序,去除因为人为原因和硬件原因带来的抖动。采用延时检测按键的方法来避免应抖动对程序的干扰,采用定时器定时的方式,延时时间不影响时钟。中断入口关本中断执行操作出口置位标志位BZ查询标志位BZBZ为1?延时N时间开中断,清BZYN采用中断的方式,软件消抖设计图3-2中断程序框图流程图3-2为中断程序,程序段置于时钟中断程序中。利用此定时器的定时可以延时

22、设置为0.3秒,甚至更长,而不影响计数。使中断程序能定时执行。开始各缓冲区初始化对定时器,中断设置开始计数显示缓冲单元首址送R0,扫描初值送R2取显示单元值,转为段显码送段数据口 扫描值送位数据口P1 延时一小段时间 显示单元地址加一扫描值右移一位 显示状态是否切换查询让调整位的DP点亮时钟数据显示区 定时设置数据显示单元 秒表数据单元分调整?在显示的低位断码上加80H,即点亮DP。YN查询下一个调整位点亮DP的处理程序取断码送到显示缓冲区单元6位显示完?YN三个要显示的状态图3-3报时模块标志位为1?秒表计数单元分值清零时值加一时值等于24?时值清零Y时值比较BS=1?Y标志位为1?中断入口

23、定时模块定时器置初值时间计数单元加一计数值等于10?计数值单元清零秒值加一秒值等于60?秒值清零分值加一分值等于60?YYYNY分,时设定值等于时钟值?标志位 BS置1,输出报时脉冲Y分值比较定时器置初值结束以定时器定时频率为报时频率输出,做法是:在每个定时中断时,取反一个输出引脚图3-4第四章 调试 第一次按电子钟启动调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态,再次按启动调整键,电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动调整键再次进入时钟运行状态。 关于亮度一致性的问题是一个行业内的常见问题。有二个大的因素影响到亮度一致性。一是使用原材料芯片的选取,一

24、是使用数码管时采取的控制方式。1、原材料-芯片的VF和亮度和波长是一个正态分布,即使筛选过芯片,VF和亮度和波长已在一个很小的范围了,生产出来的产品还是在一个范围内,结果就是亮度不一致。2、要保证数码管亮度一样,在控制方式选取上也有差别。最好的办法是恒流控制,流过每一个发光二极管的电流都是相同的,这样发光二极管看起来亮度就是一样的了。如恒压控制,则导致VF不相同的发光二极管分到的电流不相同,所以亮度也不同。当然以上二个条件是相辅相成的。 3、测量数码管引脚分共阴和共阳找公共共阴和公共共阳:首先,我们找个电源(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上

25、,组合有很多,但总有一个LED会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。心得体会本次毕业设计是在指导老师方小坤的指导下完成的。我做的是基于单片机的数字钟设计!在论文的设计过程中,我查阅了许多有关数字钟系统设计方面的文献资料,使我对数字钟的设计和使用有了更深的认识。每方面的经历对我来说都是一个难能可贵的锻炼机会! 然而,实验并没有我预期的那么顺利,当我收集好材料,拟

26、定好设计步骤开始编写程序时,却总是出错,幸好有老师和同学的指导帮助,终于一步一步把程序编写完毕!通过几天的数字钟设计过程,将从书本上学到的知识应用于实践,学会了初步的电子电路仿真设计,虽然过程中遇到了一些困难,但是在解决这些问题的过程无疑也是对自己自身专业素质的一种提高。当最终调试成功的时候也是对自己的一种肯定。此次的设计作业不仅增强了自己在专业设计方面的信心,鼓舞了自己,更是一次兴趣的培养,为自己以后的学习方向的明确了重点。在现代这个社会,没有知识是不行的!但是学贵一致用!有了知识再应用到现实社会中,这才是我们21世纪的人应该努力的方向!数字钟是个很有意思的课程设计,它同实际联系比较紧密,所

27、以做起来会很有趣味。在课题设计的过程中,我通过实践发现了理论上还是有一些漏洞,这给我不少的压力,这让我下定决心利用业余时间努力加深文化知识。在使用protuse软件进行仿真的时候,遇到了很多问题,但当仔细检查时,总是能找到因粗心而遗忘的连线或是迭错的元件。好在我一次次的改正克服,终于完成了我们在大学里的最后一次学习任务。我们要毕业了,要毕业了,我们要开始真正的为我们的人生去努力拼搏,但是那种激情一定不会让我失望的!我喜欢这种感觉!附录一 :电路原理图图4-1附录二 :程序:NAME ZFPORT EQU 0CFA0HHOUR EQU 26H ;设置数据缓冲区BUF EQU 23H SBF EQ

28、U 22H MBF EQU 21H SAEQU 27HFAEQU 28HHH EQU 29HMB0EQU 2AHMB1EQU 2BHMB2EQU 2CH MM0 EQU 2DH CSEG AT 0000H LJMP START ;中断初始化CSEG AT 0003H LJMP KEY0 CSEG AT 0013H LJMP KEY1CSEG AT 401BH LJMP CLOCKCSEG AT 4100HSTART: MOV R0, #40H ;数据缓冲区初始化 MOV R6,#00H MOV A, #00H MOV R0, A INC R0 MOV R0, A INC R0 MOV R0,

29、A INC R0 MOV R0, A INC R0 MOV R0, A INC R0 MOV R0, A MOV SP, #30H MOV TMOD, #10H MOV TH1, #38H MOV TL1, #00H MOV BUF, #00H MOV SBF, #00H MOV MBF, #00H MOV HOUR,#00H MOV SA, #00H MOV FA, #00H MOV HH, #00H MOV MB0, #00H MOV MB1, #00H MOV MB2, #00H MOV MM0, #00H SETB ET1 SETB EX1 SETB PT1 SETB EA SETB

30、P3.5 CLR P3.0 MOV TCON, #45H MOV R5, #01HDS1: MOV R0, #40H ;扫描显示 MOV R2, #20H DS2: MOV DPTR, #PORT MOV A, R0 ACALL TABLE CJNE R5, #02 ,L3 SJMP L2L3: CJNE R5, #04H,L1 ;让调整位的DP点亮L2: CJNE R0, #42H,L0 ADD A,#80H SJMP L0L1: CJNE R5,#03H, L4 SJMP L5L4: CJNE R5, #05H,L0L5: CJNE R0, #44H,L0 ADD A,#80HL0: MO

31、VX DPTR, A MOV A, R2 CPL A MOV P1, A MOV R3, #07FH DEL: NOP DJNZ R3, DEL INC R0 CLR C MOV A, R2 RRC A MOV R2, A S2: CJNE R5,#06H,S3 ;切换到显示秒表计数 SETB EX0 SJMP MIAOBIAOS3: CJNE R5,#04H,S1 ;切换到定时设置状态的显示 SJMP DINGSHI S1: CJNE R5,#05H,S0 SJMP DINGSHI S0: JNZ DS2 MOV R0, #40H ;取缓冲区到显示缓冲区 MOV A, SBF ACALL G

32、ET MOV A, MBF ACALL GET MOV A, HOUR ACALL GET SJMP DS1MIAOBIAO:JNZ DS2 ;秒表显示 MOV R0, #40H MOV A, MB0 ACALL GET MOV A, MB1 ACALL GET MOV A, MB2 ACALL GET AJMP DS1 DINGSHI: JNZ DS2 ; 定时设置显示 MOV R0, #40H MOV A, HH ACALL GET MOV A, FA ACALL GET MOV A, SA ACALL GET AJMP DS1 TABLE: INC A ;查表取段码 MOVC A, A+

33、PC RET DB 3FH DB 06H DB 5BH DB 4FH DB 66H DB 6DH DB 7DH DB 07H DB 7FH DB 6FH DB 40HGET: ;将一个两位十进制数放入两个数码管对应的两个缓冲区 MOV R4, A ANL A, #0FH MOV R0, A INC R0 MOV A, R4 SWAP A ANL A, #0FH MOV R0, A INC R0 RET CLOCK: ;定时器中断服务程序 JNB P3.0,D4 ;产生定时输出脉冲 CPL P3.4 D4: MOV TL1, #0AFH MOV TH1, #3CH PUSH PSW PUSH A

34、CC JNB P3.5,C0 ;秒表计数模块 INC MB0 MOV A, MB0 CJNE A, #0AH,C0 MOV MB0, #00H MOV A, MB1 INC A DA A MOV MB1, A CJNE A, #60H, C0 MOV MB1, #00H MOV A, MB2 INC A DA A MOV MB2, A CJNE A, #60H, C0 MOV MB2, #00H C0: JNB 78H, Z1 ;时钟计数程序 INC R6 CJNE R6,#05H,Z1 MOV R6,#00H CLR 78H SETB EX0 Z1: JNB 79H, Z2 ;去抖延时程序

35、INC R6 CJNE R6,#0FH,Z2 MOV R6,#00H CLR 79H SETB EX1 Z2: INC BUF MOV A, BUF CJNE A, #0AH,QUIT MOV BUF, #00H MOV A, SBF INC A DA A MOV SBF, A CJNE A, #60H, QUIT MOV SBF, #00H MOV A, MBF CLR P3.0 ;定时脉冲输出一分钟 D2: INC A DA A MOV MBF, A MOV A, FA ;定时比较分值 CJNE A, MBF,D0 SJMP D1 D0: MOV A, MBF CJNE A, #60H,

36、QUIT MOV MBF, #00H MOV A, HOUR INC A DA A MOV HOUR ,A D1: MOV A,SA ;定时比较时值 CJNE A, HOUR,D3 SETB P3.0 D3: MOV A, HOUR CJNE A,#18H,QUIT MOV HOUR,#00HQUIT: POP ACC POP PSW RETI KEY0: CLR ET1 ;外部中断零服务程序 PUSH ACC PUSH PSW SETB ET1 CLR EX0 CLR CY ;清与十进制调整有关的状态位 CLR AC SETB 78H JB P3.5,K0 MOV MB0, #00H ; 秒表数据清

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1