电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

基于单片机89C2051实现可编程时钟VIP免费

基于单片机89C2051实现可编程时钟_第1页
1/15
基于单片机89C2051实现可编程时钟_第2页
2/15
基于单片机89C2051实现可编程时钟_第3页
3/15
基于单片机89C2051实现可编程时钟(一)设计思路时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用6.0MHz的晶振,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间取125ms,这样定时器溢出8次(125ms╳8=1000ms)就得到最小的计时单位秒。而要实现8次计数用软件方法实现是轻而易举的。我们使用定时器1,以工作方式1工作,定时器进行125ms定时。采用中断方法进行溢出次数的累计,当计满8次即得到1秒的计时。一个时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们分别又是十二进制和二十四进制。从秒到分和从分到小时可以通过软件累加和数值比较方法实现。在单片机的内部RAM中,需要设置显示缓冲区,显示的时、分、秒值是从显示缓冲区中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。为使电路和原理叙述方便,我们这里不显示秒值,秒的进位我们通过闪烁分值实现。这样我们一共有四位LED分别显示时和分值。同时时钟都需要校准的。在程序中还需设置显示码表,要显示的数值通过查表指令将显示用的真正码值送到LED上。我们用单片机AT89C2051的PP3.4和P3.5两个I/O口外接微动开关来实现时和分的校正,每按一次小时或分值加1,连续按下数值累计下去,实现时钟的校准。(二)源程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;中断入口程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG0000HLJMPSTARTORG0003HRETIORG000BHLJMPINTT0ORG0013HRETIORG001BHLJMPINTT1ORG0023HRETIORG002BHRETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START:MOVR0,#70HMOVR7,#0BHMOV20H,#00HCLEARDISP:MOV@R0,#00HINCR0DJNZR7,CLEARDISPMOV7AH,#0AHMOVTMOD,#11HMOVTL0,#0B0HMOVTH0,#3CHMOVTL1,#0B0HMOVTH1,#3CHSETBEASETBET0SETBTR0MOVR4,#14Hstart1:LCALLDISPLAYJNBP3.7,SETMM1SJMPStart1SETMM1:LJMPSETMM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1秒定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;INTT0:PUSHACCPUSHPSWCLRET0CLRTR0MOVA,#0B7H;中断同步修正ADDA,TL0MOVTL0,AMOVA,#3CHADDA,TH0MOVTH0,ASETBTR0DJNZR4,OUTT0ADDSS:MOVR4,#14H作者:lull08152006-7-400:22回复此发言2基于单片机89C2051实现可编程时钟MOVR0,#71HACALLADD1;加1程序MOVA,R3CLRCCJNEA,#60H,ADDMMADDMM:JCOUTT0ACALLCLR0MOVR0,#77HACALLADD1MOVA,R3CLRCCJNEA,#60H,ADDHHADDHH:JCOUTT0ACALLCLR0MOVR0,#79HACALLADD1MOVA,R3CLRCCJNEA,#24H,HOURHOUR:JCOUTT0ACALLCLR0OUTT0:MOV72H,76HMOV73H,77HMOV74H,78HMOV75H,79HPOPPSWPOPACCSETBET0RETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;闪动调时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;INTT1:PUSHACCPUSHPSWMOVTL1,#0B0HMOVTH1,#3CHDJNZR2,INTT1OUTMOVR2,#06HCPL02HJB02H,FLASH1MOV72H,76HMOV73H,77HMOV74H,78HMOV75H,79HINTT1OUT:POPPSWPOPACCRETIFLASH1:JB01H,FLASH2MOV72H,7AHMOV73H,7AHMOV74H,78HMOV75H,79HAJMPINTT1OUTFLASH2:MOV72H,76HMOV73H,77HMOV74H,7AHMOV75H,7AHAJMPINTT1OUT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;加1程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADD1:MOVA,@R0DECR0SWAPAORLA,@R0ADDA,#01HDAAMOVR3,AANLA,#0FHMOV@R0,AMOVA,R3INCR0SWAPAANLA,#0FHMOV@R0,ARET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;清零程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CLR0:CLRAMOV@R0,ADECR0MOV@R0,ARET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;时钟调整程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SETMM:cLRET0CLRTR0LCALLDL1SJBP3.7,CLOSEDISMOVR2,#06HSETBET1SETBTR1SET2:JNBP3.7,SET1作者:lull08152006-7-400:22回复此发言3基于单片机89C2051实现可编程时钟SETB00HSET4:JBP3.7,SET3LCALLDL05SJNBP3.7,SETHHMOVR0,#77H;加1分程序LCALLADD1MOVA,R3CLRCCJNEA,#60H,HHHHHH:JCSET4LC...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

基于单片机89C2051实现可编程时钟

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部