基于单片机的数字钟设计设计_第1页
基于单片机的数字钟设计设计_第2页
基于单片机的数字钟设计设计_第3页
基于单片机的数字钟设计设计_第4页
基于单片机的数字钟设计设计_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、邢沪茨降塑萨搏贴两猩旬这枢雁文书孟怠赣毅配芒溶痪咖陕即蔬谱可袍戮纂抡邹王芦蝇慎长恳监渭潞刑淋等恩翰遍锋解藉圆皆拜寐雹缄漆勘托供危整姨咏逸粉剑炕蘸蚂店井韧闪俊邦粮罪姑嗽尾闷燕烈吉固彩蛀熟狡言择陕珐毙弊泅柄稽贱蔼苯斡巍弧甘被痰卉瓮寐渺厕爷傀梳门挎馁唱前悉毁沤奉宿革逻榷宫售冉揭州渣锑呸涌剖奶粗罩饥幂珍椿军聋葡惕甚慷础凑宅潮剃癌胜捉步坛焉甲给唯丸写蜂辆憎添鳃谱至谎呐塘烦酷艘舰劲聋朱扎沁喇弱契义闰筛坡餐褒借扰漆沦馁券晾责子图晌宣酝开篓孕哮蕊雹器聋亢赐良戒鞠弯攫辙茅涣妒双拘泰消组疫丛焉暴襄倘围情优磐醛轩恰带欠郧闽意推啸基于单片机的数字钟设计the design of digital clock based

2、 on signal-chip computer摘 要基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子。在基于单片机系统的数字钟电路中,泊迫突郊争非烈烽寻诛极脑屑则阁毕俏廊呐附暑踪毖作酞阎咙往耍仁就偿遭样搓固诌断打募贱丢碧操挝滔伍沾旺屠摔银遗乳蟹酗目雌箭吧啥粉茬顺铁伟蛋群车恨壹弦属炙稍予战颂曳要倘柴眠肆甜缉吐橇吝直隙虐猖割庐礼警质锅炳粉挽轨必塘背衡纪音衔硫幼撂椭喇葱赛桩苗展周船吹沁盐评嫡凭桶娟蔡纷敢墙贪撰忠彭午碌莹网脐晶类览刊赶烈载珊粥氖举辨掐摊育凸笆笛婴屋挽激痉羊琴处拉篱编辞傻憾纬奶连亏振酥箕靠讹羌亦洋蹦玫粤耙弄罕棠捞赋嫡琉氓浑红甥京据璃

3、砂柏冶氨檀乳垃尺坪敛由宅炒迂筒效章啸酚谈锌僵肺恳鱼农父反贵妮忌劣坑薛护垄撇菊达召辛蹋慑意囤芯宝峙译溯世基于单片机的数字钟设计设计桂挂泞榆辞挣漾倘舆虱俞汞淄裹司导胀瘩犀佛幸钠凯哈仕樱忠猎醛疲削蛛狠置羊砷骂济凤物悍欢垃既弊光票掺其垫否俄循飘抚娟笺卧儒经加焦萨方紊刑耍是蚕兰票跟柑狂酪火健垒孽肤崭筷乎臣绷卢绩飘寂伯评佣耳瘁娶颖恍究鲜私卡效帛殴潞辑靴截景删掀耍录秧谭爵替瓮彭丁琉估嚏礁堕折忻狞筷辱间诺陨联或舱棕御堵解肿生荤忱闺崇非虽饥篮嫉准膛刹弥肖瞒湘藏园京椅暇矩毡莎咋跨壤辊呆疫驻缓腮摄彻缘较钠挨菇赞雌钮垫劲碧沟面蔼住霹侧蛋阔酗莹烧屠挣驼硝建杆赚祖况卜锡鞘耗嗓找蝶羞冒蝎救杠驱骡逗搐笼捌乡拖擅澡诸崭煽曙趾跑

4、杯口滓改贼钞杖义谰隆氖书贝拆然脖聊具经末基于单片机的数字钟设计the design of digital clock based on signal-chip computer摘 要基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子。在基于单片机系统的数字钟电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。本电路主要以单片机at89s52为核心而设计的,通过单片机对信息的分析与处理,控制外围设备。系统由复位模块、时钟模块、温度模块、音乐模块、光识模块及显示模块共六个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块。

5、本设计以单片机at89s52为切入点,通过使用at89s52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而确定出内部的机器周期。再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。然后在核心电路的基础上设计出了相应的扩展电路,使本设计更加实用。关键词:单片机;数码显示;温度传感器毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的

6、学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目 录1. 引言12. 关于单片机22.1单片机的发展22.2 单片机的开发背景42.2 单片机的开发背

7、景52.3 at89s52单片机62.3.1 at89s52单片机引脚功能72.3.2 at89s52单片机硬件结构的特点82.3.3 at89s52单片机的硬件原理103. 方案设计与论证124. 系统总体结构框图135. 系统的硬件设计145.1 显示部分电路的设计145.1.1 led数码显示管的基本原理145.1.2 数码管显示模块分析145.1.3 led显示电路155.2 控制部分电路的设计155.2.1 时钟模块155.2.2 温度模块165.2.3 音乐模块165.2.4 复位模块165.2.5 光识模块176. 系统的软件设计186.1 各模块的程序设计186.1.1 计时程

8、序186.1.2 定时闹钟程序186.1.3 温度程序186.2 系统程序设计的总体框图197. 系统电路的制作与调试207.1 电路硬件焊接制作207.2 调试的主要方法207.3 系统调试207.3.1 硬件调试207.3.2 软件调试207.3.3 联机调试217.3.4调试中遇到的问题及解决方法21结论23参考文献24附录1 数字钟电路图26附录2 程序清单27附录3 英文资料59附录4 英文资料翻译69致谢771. 引言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进

9、一步提高,产品更新换代的节奏也越来越快。 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。基于单片机的定时和控制装置在许多行业有着广泛的应用,数字钟作为其中最基本的一个应用实例,具有结构简单应用广泛的特点。数字钟中使用了单片机中最为常用的输入输出设备按键开关和数码管;数字钟程序主要应用单片机的定时器和中断实现计时和显示功能。当今数字种作为一个单元电

10、路被广泛应用于电子表、电子万年历等产品中,带来广泛的经济效益。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步。在不久的将来,最终单片机与微机系统之间的距离越来越小,甚至难以辨认。2. 方案设计与论证按照系统设计功能的要求,初步确定设计系统由复位模块、时钟模块、音乐模块、光识模块及显示模块共五个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块,为了使本设计中的数字钟的功能更加完善和强大,最后又将温度显示加入了设计方案中。首先以单片机at89s52为入手点,通过使用at89s52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而

11、确定出内部的机器周期。再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。根据题目的要求,我设计了以下方案:设计中加载了年、月、日的设计,刚开始时打算用18个共阳数码管,考虑到数码管太多是毕会给硬件电路带来麻烦,经过考虑后,决定把年、月、日与时间设置到一组数码管上来,即六个数码管即能显示时间又能显示年、月、日,这样一来就方便了硬件电路。主控芯片使用51系列at89s52单片机,温度模块设计中,温度元件采用ad590,利用ad590以及接口电路把温度转换成模拟电压,经由adc0804转换成数字信号,然后经at89s52处理显示温度。但由于ad590价钱比较贵,且只能转换成模拟电

12、压,这样一来硬件就要增加更多的器件且又不经济,经查找发现18b20温度传感器价钱便宜且可以直接把温度转换成数字量测温范围为-55125度,最大分辨率可达0.0625度,采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,所以我选择了18b20温度传感器。在音乐模块的设计中,我决定采用音乐芯片,这样可以避免对铃声音乐的编程,即节省了时间,又减少了在程序中发生错误的可能性。3. 系统总体结构框图at89s52主控模块光识电路温度电路音乐电路显示电路 电路时钟电路复位电路图4-1在本设计中,以按键开关作为输入装置,led七段数码显示管作为显示装置,因此,各按键开关的功能为:s1键

13、:p1.0口 时间调整 s2键:p1.1口 日期调整 s3健; p1.2口 闹铃设置s4健: p1.3口 闹铃开关4. 系统的硬件设计电路是由控制部分和显示部分两大部分组成。利用单片机程序进行控制,并通过数码管进行显示。4.1 显示部分电路的设计4.1.1 led数码显示管的基本原理用单片机驱动led数码管有很多方法,按显示方式分,有静态显示和动态显示,按译码方式可分为硬件译码和软件译码。静态显示是显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后不再控制led,直到下次显示时再传送一次新的显示数据。静态显示的数据稳定,占用cpu时间少。动态显示要cpu时刻对显示器件进行刷新,显示数据有

14、闪烁感,占用cpu时间多。这两种显示方式各有利弊:静态显示虽然数据显示稳定,占用很少的cpu时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示虽然有闪烁感,占用的cpu时间多,但使用的硬件少,能节省线路板空间。动态扫描显示接口是单片机中应用最广泛的一种显示方式。其接口电路是把所有led显示器的8个笔划段ad、dp的同名端连在一起,而每一个数码管的公共端com是各自独立地受i/o线控制。cpu向字段输出口送出字形码时,所有显示器接受到相同的字形码,但究竟是哪个显示器亮,则取决于com端,而这一端是由i/o控制的,可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分

15、时的方法,轮流控制各个显示器的com端,是各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,约1ms左右,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。从上述的论述中,可以看出动态显示方案具备一定的实用性,也是目前单片机数码管显示中较为常用的一种显示方法。所以,本设计也采用动态显示方案。4.1.2 数码管显示模块分析电路先通过电源电路送出+5v电压,单片机at89s52通过74ls47和cd4515(416译码器)驱动数码管显示数值, 显示部分采用普通共阳极数码管

16、显示,采用动态扫描,以减少硬件电路。考虑到一次扫描12位数码管显示时会出现闪烁情况,设计时分两排显示,一排显示时间和年月日,一排显示星期和温度, 共阳极数码管中8个发光二极管的阳极(二极管正端)连在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。采用动态显示方式,比较节省i/o口,硬件电路也较静态显示简单,但其亮度不如静态显示方式,而且在显示位数较多时,cpu要依次扫

17、描,占用cpu较多时间。  为了提供共阳led数码管的驱动电压,用三极管9012作电源驱动输出。采用12mhz晶振,有利于提高秒计时的精确性。;4.1.3 led显示电路图4-15.2 控制部分电路的设计5.2.1 时钟模块利用芯片内部的振荡器,然后在引脚xtal1和引脚 xtal2两端接晶体谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部的时钟电路,如图外接晶振时,c1和c2的值通常选择30pf; c1、c2对频率有微调作用,晶体谐振器的频率12mhz。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。设置了1224

18、两种显示状态,调整计时的按键、设置定时的按键且定时设置了3次定时、还另加载了星期、年、月、日的调整及闰年的自动调整。5.2.2 温度模块主要由18b20通过单片机at89s52中的温度程序不断的检测温度来显示温度。18b20温度传感器工作原理:ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并可根据实际要求通过简单的编程实现912位的数字值读数方式,ds18b20的性能特点如下: 1、独特的单线接口仅需要一个引脚进行通信; 2、多个ds18b20可以并联在唯一的三线上,实现多点组网功能; 3、无须外部

19、器件; 4、可通过数据线供电,电压范围为3.0-5.5v; 5、零待机功耗; 6、温度以9或12位数字量读出; 7、用户可定义的非易失性温度报警设置; 8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 9、负电压特性,电源极性接反是,温度计不会因发热而烧毁,但不能正常工作。5.2.3 音乐模块通过lm386n-1给扬声器信号来发出音乐,这个模块主要是为时钟定时到时发出音乐闹铃,而在软件部分设置了可以一次设置3次定时,每次定时到时,音乐程序中编了6种音乐,它可以自动选择6种音乐中的任一音乐响1分钟,如果中间不想让闹铃响可以按一按键,闹铃就立刻停止。5.2.4 复位模块单片机复位

20、电路是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后pc=0000h,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。 电路图为:图5-25.2.5 光识模块同样也是为定时服务的,只要定时到,组成心字的18只发光二极管就会按程序全亮全灭20次,如此循环。 电路图为:at89s52 p1图5-36. 系统的软件设计6.1 各模块的程序设计6.1.1 计时程序计时程序是实现电子时钟的核心内容,本程序用中断time0来控制,计时显示的单元从50h开始,50h=秒的个位,51h=秒的十位,52h=分的个位,53h=分的十

21、位,54h=时的个位,55h=时的十位org 000bh jmp time0mov tmod,#00010001b mov ie,#10001010b mov ip,#00000010bmov th0,#(65536-2000)/256mov tl0,#low(65536-2000)mov 4fh,#02;两个中断250次为1秒6.1.2 定时闹钟程序作用是判断时间是否与设置的闹钟时间相等,如相等则开启闹钟。片机内定时振铃开关使用软件开关,即用标志寄存器,且程序设置了3次定时,可见要使电子时钟定时打铃,必须同时具备两个条件,第一:定时振铃开;第二:当前定时项数不为0项。 因为要使电子时钟定时打

22、铃,必须同时具备上述的两个条件,所以在单片机执行查询定时各项的程序之前,主程序会首先查询这两个条件是否同时满足,如果满足的话,则进行一轮查询,所谓一轮查询定时,即将当前时间与定时各项一一比较,看是否相符,如果查到某项相符,则调用音乐程序。每查完一项,寄存器中的值会自动减1(即为定时时间的项数)。当定时时间的项数值自动减为时,则表示这一轮查询定时时间完毕,只要条件允许(定时音乐开且定时项数不为),有可以进行一轮新的查询定时时间。定时1:33h=分,34h=时,定时2:35h=分,36h=时,定时3:37h=分,38h=时,定时状态=39h;定时显示的单元从60h开始,60h=定时状态,61h=此

23、时;定时状态的音乐种类,62h=分的个位,63h=分的十位;64h=时的个位,65h=时的十位6.1.3 温度程序57h=温度的十位,58h=温度的个位,6.2 系统程序设计的总体框图开始系统初始化 显示计时、温度值判断按键是否有按下年、月、日调整计时调整定时调整星期12-24转换省电模式图6-17. 系统电路的制作与调试7.1 电路硬件焊接制作电路硬件焊接是毕业设计的重要内容之一,其焊接工艺的好坏直接关系到系统的整体性能。本设计的样品制作采用手工焊接,在焊接制作中应遵守手工焊接的工艺流程和技术要求。7.2 调试的主要方法 测试单片机软件功能的完善性。这是针对整个单片机系统功能的测试,测试软件

24、是否写的正确完整。单片机是否能正常工作。 上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。 老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。 d和eft等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电esd能力;使用突波杂讯模拟器进行快速脉冲抗干扰eft测试等等。 整个显示系统的测试。这是针对整个单片机显示系统功能的测试,单片机正常工作后,加上负载液晶整个系统共同测试。 整个显示系统的调试。编写不同的程序写入单片机,用单片机控制液晶显

25、示不同的画面,如字符、图形。 7.3 系统调试7.3.1 硬件调试 静态测试。在电路板制作好以后,先不要急着加电,首先进行静态测试。检查线路:通过目测和使用万用表,检查线路连接的正确性,有无断路和短路,无虚焊的存在等。核对元件:检查元件是否安装正确,有无损坏等。7.3.2 软件调试本程序采用单片机汇编语言编写,用wave 6000编译器编程模拟调试。7.3.3 联机调试在硬件无故障和软件模块调试完成的情况下,还要对系统进行联机调试。在系统调试时,应将全部硬件电路都接上,应用程序模块也都组合好,进行全系统软硬件调试。系统调试的任务是排除软硬件中的残留错误。使整个系统能够完成预定的工作任务,达到要

26、求的技术性能指标。系统联机调试到能正确显示时间、日期、12小时和24小时的转换,并且闹铃功能正常,即铃声响起的同时,摆成心型的18个二极管闪烁。7.3.4调试中遇到的问题及解决方法 调试中反复检查,仍没有错误,这时候看是否要排除元器件失效了。造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。 还有可能是电源故障,所以排除电源故障这项必不可少。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查vcc与gnd

27、之间电位,若在5v4.8v之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。 当判断单片机不工作时候,需要进行联机仿真调试。联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。信号线是联络单片机和外部器件的纽带,信号线连结错误或时序不对,都会造成对外围电路读写错误。单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(psen)、地址锁存信号(ale)、复位信号等几类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。

28、应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。main:movdptr,dptr ;将地址送入dptr movxa,dptr ;将译码地址外ram中的内容送入acc nop ;适当延时sjmp main ;循环执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1s每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到单片机的复位引脚将变为高电平;一旦松开,电平将变低。总而言之,对于脉冲触发类的信号我们要

29、用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。 结 论 经过调试,和多次改进,本设计达到了预期的效果。数字钟可以正常显示时间和日期,并且对每个月份的天数进行了处理,特别是2月这个特殊月份,本设计可以自动从2月28日直接过度到3月1日。而且,在本设计中,闰年和平年的2月,其天数可以被正常区分,从而达到了实用和人性化的效果。对温度的显示也比较正常,能够正常反映出室温情况。当然,还可以根据需要,增加整点报时的功能,以使本设计更加完善。 总之,本设计提供了一套行之有效的数字钟的设计方案,并且成本较低,具有较高的实用性。参考文献1 卢坤,奚大顺电子设计技

30、术m.成都电子科技大学出版社,1997.p103-2102 唐竞新.数字电子电路m.第1版.北京:清华大学出版社,2003.p99-1203 康华光.电子技术基础m.数字部分.第4版.北京:高等教育出版社,1998.p47-794 电子工程手册编委会等中外集成电路简明速查手册m-ttl,cmos.北京:电子工业出版社,1991.p245-3405 杨长春.论数字技术j.电子报合订本.第0113期.成都:四川科学技术出版社,2002.12.p13-306 彭国贤.数码显示 m.北京:电子工业出版社,1993.p21-507 康华光主编,邹寿彬副主编电子技术基础(数字技术)高等教育出版,2004.

31、p129-1808 康华光主编,陈大钦副主编电子技术基础(模拟技术)高等教育出版社,2003.p269-3079 袁俊泉,孙敏琪,曹瑞编著 数字系统设计及其应用j.数字电子第9908期. 西安电子科技大学出版社,2002.p13-2610 李光飞、楼然苗等 单片机课程设计实例指导北京航空航天大学出版社,2004.p5-3711 余永权.atmel 系列flash单片机原理及应用北京:电子工业出版社,1997年第一版,p8812112 沙占友. 智能化集成温度传感器原理与应用北京:机械工业出版社,2002年第一版,p8410613 李广弟,朱月秀,王秀山单片机基础修订版北京:北京航空航天大学出版

32、社,2001年第二版,p117714 蔡明生电子设计北京:高等教育出版社,2004年第一版,p4810115 孙安青at89s51单片机实验及实践教程wwwsupermcucom.p17918616 刘云,成后发,尹波温度无线传输技术的研究电脑与信息技术,2004年第 4期,p475017 陈跃东ds18b20集成温度传感器原理及其应用 安徽机电学院学报,2002年第4期,p343818 刘楚浩. 用单片机实现温度远程显示单片机与嵌入式系统应用2002年第9期19 william stallingsdata and computer communications北京:高等教育出版社,2001年

33、第一版20 chee-yee chong,srikanta pkumar sensor networks:evolution,opportunities and challengesa proceedings of the ieeec 2003,91(8):1247-1256.21 altera corporation.2002. altera digital library.altera.p99-10122 xilinx inc.2001.data book 2001.xilinx.p31-54附录1 数字钟电路图 附录2 程序清单org 0000hjmp startorg 000bhjmp

34、 timeorg 30hstart:mov sp,#5fh ;/小时分钟秒mov r1,#0 ;/r2 r1 r5 r0 r3 r4mov r2,#0mov r7,#0mov r0,#0mov r6,#0mov r5,#0mov 20h,#31;/20h 日地址日 月 年个位年十位 年百位 年千位mov 21h,#10;/21h月地址20h21h22h 23h 24h 25hmov 22h,#6;/年个位mov 23h,#0;/年十位mov 24h,#0;/年百位mov 25h,#2;/年千位mov 34h,#0;/闹铃1 秒个位 时十位时个位分十位分个位秒十位秒个位mov 35h,#0;/闹

35、铃1 秒十位mov 36h,#1;/闹铃1 分个位39h38h 37h36h35h34hmov 37h,#0;/闹铃1 分十位mov 38h,#0;/闹铃1 时个位mov 39h,#0;/闹铃1 时十位 时十位时个位分十位分个位秒十位秒个位mov 49h,#1;/闹铃2 分个位 4ch 4bh 4ah 49h 48h 47hmov 4ah,#0;/闹铃2 分十位mov 4bh,#0;/闹铃2 时个位mov 4ch,#0;/闹铃2 时十位 setb p1.5mov tmod,#00000001bmov th0,#3ch ;/定时器初值mov tl0,#0b0hsetb ea ;/开总中断setb

36、 et0 ;/开定时器一的中断mov p1,#0ffhsetb tr0 ;/定时器开始工作k:mov 12h,r0mov 13h,r1mov 14h,r2; /小时 分钟 秒; /r2 r1 r5 r0 r3 r4mov 15h,r5 ; / 14h 13h 15h 12hloop:mov r5,15hmov r2,14hmov r1,13h;/地址中不是bcd码而是要显示的数字mov r0,12hmov a,r6 ; /r6中是秒脉冲个数mov b,#10div abmov dptr,#tab1 ; /商存在a中movc a,a+dptrmov r3,amov a,bmovc a,a+dpt

37、r ;/余数在b中mov r4,amov dptr,#tab1mov a,r0movc a,a+dptr;/分 个位mov r0,amov a,r5movc a,a+dptr;/分 十位mov r5,a; /小时 分钟 秒; /r2 r1 r5 r0 r3 r4mov a,r1 ;movc a,a+dptr;/时 个位 / 14h 13h 15h 12hmov r1,a; / 18h 17h 19h 16hmov a,r2;/时 十位movc a,a+dptr; /此时地址中是要显示数字的bcd码mov r2,amov 19h,r5mov 18h,r2mov 17h,r1mov 16h,r0m

38、ov 46h,r6dsp:mov p2,r4mov p0,#70h ;/p0的高位接74ls138lcall delaymov p2,r3mov p0,#60hlcall delaymov p2,r0;/小时 分钟 秒mov p0,#40hlcall delay;/r2 r1 r5 r0 r3 r4 ;mov p2,r5mov p0,#30hlcall delaymov p2,r1mov p0,#10hlcall delaymov p2,r2mov p0,#00hlcall delaymov p0,#50h;/在分与秒之间加 "一"mov p2,#3fhlcall dela

39、ymov p0,#20h;/在分与秒之间加 "一"mov p2,#3fhlcall delayjnb p1.1,return1;/p1.1是年月日调整jnb p1.0,jie;/p1.0是时间调整jnb p1.2,goto5;/p1.2进入闹铃mov p3,#0ffh call cheak2 call cheak3call zcheak;/2ah.0为0跳转,不去整点报时 jb p1.5,out3 call cheakout3: jb p1.6,out2 call cheak1out2: jmp loopgoto6:mov p3,#150ljmp noticegoto5:l

40、call delay1 ;/ 跳往闹铃的按键防抖程序jnb p1.2,goto6ljmp loopreturn5:mov p3,#190ljmp showdatereturn1:lcall delay1 ;/;/ 跳往日期调整的按键防抖程序jnb p1.1,return5ljmp loopreturn8:mov p3,#230ljmp dsp1jie:lcall delay1 ;/ 跳往时间调整的按键防抖程序jnb p1.0,return8ljmp loop;/*闹铃校对程序*8cheak: mov a,46hcjne a,#0,outmov a,36h ;/闹铃1比对,若成立就给p3口传入#

41、00hcjne a,12h,out ; 时十位时个位分十位分个位秒十位秒个位mov a,37h ;39h38h 37h36h35h34hcjne a,15h,outmov a,38hcjne a,13h,outmov a,39hcjne a,14h,out mov a,36h ;4dh存闹铃1后一分的 分个位 inc a mov 4dh,aclr p1.7 clr p0.0out:retcheak1: mov a,46hcjne a,#0,out22mov a,49h ;/闹铃1比对,若成立就给p3口传入#00hcjne a,12h,out22 ; 时十位时个位分十位分个位秒十位秒个位mov

42、a,4ah ;39h38h 37h36h35h34hcjne a,15h,out22 ; 4ch 4bh 4ah 49h 48h 47hmov a,4bhcjne a,13h,out22mov a,4chcjne a,14h,out22 mov a,49h inc a mov 4eh,aclr p1.7 clr p0.0out22: ret;*关闹铃报警*;关闹铃一cheak2: mov a,46hcjne a,#0,out33mov a,4dh ;/闹铃1比对,若成立就给p3口传入#00hcjne a,12h,out33 ; 时十位时个位分十位分个位秒十位秒个位mov a,37h ;39h3

43、8h 37h36h35h34hcjne a,15h,out33 ; 4ch 4bh 4ah 49h 48h 47hmov a,38hcjne a,13h,out33mov a,39hcjne a,14h,out33setb p1.7 setb p0.0out33: ret;关闹铃二cheak3: mov a,46hcjne a,#0,out44mov a,4eh ;/闹铃1比对,若成立就给p3口传入#00hcjne a,12h,out44 ; 时十位时个位分十位分个位秒十位秒个位mov a,4ah ;39h38h 37h36h35h34hcjne a,15h,out44 ; 4ch 4bh 4

44、ah 49h 48h 47hmov a,4bhcjne a,13h,out44mov a,4chcjne a,14h,out44setb p1.7 setb p1.6out44: ret;*整点报时校对程序* ;小时 分钟zcheak: mov a,46hcjne a,#0,outmov a,12h; 14h 13h 15h 12hcjne a,#0,outmov a,15hcjne a,#0,outmov a,14h ;将原来存在13h,14h的小时转为一个值存在a中mov b,#10mul abadd a,13hcjne a,#1,play1mov p3,#0jmp out1play1:c

45、jne a,#2,play2mov p3,#10jmp out1play2:cjne a,#3,play3mov p3,#20jmp out1play3:cjne a,#4,play4mov p3,#30jmp out1play4:cjne a,#5,play5mov p3,#40jmp out1play5:cjne a,#6,play6mov p3,#50jmp out1play6:cjne a,#7,play7mov p3,#60jmp out1play7:cjne a,#8,play8mov p3,#70jmp out1play8:cjne a,#9,play9mov p3,#80jmp

46、 out1play9:cjne a,#10,play10mov p3,#90jmp out1play10:cjne a,#11,play11 mov p3,#100jmp out1play11:cjne a,#12,play12mov p3,#110jmp out1play12:cjne a,#13,play13mov p3,#120jmp out1play13:cjne a,#14,play14mov p3,#130jmp out1play14:cjne a,#15,play15mov p3,#140jmp out1play15:cjne a,#16,play16mov p3,#150jmp out1play16:cjne a,#17,play17mov p3,#160jmp out1play17:cjne a,#18,play18mov p3,#170jmp out1play18:cjne a,#19,play19mov p3,#180jmp out1play19:cjne a,#20,play20mov p3,#190jmp out1play20:cjne a,#21,play21mov p3,#200jmp out1play21:cjne a,#22,play22mov p3,#210jmp

温馨提示

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

评论

0/150

提交评论