51hei.gif (231.59 KB, 下載次數(shù): 32)
下載附件
2022-9-6 22:38 上傳
1 - Proteus 8 Professional - 原理圖繪制 2022_9_4 23_04_43.png (143.54 KB, 下載次數(shù): 29)
下載附件
2022-9-5 19:02 上傳
單片機(jī)匯編語(yǔ)言源程序如下:- //R1 秒 R2 分 R3 時(shí)
- SETUP BIT P3.0
- UP BIT P3.3
- OK BIT P3.5
- FLAG EQU 30H //0不設(shè)置 1設(shè)置時(shí) 2設(shè)置分 3設(shè)置秒
- ORG 0000H
- AJMP AA
- ORG 001BH
- LJMP DINGSHI
- ORG 0045H
- AA:
- MOV SP,#60H
- MOV TMOD,#10H
- MOV TH1,#3CH
- MOV TL1,#0B0H ;定時(shí)器1定時(shí)50毫秒
- MOV IE,#88H
- SETB TR1
- SETB F0
- LOOP:
- LCALL XIANSHI
- ACALL SHEZHI;設(shè)置時(shí)間
- SJMP LOOP
- DINGSHI:
- PUSH ACC
- PUSH PSW
- MOV TH1,#3CH
- MOV TL1,#0B0H
- INC R7
- CJNE R7,#14H,FH ;20次為1秒
- MOV R7,#00H
-
- INC R1
- CJNE R1,#3CH,FH ;60
- MOV R1,#00H
- INC R2
- CJNE R2,#3CH,FH ;60
- MOV R2,#00H
- INC R3
- CJNE R3,#18H,FH ;24
- MOV R3,#00H
- FH:
- POP PSW
- POP ACC
- RETI
- XIANSHI:
- MOV DPTR,#TABLE;共陽(yáng)段碼表
- INC R4
- MOV A,FLAG
- CJNE A,#1,XS //設(shè)置時(shí)的時(shí)候閃爍
- CLR C
- CJNE R4,#128,XS1 //相比較 看標(biāo)志位
- XS1:
- JC XS2 //R4小于128的時(shí)候不顯示時(shí) 大于等于128的時(shí)候顯示
- XS:
- MOV A,R3 //將時(shí)拆分為個(gè)位和十位 分別用一位數(shù)碼管顯示
- MOV B,#0AH
- DIV AB
- MOVC A,@A+DPTR //按數(shù)值取相應(yīng)的段碼
- MOV P0,A
- MOV P2,#0FEH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
- MOV A,B
- MOVC A,@A+DPTR
- MOV P0,A
- MOV P2,#0FDH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
- XS2:
- MOV P0,#40H //顯示橫杠‘-’
- MOV P2,#0FBH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
-
- MOV A,FLAG
- CJNE A,#2,XF //設(shè)置分的時(shí)候閃爍
- CLR C
- CJNE R4,#128,XF1 //相比較 看標(biāo)志位
- XF1:
- JC XF2 //R4小于128的時(shí)候不顯示分 大于等于128的時(shí)候顯示
- XF:
- MOV A,R2 //將分拆分為個(gè)位和十位 分別用一位數(shù)碼管顯示
- MOV B,#0AH
- DIV AB
- MOVC A,@A+DPTR //按數(shù)值取相應(yīng)的段碼
- MOV P0,A
- MOV P2,#0F7H
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
- MOV A,B
- MOVC A,@A+DPTR
- MOV P0,A
- MOV P2,#0EFH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
- XF2:
- MOV P0,#40H //顯示橫杠‘-’
- MOV P2,#0DFH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
-
- MOV A,FLAG
- CJNE A,#3,XM //設(shè)置秒的時(shí)候閃爍
- CLR C
- CJNE R4,#128,XM1 //相比較 看標(biāo)志位
- XM1:
- JC XM2 //R4小于128的時(shí)候不顯示秒 大于等于128的時(shí)候顯示
- XM:
- MOV A,R1 //將秒拆分為個(gè)位和十位 分別用一位數(shù)碼管顯示
- MOV B,#0AH
- DIV AB
- MOVC A,@A+DPTR //按數(shù)值取相應(yīng)的段碼
- MOV P0,A
- MOV P2,#0BFH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
-
- MOV A,B
- MOVC A,@A+DPTR
- MOV P0,A
- MOV P2,#7FH
- DJNZ R5,[ DISCUZ_CODE_1 ]nbsp;
- MOV P2,#0FFH
- XM2:
- RET
- SHEZHI:
- JB SETUP,K0
- JNB SETUP,$
- CLR TR1 //設(shè)置的時(shí)候停止定時(shí)器
- INC FLAG
- MOV A,FLAG
- CJNE A,#4,SR
- MOV FLAG,#1
- SJMP SR
- K0:
- JB OK,K1
- JNB OK,$
- MOV FLAG,#0 //退出設(shè)置模式
- SETB TR1 //設(shè)置完之后啟動(dòng)定時(shí)器
- SJMP SR
- K1:
- MOV A,FLAG
- JZ SR //A為0則跳轉(zhuǎn)到SR
- JB UP,SR
- JNB UP,$
- CJNE A,#1,K2
- INC R3
- CJNE R3,#24,SR
- MOV R3,#0
- SJMP SR
- K2:
- CJNE A,#2,K3
- INC R2
- CJNE R2,#60,SR
- MOV R2,#0
- SJMP SR
- K3:
- CJNE A,#3,SR
- INC R1
- CJNE R1,#60,SR
- MOV R1,#0
- SJMP SR
- SR:
- RET
-
- TABLE:
- DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0-9
- END
復(fù)制代碼
匯編Keil代碼與Proteus8.8仿真下載:
仿真代碼.7z
(49.45 KB, 下載次數(shù): 69)
2022-9-6 22:39 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|