您的位置 首页 电源

51单片机时钟汇编程序

终于到了……感动ing自己也可以DIY一个电子时钟了。电路板和原件要另外找,南宁市的电子元件稀少得真难找啊,弄好后焊接,看来要找个好

总算到了……感动ing…自己也能够DIY一个电子时钟了。

电路板和原件要另外找,南宁市的电子元件稀少得真难找啊,弄好后焊接,看来要找个好点的焊台,这样焊接电路时比较便利。

电路如下:

;简略的89C2051时钟程序
;显现方法为.12:34之12小时制
;P1口输出段数据,P3口输出位数据
;P1.7为秒点,P3.7为PM输出
;P3.4校时,P3.5校分
;晶振12MHz

flash equ 31h
sec equ 32h ;界说秒存储方位
min equ 33h ;界说分存储方位
hour equ 34h
hourk bit p3.4 ;调时按钮
mink bit p3.5 ;调分按钮
pm bit p3.7 ;PM输出端
org 0000h
ajmp start
org 000bh
ajmp int_t0
org 0100h
start: mov a,#00h ;清0
mov 30h,a
movflash,a
mov sec,a ;秒清0
mov min,#00 ;辨明0
mov hour,#12
mov sp,#60h ;重设仓库指针
setb pm ;PM清0
mov p1,#0ffh
mov p3,#0ffh
mov tmod,#01h ;设定守时器0作业于方法1
mov tl0,#0b0h ;设定守时初始值50ms
mov th0,#3ch
setb ea ;发动守时
setb et0
setb tr0
key: lcall disp ;按键处理子程序
jb hourk,mmm
hhh: lcall disp
jnb hourk,hhh
inc hour ;时加1
mov a,hour
cjne a,#12,ppp
cpl pm ;PM取反
ppp: cjne a,#13,key
mov hour,#01h ;12小时到,清零.
mmm: jb mink,key
nnn: lcall disp
jnb mink,nnn
inc min
mov a,min
cjne a,#60,key
mov min,#00h ;一小时时刻到
ajmp key
int_t0:push acc ;维护现场
mov tl0,#0b0h ;赋守时初值
mov th0,#3ch
inc 30h ;20H地址加1
mov a,30h
cjne a,#10,reti1
mov 30h,#00h ;半秒钟时刻到
inc flash ;半秒加1
mov a,flash
cjne a,#2,reti1
movflash,#00h
inc sec ;秒加1
mov a,sec
cjne a,#60,reti1
mov sec,#00h ;一分钟时刻到
inc min ;分加1
mov a,min
cjne a,#60,reti1
mov min,#00h ;一小时时刻到
inc hour ;时加1
mov a,hour
cjne a,#12,cont
cpl pm ;PM取反
cont: cjne a,#13,reti1
mov hour,#01h ;12小时到,清零.
reti1: pop acc ;康复现场
reti ;中止回来
disp: mov a,#10
mov b,a
mov a,hour
div ab
cjne a,#01,zero
jmp normal
zero: mov a,#10 ;消隐无效零
normal:mov dptr,#tab
movc a,@a+dptr
mov p1,a
clr p3.0
lcall dely
setb p3.0
mov a,b
mov dptr,#tab
movc a,@a+dptr
mov p1,a
clr p3.1
lcall dely
setb p3.1
mov a,#10
mov b,a
mov a,min
div ab
mov dptr,#tab
movc a,@a+dptr
mov p1,a
clr p3.3
lcall dely
setb p3.3
mov a,b
mov dptr,#tab
movc a,@a+dptr
mov p1,a
clr p3.2
lcall dely
setb p3.2
mov a,flash
cjne a,#00,light
setb p1.7
lcall dely
jmp over
light: clr p1.7
lcall dely
over: ret ;子程序回来
tab: db 88h,0afh,91h,0a1h,0a6h,0e0h,0c0h,0adh,80h,0a0h,0ffh;共阳段码表0123456789不亮
dely: mov r6,#10
d1: mov r7,#20
d2: djnz r7,d2
djnz r6,d1
ret

end

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/255059.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部