51單片機(jī)時(shí)鐘匯編程序
電路板和原件要另外找,南寧市的電子元件稀少得真難找啊,弄好后焊接,看來要找個(gè)好點(diǎn)的焊臺(tái),這樣焊接電路時(shí)比較方便。
本文引用地址:http://m.butianyuan.cn/article/201612/324116.htm電路如下:
;簡(jiǎn)單的89C2051時(shí)鐘程序
;顯示方式為.12:34之12小時(shí)制
;P1口輸出段數(shù)據(jù),P3口輸出位數(shù)據(jù)
;P1.7為秒點(diǎn),P3.7為PM輸出
;P3.4校時(shí),P3.5校分
;晶振12MHz
flash equ 31h
sec equ 32h ;定義秒存儲(chǔ)位置
min equ 33h ;定義分存儲(chǔ)位置
hour equ 34h
hourk bit p3.4 ;調(diào)時(shí)按鈕
mink bit p3.5 ;調(diào)分按鈕
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 ;重設(shè)堆棧指針
setb pm ;PM清0
mov p1,#0ffh
mov p3,#0ffh
mov tmod,#01h ;設(shè)定定時(shí)器0工作于方式1
mov tl0,#0b0h ;設(shè)定定時(shí)初始值50ms
mov th0,#3ch
setb ea ;啟動(dòng)定時(shí)
setb et0
setb tr0
key: lcall disp ;按鍵處理子程序
jb hourk,mmm
hhh: lcall disp
jnb hourk,hhh
inc hour ;時(shí)加1
mov a,hour
cjne a,#12,ppp
cpl pm ;PM取反
ppp: cjne a,#13,key
mov hour,#01h ;12小時(shí)到,清零.
mmm: jb mink,key
nnn: lcall disp
jnb mink,nnn
inc min
mov a,min
cjne a,#60,key
mov min,#00h ;一小時(shí)時(shí)間到
ajmp key
int_t0:push acc ;保護(hù)現(xiàn)場(chǎng)
mov tl0,#0b0h ;賦定時(shí)初值
mov th0,#3ch
inc 30h ;20H地址加1
mov a,30h
cjne a,#10,reti1
mov 30h,#00h ;半秒鐘時(shí)間到
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 ;一分鐘時(shí)間到
inc min ;分加1
mov a,min
cjne a,#60,reti1
mov min,#00h ;一小時(shí)時(shí)間到
inc hour ;時(shí)加1
mov a,hour
cjne a,#12,cont
cpl pm ;PM取反
cont: cjne a,#13,reti1
mov hour,#01h ;12小時(shí)到,清零.
reti1: pop acc ;恢復(fù)現(xiàn)場(chǎng)
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
評(píng)論