数字电子时钟设计毕业设计_第1页
数字电子时钟设计毕业设计_第2页
数字电子时钟设计毕业设计_第3页
数字电子时钟设计毕业设计_第4页
数字电子时钟设计毕业设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、目录毕业设计任务书i摘 要ii一、概 述11.1数字电子时钟研究的背景和意义11.2数字电子时钟系统实用功能分析21.3文章结构分析2二、系统总体分析22.2显示屏模块的选择32.3数码管显示方案32.4驱动电路的选择42.5数字电子时钟工作原理42.6电路图5三、硬件设计63.1 at89c51芯片的简单论述63.1.1管脚说明83.2时钟电路设计93.2.1引脚定义103.3显示电路设计113.3.1lcd显示基本原理113.3.2引脚功能说明123.4复位电路设计123.5闹铃、背光电路设计13四、软件程序设计144.1程序流程图144.2主程序设计164.3子程序设计164.3.1实时

2、时钟日历子程序设计164.3.2显示子程序设计164.3.3键盘扫描子程序164.3.4闹铃子程序设计174.4系统程序设计174.5调试仿真27五、设计总结28致谢29参考文献30河南工业职业技术学院毕 业 设 计 课题名称 数字电子时钟设计 姓 名 学 号 班 级 专 业 机电一体化 所 在 系 机电工程系 指导教师 完成日期 2013/11/26 毕业设计任务书设计题目: 数字电子时钟设计设计要求: 本设计主要为实现一款可正常显示时钟/日历、定时闹铃、lcd背光调节,一键恢复的多功能电子时钟。采用at89c51芯片作为核心,lcd液晶显示器,完成时钟/日历的基本功能。设计任务:1设计硬件

3、电路,画出电路原理图;2. 设计软件,编制程序,画出程序流程图;3调试程序,写出源程序代码;4写出详细毕业设计说明书(10000字以上),要求字迹工整,原理叙述正确,会计算主要元器件的一些参数,并选择元器件。设计进度要求:第一周:查阅资料并确定论文题目第二周:针对自己定的题目写出初步的设计方案第三五周:根据自己的设计方案设计方案设计硬件和软件第六七周:修改、完善设计,仿真,调试电路,整理论文第八周:毕业答辩指导教师(签名): 摘 要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注, 应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠

4、性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以at89s51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5v直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。电子时钟主要是利用现代电子技术将时钟电子化、数字化,拥有时钟精确、体小、界面友好、可扩展能力强等优点,被广泛应用于生活和工作当中。另外,在生活和工农业生产中也常常需要定时报警,这

5、就需要电子时钟具有多功能性。本人对当前电子时钟 开发手段进行了比较和分析,最终决定了采用单片机技术实现多功能电子时钟。设计采用at89c51芯片作为核心,1602 lcd液晶显示器,使用ds1302实时时钟日历芯片完成时钟/日历的基本功能。这种实现方法的优点是电路简单,新能可靠,实时性好,时间精度高,操作简单编程容易。该电子时钟可应用于一般的生活和工作中,也可通过改装提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。【关键词】 电子时钟;at89c51单片机;ds1302 时钟日历芯片;lcd液晶显示器 一、概 述 1.1数字电子时钟研究的背景和意义时间是人类生活必不可少的重要元素,

6、入过没有时间的概念,社会将不会有所法杖和进步。从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现出了时间的重要性,同时也代表着科技的进步。致力于计时器的研究和充分发挥时钟的作用,竟有着重要的意义。20实际末,电子技术获得了飞速的发展。再起推动下现代电子产品几乎渗透到了社会的哥哥领域,有力的推动和提高的社会生产力的发展与信息化程度,同时也是现代电子产品性能进一步提升,产品的更新换代节奏谱也越来越快。时间对人们来说是那么的宝贵,工作的忙碌性和繁杂容易使人们忘记当前的时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己或者是他人造成很大的麻烦。平时我们要求上班准时,约会或者召

7、开会议必然要提及时间、火车要准点到达,航班要准时起飞,工业生产中,很多环节都需要时间来确定工序替换时刻。所以说能随时准确的指导时间并利用时间,是我们生活中必不可少的。想知道时间,手表当然是很好的选择,但是在忙碌当中,我们还需要一个“助理”时不时的给我们体形式将,所以,计时器最好能够用有一个定时系统,随时提醒容易忘记时间的人。最早能够定时、宝石的时钟属于机械式钟表,但这种时钟受到机械结构、动力合体技的限制,在功能性能以及在造价上都没有办法与电子时钟相比。电子时钟是采用电子电路实现对时、分、秒进行数字显示的即使装置,广泛应用月个人家庭、车站、码头办公室等公共场所,成为人们日常生活活动中不可少的必须

8、品。由于数字集成电路的发展和石英晶体振荡器的广泛使用,是的数字时钟的精度远远查过老师钟表,钟表的数字化跟人们生产生活带来了极大的方便,而且大大的扩展了钟表原先的时钟功能。诸如整点提示、定时报警、定时广播、自动启闭路灯,定时开关烘箱、同多动力设备、甚至各种定时电气的自动启动等,所有这些,都是以钟表数字化为基础的。因此研究数字钟及扩大其应用,有着非常现实的意义。1.2数字电子时钟系统实用功能分析电子时钟主要是利用电子技术讲时钟电子化、数字化,拥有时间精确、体积小、界面友好、可扩展性强等优点,被广泛应用于生活和工作当中。当今市场上的电子时钟品类繁多,外形小巧别致。也有体型较大的,诸如公共场所的大型电

9、子宝石器等。电子时钟首相是数字化了的时间显示或报时,在此基础上,人们可根据不同场合的要求,在诗中上加置其他功能,比如定时闹铃,万年历等功能。本设计电子时钟主要功能为:1. 具有显示和手动校对功能,24小时制,年、月、日显示和手动校正功能;2. 具有闹铃功能;3. 具有背光调节功能和一键恢复功能;1.3文章结构分析本设计在绪论里主要介绍数字时钟研究的背景和意义、系统实用功能的分析、本设计的章节结构安排及使用的技术。 把系统总体设计作为第二部分,在这部分里介绍了各种元器件以及芯片的选择;第三部分是硬件电路的设计;主要对at89c51芯片的具体介绍,时钟电路,复位电路,时间显示电路、按键电路、供电电

10、路、闹铃指示电路等几部分,这一部分是本设计的重点。第四部分是系统软件设计,主要是用汇编语言对图形汉字编程设计;第五部分是对全文的总结。第六部分是致谢,第七部分是参考文献。二、系统总体分析2.1数字时钟方案数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。方案一:本方案采用dallas公司的专用时钟芯片ds12887a。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部

11、锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。基于硬件电路的考虑,本

12、设计采用方案二完成数字时钟的功能。2.2显示屏模块方案 led显示屏幕 能实时显示高清晰度、色彩丰富的动态图像;显示与播放可与控制计算机显示器上的内容点点对应,led显示屏上的图像色彩、缩放比例和显示尺寸,还可通过计算机任意调整led电子显示屏是集微电子技术、计算机技术、信息处理于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点,但未处理器和led发光二极管之间还需要处理芯片。lcd显示屏幕是利用光的偏振现象来显示的,一般分为数字lcd和点阵lcd.前者用于显示简单的字符,后者能显示复杂的图像和自定义字符。具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及

13、影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点lcd显示屏本身不发光可以靠反射投射光源发光的优点。非常适合嵌入式系统,移动设备使用。应用非常广泛。基于设计需求选用lcd显示屏。2.3数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的i/o口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂

14、留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。基于本设计选取的是动态显示。2.4驱动电路的选择驱动电路的选择采取并口输入,占用大量i/o口资源。选取串口输入,i/o口资源使用较少。所以我选用串口输入。电路中行方向由at89c51的p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。为提供负载能力,接16个2n5551的npn三极管驱动。列方向则由416译码器74ls154完成扫描,它由89c51的p1.0-p1.3控制。同样,驱动部分则是16个2n5

15、401的三极管完成的。2.5数字电子时钟工作原理 数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和 报时功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,

16、该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。2.6电路图经以上分析,电路图汇总如下:图2-1整体电路图三、硬件设计本设计采用以at89c51单片机为核心芯片的电路来实现,主要由at89c51芯片信号发生器

17、、时间显示电路、按键电路、供电电路、闹铃指示电路等几部分。参考以下框图: 图3-13.1 at89c51芯片的简单论述单片机是微型机的一个主要分支,他在结构上的最大特点是吧cpu、存储器、定时器和多种输入、输出接口电路集成在一块超大规模集成电路上芯片上。就其组成的功能而言,一块单片机就是一台计算机。单片机具有如下优点:1.集成度高、体积小、有很高的可靠性;2.控制功能强;3.低功耗、低电压、便于生产便携式产品;4.外部总线增加了i2c、spi等串行总线方式,进一步缩小了体积,简化了结构;5.单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。at89c51单片机是一款低功耗,低

18、电压,高性能cmos8位单片机,片内含4kb(可经过1000次擦写周期)的flash可编程可反复擦写的只读存储器(eprom),器件采用cmos工艺和atmei公司的高密度、非易失性存储器(nuram)技术制造,其输出应缴和指令系统都与mcs-51兼容。片内的flash存储器允许在系统内可改编程序活用常规的非易失性存储器来编程。英雌,at89c51是一种功能强大,灵活性高且价格合理的单片机,可放比偶按在应用在各个控制领域。at89c51具有以下主要性能:1. 4kb可编程序flash存储器;2. 全静态工作:0-24hz;3. 128x8字节内部ram;4. 32个外部双向输入/输出(i/o)

19、口;5. 6个中断优先级;2个16为可编程定时计数器;6. 可编程床行通信;7. 片内时钟振荡器。 图3-2 at89c51 引脚图此外,at89c51是采用静态逻辑来设计的,其工作频率可下降到0hz,并提供两种可用软件来选择的省电方式空闲方式(idle mode)和掉电方式(power down mode)。在空闲方式中,cpu停止工作,而ram、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于始终被“冻结”,使一切功能都暂停,只保存片内ram中的内容,直到下次硬件复位为止。 3.1.1管脚说明p0口:p0口为一个8位漏级开路双向i/o口,也即地址/数据总线

20、复用口。作为输出口用时,能驱动8个ttl逻辑门电路。对端口写“1”时,被定义为高阻输入。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1口:p1口是一个带内部上拉电阻的8位双向i/o口,p1口的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在flash编程和程序校验期间,

21、p1接收低8位地址。部分端口还有第二功能,如表1所示: 端口引脚 第二功能p1.5 mosi(用于isp编程)p1.6 miso(用于isp编程)p1.7 sck(用于isp编程表1p2口:p2口是一个带有内部上拉电阻的8位双向i/o口,p2口的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movxdptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据寄存器(

22、例如执行movxri指令)时,p2口线上的内容(也即特殊功能寄存器(sfr)区中p2寄存器的内容),在整个访问期间不改变。在flash编程或校验时,p2亦接收高位地址和其它控制信号。p3口:p3口是一个带有内部上拉电阻的双向8位i/o口,p3口的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入口使用时,被外部信号拉低的p3口将用上拉电阻输出电流(iil)。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能,如下表所示:p3口还接收一些用flash闪速存储器编程和程序校验的控制信号。端口引脚第二功能p3.0rx

23、d(串行输入口)p3.1txd(串行输出口)p3.20int(外中断0)p3.3int1(外中断1)p3.4t0(定时/计数器0)p3.5t1(定时/计数器1)p3.6wr(外部数据存储器写选通)p3.7rd(外部数据存储器读选通)表23.2时钟电路设计系统时钟应用了实时时钟日历芯片ds1302,其连接如图,该硬件电路设计简单,抗干扰能力强。 如图下图at89c51单片机p1.7直接ds1302的rst端,上电后,at89c51的p1.7脚自动输出高电平,p1.6作为串行时钟接口,p1.5作为始终数据的i/o。ds1302的晶振选用32768hz,电容推荐值为6pf。因为振荡频率较低,也可以不

24、接电容,对计时精度影响不大。图2-3 时钟电路ds1302时钟芯片包括实时时钟/日历和31字节的静态ram。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24时或带am/pm的12小时格式。工作电压宽达2.55.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个33x8的用于临时性存放数据的ram寄存器。ds1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式。3.

25、2.1引脚定义x1、x2:晶振接入管脚。晶振频率32.768khz。rst:复位引脚。高电平启动输入/输出,低电平结束输入/输出。i/o:数据输入/输出引脚。sclk:串行时钟输入引脚。gnd:接地引脚vcc1:在单电源与电池供电的系统中提供低电源,并提供低功率的电磁备份.vcc1在双电池系统中提供主电源。在这种运行方式中,vcc1里连接到后备电源,以便在没有主电源的情况下能保存时间信息以及数据。ds1302由vcc1或vcc2中较打大者供电。当vcc2(vcc1+0.2v)时,vcc2给ds1302供电;当vcc2vcc1时,ds1302由vcc1供电。3.3显示电路设计就时钟而言,通常了采

26、用lcd 显示或者led显示。对于一般的短时lcd,需要专门的驱动电路,但是电路设计简单,连接方便,数字感应信号强,软件编程简单,节省i/o接口,如下图:图2-4 显示电路3.3.1lcd显示基本原理lcd显示屏有点阵图形式液晶由mn个显示单元组成显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示ram区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。屏的第一行的亮暗由ram区的000h00fh的16字节的内容决定,当(000h)=ffh时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3ffh)=

27、ffh时,则屏幕的右下角显示一条短亮线;当(000h)=ffh,(001h)=00h,(002h)=00h,(00eh)=00h,(00fh)=00h时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是lcd显示的基本原理。1602lcd分为带背光和不带背光两种,基控制器大部分为hd44780,带背光的比不带背光的厚,是否带背光在应用中并无差别1602lcd主要技术参数:显示容量:162个字符芯片工作电压:4.55.5v工作电流:2.0ma(5.0v)模块最佳工作电压:5.0v字符尺寸:2.954.35(wh)mm3.3.2引脚功能说明1602lcd采用标准的14脚(无背光)或16

28、脚(带背光)接口,各引脚接口说明如表所示:编号符号引脚说明编号符号引脚说明 1vss电源地9d2 数据 2vdd电源正极 10 d3数据 3vl液晶显示偏压11 d4数据 4rs数据/命令选择12d5数据5r/w读/写选择13 d6数据6e使能信号 14d7数据 7d0数据 15bla背光源正极8d1数据 16blk背光源负极3.4复位电路设计根据功能需要,本时钟需要设置一下功能键:校对选择键(主键),加1操作键(+1),减1操作键(-1)。按照键盘与cpu的连接方式可分为独立式键盘和矩阵式键盘,独立式键盘是各个按键相互独立,每个按键占用一个i/o口线,每根i/o口线上的按键不会影响其他i/o

29、口上的按键工作状态。独立式键盘电路配置灵活,软件结构简单,但每个按键必须占用一根i/o口,在按键数量较多时,i/o口浪费较大,且电路结构复杂。矩阵式键盘社和按键较多的时候使用。由于本设计的电子时钟最多需要3分按键,若采用矩阵式键盘会有按键浪费,故采用多历史键盘。键盘电路如下图:对于内置上拉电阻的i/o引脚来说,外界上拉电阻式没有意义的。键盘是为了完成时钟/日历校正的显示功能。由此电子时钟要求具有闹铃功能,所以设计有闹铃电路,进行声音闹铃。图2-5 复位电路校对选择键(主键)按下后进入校对状态,+1键对时间日期进行加1和右移功能,-1键对时间日期进行减1和左移功能。3.5闹铃、背光电路设计闹铃可

30、直接采用蜂鸣器闹铃,如当前时刻与闹铃时间相同,单片机向蜂鸣器送出信号,蜂鸣器哦发生。采用蜂鸣器结构简单,控制方便,只是铃声单一。背光电路采用绿色的led背光,即使在暗处不开灯也可以看清时间。电路参考下图2-6闹铃、背光电路图四、软件程序设计4.1程序流程图主程序开始设定定时器常数,开中断显示时间到1秒?t0中断现场保护重装定时器初值满20次否?满24小时否?满60秒否?满60分否?恢复现场时值加1时缓冲单元清零秒值加1分缓冲单元清零秒缓冲单元清零分值加1结束时钟调整程序关闭显示,省电状态分钟闪烁,调时状态分值加1按键s2时间t1时值=24?按键s2时间t0.5按键s2时间t0.5时钟闪烁,调时

31、状态分值=60?分值清零时值加1时值清零返回显示s2是否按下 4.2主程序设计第一次上电,系统向进行初始化,1602 lcd液晶显示为当前时间、年、月、日和星期。单片机开始调用键盘扫描程序、ds1302程序、1062程序、闹铃程序和背光程序并循环。 4.3子程序设计4.3.1实时时钟日历子程序设计该程序主要实现对ds1302写保护,对年、月、日、时、分、秒等的寄器的读写操作。在在读写程序中都执行了关中断指令,因为在串行通信时对时序的要求比较高,而且在此是用1602液晶显示器,所以在通信过程中最好保证传输的连续性,不要允许中断。 4.3.2显示子程序设计单片机直接驱动1602液晶芯片,编程也简单

32、。单片机的串行输入数据,由读入读出信号控制。 4.3.3键盘扫描子程序本设计要求简单,按键采用独立式按键接入。程序对键盘的扫描方式有:随机扫描、定时扫描和终端扫描。在随机扫描方式中,cpu完成某种特定任务后,即执行键盘扫描程序,以确定键盘有无按键接入,然后根据按键功能转去之星相应的操作。在之星键盘按键规定的功能中不理睬键盘的输入。定时扫描方式与随机扫描方式基本相同,只是利用cpu内的定时中断,每个一定时间扫描有无按键信号输入,键盘反应速度较快,在处理键盘功能过程中,可以通过键盘命令进行干预,如取消、暂停等操作。由于本设计中at89c51单片机在系统的主要任务是接受ds1302和1602的数据并

33、送出显示,完成时钟/日历校对和日期/星期的控制。该单片机完全有能力完成以上工作,所以采用随机扫描键盘方式,系统也能正常运行。单片机扫描完键盘,得到键值,并根据键值转入执行相应任务,以实现按键功能。入过没有按键按下,择程序将键盘值清零,返回主程序。4.3.4闹铃子程序设计闹铃子程序任务是不断的用时钟分和时通设定的闹铃分与闹铃时比较,只要满足时钟分和时等于闹铃分与时,响铃就会启动一分钟。 4.4系统程序设计 数字电子时钟51单片机系统设计程序 表5-1 p1口对应段码及数值:显示数字p1.7p1.6p1.5p1.4p1.3p1.2p1.1p1.016进制代码dpgfedcba0001111113f

34、h10000011006h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh; ; 中断入口程序; ;org 0000h;程序执行开始地址ljmp start;跳到标号start执行org 0003h;外中断0中断程序入口reti;外中断0中断返回org 000bh;定时器t0中断程序入口ljmp intt0;跳至intto执行org 0013h;外中断1中断程序入口reti ;外中断1中断返回org 001bh;定时器t1中断程序入口ljmp intt

35、1;跳至intt1执行org 0023h;串行中断程序入口地址reti;串行中断程序返回; 主 程 序 ; start: mov r0,#70h ;清70h-7ah共11个内存单元 mov r7,#0bh ;clr p3.7; cleardisp: mov r0,#00h ; inc r0 ; djnz r7,cleardisp ; mov 20h,#00h ;清20h(标志用) mov 7ah,#0ah ;放入熄灭符数据 mov tmod,#11h ;设t0、t1为16位定时器 mov tl0,#0b0h ;50ms定时初值(t0计时用) mov th0,#3ch ;50ms定时初值 mov

36、 tl1,#0b0h ;50ms定时初值(t1闪烁定时用) mov th1,#3ch ;50ms定时初值 setb ea ;总中断开放 setb et0 ;允许t0中断 setb tr0 ;开启t0定时器 mov r4,#14h ;1秒定时用初值(50ms20) start1: lcall display ;调用显示子程序 jnb p3.7,setmm1 ;p3.7口为0时转时间调整程序 sjmp start1 ;p3.7口为1时跳回start1 setmm1: ljmp setmm ;转到时间调整程序setmm; 1秒计时程序;t0中断服务程序 intt0: push acc ;累加器入栈保

37、护 push psw ;状态字入栈保护 clr et0 ;关t0中断允许 clr tr0 ;关闭定时器t0 mov a,#0b7h ;中断响应时间同步修正 add a,tl0 ;低8位初值修正 mov tl0,a ;重装初值(低8位修正值) mov a,#3ch ;高8位初值修正 addc a,th0 ; mov th0,a ;重装初值(高8位修正值) setb tr0 ;开启定时器t0 djnz r4, outt0 ;20次中断未到中断退出 addss: mov r4,#14h ;20次中断到(1秒)重赋初值 mov r0,#71h ;指向秒计时单元(71h-72h) acall add1

38、;调用加1程序(加1秒操作) mov a,r3 ;秒数据放入a(r3为2位十进制数组合) clr c ;清进位标志 cjne a,#60h,addmm ; addmm: jc outt0 ;小于60秒时中断退出 acall clr0 ;大于或等于60秒时对秒计时单元清0 mov r0,#77h ;指向分计时单元(76h-77h) acall add1 ;分计时单元加1分钟 mov a,r3 ;分数据放入a clr c ;清进位标志 cjne a,#60h,addhh ; addhh: jc outt0 ;小于60分时中断退出 acall clr0 ;大于或等于60分时分计时单元清0 mov r

39、0,#79h ;指向小时计时单(78h-79h) acall add1 ;小时计时单元加1小时 mov a,r3 ;时数据放入a clr c ;清进位标志 cjne a,#24h,hour ; hour: jc outt0 ;小于24小时中断退出 acall clr0 ;大于或等于24小时小时计时单元清0 outt0: mov 72h,76h ;中断退出时将分、时计时单元数据移 mov 73h,77h ;入对应显示单元 mov 74h,78h ; mov 75h,79h ; pop psw ;恢复状态字(出栈) pop acc ;恢复累加器 setb et0 ;开放t0中断 reti ;中断返

40、回; 闪动调时 程 序 ;t1中断服务程序,用作时间调整时调整单元闪烁指示intt1: push acc ;中断现场保护 push psw ; mov tl1, #0b0h ;装定时器t1定时初值 mov th1, #3ch ; djnz r2,intt1out ;0.3秒未到退出中断(50ms中断6次) mov r2,#06h ;重装0.3秒定时用初值 cpl 02h ;0.3秒定时到对闪烁标志取反 jb 02h,flash1 ;02h位为1时显示单元熄灭 mov 72h,76h ;02h位为0时正常显示 mov 73h,77h ; mov 74h,78h ; mov 75h,79h ;intt1out: pop psw ;恢复现场 pop acc ; reti ;中断退出flash1: jb 01h,flash2 ;01h位为1时,转小时熄灭控制 mov 72h,7ah ;01h位为0时,熄灭符数据放入分 mov 73h,7ah ;显示单元(72h-73h),将不显示分数据 mov 74h,78h ; mo

温馨提示

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

评论

0/150

提交评论