標(biāo)題: 單片機(jī)電子鐘制作 數(shù)碼管顯示小時(shí)—分鐘—秒 有程序 實(shí)物圖 [打印本頁]
作者: lianlian 時(shí)間: 2015-7-9 23:25
標(biāo)題: 單片機(jī)電子鐘制作 數(shù)碼管顯示小時(shí)—分鐘—秒 有程序 實(shí)物圖
本電子時(shí)鐘主要是由AT89S51單片機(jī)及8個(gè)共陽數(shù)碼管組成。由于數(shù)碼管引腳比較多,占用單片機(jī)的I\O口也比較多,由于單片機(jī)最多只有32個(gè)I\O口,在數(shù)碼管比較多時(shí)(兩個(gè)以上),就滿足不了實(shí)際需要,因此在數(shù)碼管比較多時(shí),采用動(dòng)態(tài)掃描的方式使數(shù)碼管逐個(gè)點(diǎn)亮。本電子時(shí)鐘就是采用的這種顯示方式。利用取表指令“MOV DPTR,#TABLE與MOVC A,@A+DPTR”和條件轉(zhuǎn)移指令“CJNE A,#data,rel”所要顯示的時(shí)間送入單片機(jī)的端口(P0口和P2口)并放大后,驅(qū)動(dòng)數(shù)碼管顯示出所要顯示的具體時(shí)間。采用單片機(jī)內(nèi)部定時(shí)器定時(shí),計(jì)數(shù),時(shí)間非常準(zhǔn)確!
顯示的時(shí)間格式為:12—00—00,即“小時(shí)—分鐘—秒”。P0口為數(shù)碼管的各段位接口,P2口為8個(gè)數(shù)碼管的電源端。P3.2口為“小時(shí)”調(diào)整,P3.3口為“分鐘”調(diào)整,P3.4口為“秒”調(diào)整。但每個(gè)調(diào)整鍵只能加,不能減。晶振為12MHZ。
匯編源程序如下:
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
HOURK BIT P3.2
MINITEK BIT P3.3
SECONDK BIT P3.4
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP EQU 4BH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV SECOND,#00H
MOV MINITE,#00H
MOV HOUR,#12
MOV DISPBIT,#00H
MOV T2SCNTA,#00H
MOV T2SCNTB,#00H
MOV TEMP,#0FEH
LCALL DISP
MOV TMOD,#01H
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT:JB SECONDK,NK1
LCALL DELY10MS
JB SECONDK,NK1
INC SECOND
MOV A,SECOND
CJNE A,#60,NS60
MOV SECOND,#00H
NS60:LCALL DISP
JNB SECONDK,$
NK1:JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
INC MINITE
MOV A,MINITE
CJNE A,#60,NM60
MOV MINITE,#00H
NM60:LCALL DISP
JNB MINITEK,$
NK2:JB HOURK,NK3
LCALL DELY10MS
JB HOURK,NK3
INC HOUR
MOV A,HOUR
CJNE A,#24,NH24
MOV HOUR,#00H
NH24:LCALL DISP
JNB HOURK,$
NK3:LJMP WT
DELY10MS:MOV R6,#10
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DISP:MOV A,#DISPBUF
ADD A,#8
DEC A
MOV R1,A
MOV A,HOUR
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV @R1,A
DEC R1
MOV A,MINITE
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV@R1,A
DEC R1
MOV A,SECOND
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
RET
INT_T0:MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
MOV A,#DISPBUF
ADD A,DISPBIT
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,DISPBIT
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
INC DISPBIT
MOV A,DISPBIT
CJNE A,#08H,KNA
MOV DISPBIT,#00H
KNA:INC T2SCNTA
MOV A,T2SCNTA
CJNE A,#100,DONE
MOV T2SCNTA,#00H
INC T2SCNTB
MOV A,T2SCNTB
CJNE A,#05H,DONE
MOV T2SCNTB,#00H
INC SECOND
MOV A,SECOND
CJNE A,#60,NEXT
MOV SECOND,#00H
INC MINITE
MOV A,MINITE
CJNE A,#60,NEXT
MOV MINITE,#00H
INC HOUR
MOV A,HOUR
CJNE A,#24,NEXT
MOV HOUR,#00H
NEXT:LCALL DISP
DONE:RETI
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
END
本程序已通過實(shí)踐驗(yàn)證!!!
作者: snow2fox 時(shí)間: 2015-8-28 16:26
不錯(cuò),很好的資料,謝謝
作者: skywalker74520 時(shí)間: 2015-9-1 14:58
不錯(cuò) 但是準(zhǔn)確度可能不是很高吧 晶振提供的時(shí)基電路存在漂變 建議升級一個(gè)時(shí)鐘芯片版
作者: 舊歡如夢 時(shí)間: 2016-1-11 21:17
樓主,有電路圖嗎
作者: qwe160z 時(shí)間: 2016-1-14 07:54
不能減。晶振為12MHZ。
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |