|
顯示用LED顯示
0.jpg (51.19 KB, 下載次數(shù): 70)
下載附件
2017-12-29 02:47 上傳
0.png (7.9 KB, 下載次數(shù): 55)
下載附件
2017-12-29 02:48 上傳
單片機(jī)源程序如下:
- ;;;;;;;;;;;;;;;電子時(shí)鐘;;;;;;;;;;;;;;;
- ;;;定時(shí)計(jì)數(shù)器方式2,每次定時(shí)100us;;;;;
- ;;;;;;;;;;;;;;;晶振:6MHZ;;;;;;;;;;;;;
- ORG 0000H
- AJMP MAIN
- ORG 000BH //T0中斷入口地址
- LJMP IT0P
- ORG 0100H
- MAIN: MOV SP,#60H
- MOV TMOD,#02H //設(shè)置T0方式為方式2
- MOV TL0,#0CEH //給T0裝入計(jì)數(shù)初值
- MOV TH0,#0CEH
- SETB ET0 //開啟中斷
- SETB TR0
- SETB PT0
- SETB EA
- MOV R7,#0FAH //1s循環(huán)次數(shù)
- MOV R6,#28H
- MOV 54H,#03H //時(shí)個(gè)位存儲(chǔ)單元
- MOV 55H,#02H //時(shí)十位存儲(chǔ)單元
- MOV 52H,#09H //分個(gè)位存儲(chǔ)單元
- MOV 53H,#05H //分十位存儲(chǔ)單元
- MOV 50H,#00H //秒個(gè)位存儲(chǔ)單元
- MOV 51H,#03H //秒十位存儲(chǔ)單元
- HERE: LCALL DISP //調(diào)用顯示子程序
- JNB P3.0,MIN
- JNB P3.1,HOUR
- SJMP HERE
- MIN: LCALL SETM
- SJMP HERE
- HOUR: LCALL KEY2
- SJMP HERE
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- IT0P: CLR EA
- CLR TR0 //保護(hù)現(xiàn)場(chǎng)
- PUSH Acc
- PUSH PSW
- SETB TR0
- DJNZ R7,RETURN //判斷定時(shí)時(shí)間是否到25ms
- MOV R7,#0FAH //重裝定時(shí)常數(shù)
- DJNZ R6,RETURN //判斷是否到1s,不到1s繼續(xù)計(jì)時(shí)
- MOV R6,#028H //重裝定時(shí)常數(shù)
- MOV A,50H //將秒的個(gè)位與10相比較,到10則將其清零,之后加1并將其放在50H存儲(chǔ)
- INC A
- MOV 50H,A
- CJNE A,#0AH,RETURN
- CLR A
- MOV 50H,A
- MOV A,51H //將秒的十位與6相比較,到6則將其清零,之后加1并將其放在51H存儲(chǔ)
- INC A
- MOV 51H,A
- CJNE A,#06H,RETURN
- CLR A
- MOV 51H,A
- MOV A,52H //將分的個(gè)位與10相比較,到10則將其清零,之后加1并將其放在52H存儲(chǔ)
- INC A
- MOV 52H,A
- CJNE A,#0AH,RETURN
- CLR A
- MOV 52H,A
- MOV A,53H //將分的十位與6相比較,到6則將其清零,之后加1并將其放在53H存儲(chǔ)
- INC A
- MOV 53H,A
- CJNE A,#06H,RETURN
- CLR A
- MOV 53H,A
- MOV A,54H //將時(shí)的個(gè)位與4相比較,不到4則跳出,到4則進(jìn)行時(shí)十位的比較
- INC A
- CJNE A,#04H,RETURN
- MOV A,55H //若時(shí)個(gè)位大于等于4,十位小于2時(shí)則跳轉(zhuǎn)
- CJNE A,#02H,LOOP
- CLR A //24時(shí)到時(shí)將其個(gè)位、十位清零
- MOV 54H,A
- MOV 55H,A
- LJMP RETURN
- LOOP: MOV A,54H //判斷時(shí)個(gè)位是否到10,到10則進(jìn)位(時(shí)十位加1),不到10則跳出
- CJNE A,#0AH,RETURN
- MOV A,55H
- INC A
- MOV 55H,A
- RETURN: CLR EA //恢復(fù)現(xiàn)場(chǎng)
- POP PSW
- POP Acc
- SETB EA
- RETI
- ;;;;;;;;;;;;;;;;;;;;;;調(diào)時(shí)、調(diào)分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SETM: CLR TR0
- LCALL DISP
- LCALL DISP
- JB P3.0,OUT
- STM1: LCALL DISP
- LCALL DISP
- JNB P3.0,STM1
- MOV A,54H //將時(shí)的個(gè)位與4相比較,不到4則跳出,到4則進(jìn)行時(shí)十位的比較
- ADD A,#01H
- MOV 54H,A
- CJNE A,#04H,HX
- HX: JC OUT
- MOV A,55H //若時(shí)個(gè)位大于等于4,十位小于2時(shí)則跳轉(zhuǎn)
- CJNE A,#02H,LOOP0
- CLR A //24時(shí)到時(shí)將其個(gè)位、十位清零
- MOV 54H,A
- MOV 55H,A
- LJMP OUT
- LOOP0:MOV A,54H //判斷時(shí)個(gè)位是否到10,到10則進(jìn)位(時(shí)十位加1),不到10則跳出
- CJNE A,#0AH,OUT
- MOV 54H,#00H
- MOV A,55H
- ADD A,#01H
- MOV 55H,A
- OUT: SETB TR0
- RET
- KEY2:
- OUT1: RET
- ;;;;;;;;;;;;;;;;;;;;;;;顯示子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- DISP: MOV R0,#01H //位選信號(hào),選中最右邊八段數(shù)碼管
- MOV R1,#50H
- CIR: MOV A,R0
- MOV P1,A //把01H送給P1口控制最右端的八段數(shù)碼管
- MOV DPTR,#TAB //表首值送給DPTR
- MOV A,@R1
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
(電子時(shí)鐘).rar
(51.2 KB, 下載次數(shù): 25)
2017-12-28 22:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|