原创 一个电子钟

2008-1-26 17:28 3462 4 6 分类: MCU/ 嵌入式
;这是个时钟的代码,能显示时分,秒用闪来代替,P0-3都是用来做数码管的显示的

;写了几天的代码,不是这些,这些只是代码中还能用的那些,写了几天的是那输入的程序。


;一个小小键盘居然写了几天,发现根本就没有用。是不是它耍我。


;一个小小的键盘,居然占了80%的代码


;居然写了那么多都是没用的代码


;这个时钟用定时器来计时,参数还没修正,这参数是单纯振荡1s的参数,我的晶振用的是11.0592M的,中断子程序和显示子程序的时间还没算上,每秒都有1-2ms的误差这误差不小,1天可能差半个钟了


;发现位的操作有待进一步学习


 SEC DATA 100H          ;秒
 MIN DATA 101H          ;分
 HOUR DATA 102H          ;时
 JS DATA 103H          ;定时器循环参数
 MING DATA 104H        ;分钟个位
 MINS DATA 105H  ;分针十位
 HOURG DATA 106H  ;时针个位
 HOURS DATA 107H  ;时针十位


 ORG 0000H
 AJMP MAIN
 ORG 000BH                 ;计时中断入口
 AJMP TIME


;********************************主程序,初始化************************************
 ORG 0030H
MAIN: MOV SP,60H
 MOV TMOD,#00010001B
 SETB TR0
 MOV JS,#014H
 MOV TH0,#04BH        ;计时延时参数
 MOV TL0,#06AH
 SETB ET0
 SETB EA
 MOV SEC,#0H
 MOV MIN,#0H
 MOV HOUR,#0H
 ACALL DISPLAY
 SJMP $
;********************************时间中断,判断时间********************************
TIME: MOV TH0,#04BH        ;键盘扫描延时参数
 MOV TL0,#06AH
 DJNZ JS,ING           ;等待1s开始计时
 MOV JS,#014H
 INC SEC              ;加1s,时,分,秒进位
 MOV A,SEC
 CJNE A,#60,ING1
 MOV SEC,#0H
 INC MIN
 MOV A,MIN
 CJNE A,#60,ING2
 MOV MIN,#0H
 INC HOUR
 MOV A,HOUR
 CJNE A,#24,ING
 MOV HOUR,#00H
ING1: NOP ;空指令,统一时间
 NOP
 NOP
 NOP
 NOP
 NOP
ING2: NOP ;空指令,统一时间
 NOP
 NOP
 NOP
 NOP
 NOP
 ACALL DISPLAY
ING: RETI


;***************************LED显示子程序*************************************
DISPLAY:MOV A,MIN ;显示分钟,十位个位分离显示
 MOV B,#10
 DIV AB
 MOV DPTR,#NUM
 MOVC A,@A+DPTR
 MOV P1,A
 MOV A,B
 MOVC A,@A+DPTR
 MOV P0,A
 MOV A,HOUR ;显示小时,十位个位分离显示
 MOV B,#10
 DIV AB
 MOV DPTR,#NUM
 MOVC A,@A+DPTR
 MOV P3,A
 MOV A,B
 MOVC A,@A+DPTR
 MOV P2,A
 MOV A,SEC
 JB ACC.0,ENTER
 CLR P2.7
ENTER: RET
 ORG 115H
NUM: DB 0C0H,0F9H,0A4H,0B0H,99H
 DB 92H,82H,0F8H,80H,90H
 
 END

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1353393 2008-3-14 15:58

刚学单片机,不过JB ACC.0,ENTER是可以用的,我把累加器A的第一位当作一个普通可以位操作的地址用了,你看得还真仔细,这程序在我的单片机板上实现了,后来我写了个带万年历还有定时和闹钟功能的,不过我觉得时钟还是我们初学者玩的,还是不放在这里好,这篇当作我初学单片机的验证,保留

用户1445525 2008-1-27 23:47

JB ACC.0,ENTER

错了吧。。。。

 

相关推荐阅读
用户1353393 2013-12-26 16:58
linux最小系统调试技巧
一块新的平台到手,怎么入手才能让板子能跑起来呢? 首先的看资源,先检查有什么接口,接口什么参数,接什么内存,接什么存储器。有什么特殊的接口,需不需要通信协议,胡乱搞清楚。  ...
用户1353393 2011-03-20 23:49
最近在玩Omap
最近在玩OMAP,学了什么PSC,EMIF,接口什么的。...
用户1353393 2009-03-13 18:46
十说电容 (转载)
在整理DCDC标准库的过程中,有个名词“电容的均方根电流”,我在电容的datasheet上怎么都找不到,只有叫“纹波电流”的,就Google了一下啊,发现原来是一个意思。RMS:root mean s...
用户1353393 2009-02-12 16:04
程序员生活规范
[日期:2008-7-10]来源:  作者:[字体:大 中 小]  被过滤广告    总感觉自己做事有点乱.这个学一点,那个学一点的.学习工作没什么规范,希望用此文章来改善自己的坏毛病.不知道要做什么...
用户1353393 2009-02-12 16:03
大学里的潜规则(转自天涯)
所谓大学里的潜规则,自然是指向那些非主流的,却被大学生们无声地、抑或是不得不遵循的、大家心照不宣的生存规矩。     潜规则1 :逃课是潇洒的行动?       正如校园里的顺口溜说的,必修课选逃,选...
用户1353393 2009-02-12 16:02
嵌入式硬件开发流程及工程师应具备的基本技能
[日期:2008-11-25]来源:bbs.mcuol.com  作者:[字体:大 中 小] 被过滤广告简单地总结一下硬件开发的基本过程:     1、明确硬件总体需求情况,如CPU处理能力、存储容量...
我要评论
2
4
关闭 站长推荐上一条 /3 下一条