利用单片机设计电子时钟.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用单片机设计电子时钟.doc

单片机课程设计 一、设计内容 该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及外围的按键和LED显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。 二、电子时钟设计思想: 用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。形成定时时间为50ms。用片内RAM的7BH单元对50ms计数,计20次1秒钟到,然后对秒计数器78H单元加1,秒计数器加到60后向分进位,则分计数器79H单元加1而秒计数器78H单元清零;分计数器加到60后又向时进位,则时计数器7AH单元加1而分计数器79H单元清零;时计数器加到24则时计数器清零。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理。 三、电子时钟硬件图 四、软件程序: ;采用8位LED软件译码动态显示程序 ;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳 ;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。 ;片内RAM的70H到77H单元为LED数码管的显示缓冲区 ;78H,79H,7AH分别为秒、分、小时计数单元 ;7BH为50ms计数器,7CH为调时按键计数器 ORG 0000H LJMP START ORG 000BH ;定时器/计数器T0中断程序入口 LJMP INTT0 ;主程序 START:MOV R0,#70H MOV R7,#0CH INIT: MOV @R0,#00H ;存储单元清零 INC R0 DJNZ R7,INIT MOV 72H,#10 ;时、分、秒之间的短横显示 MOV 75H,#10 MOV TMOD,#01H MOV TL0,#0B0H ;50ms定时初值 MOV TH0,#03CH SETB EA SETB ET0 SETB TR0 START1: LCALL SCAN LCALL KEYSCAN SJMP START1 ;延时1MS子程序 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET ;延时20MS子程序 DL20MS: ACALL SCAN ACALL SCAN ACALL SCAN RET ;数码管显示程序 SCAN: MOV A,78H ;秒计数值由二进制转十进制后 MOV B,#0AH ; 送入显示缓冲区相应位置 DIV AB MOV 71H,A MOV 70H,B MOV A,79H ;分计数值由二进制转十进制后 MOV B,#0AH ; 送入显示缓冲区相应位置 DIV AB MOV 74H,A MOV 73H,B MOV A,7AH ;时计数值由二进制转十进制后 MOV B,#0AH ; 送入显示缓冲区相应位置 DIV AB MOV 77H,A MOV 76H,B MOV R1,#70H ;循环扫描显示 MOV R5,#80H ;显示秒个位的位码(LED共阳) MOV R3,#08H SCAN1: MOV A,R5 MOV P2,A ;位码从P2口送出 MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A ;字段码从P0口送出 MOV A,R5 LCALL DL1MS ;延时1ms INC R1 MOV A,R5 RR A MOV R5,A DJNZ R3,SCAN1 MOV P2,#00H MOV P0,#0FFH RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共阳极字段码 ;定时器/计数器T0中断服务程序 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H MOV TH0,#03CH SETB TR0 INC 7BH MOV A

文档评论(0)

juhui05 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档