51hei.gif (231.59 KB, 下載次數: 32)
下載附件
2022-9-6 22:38 上傳
1 - Proteus 8 Professional - 原理圖繪制 2022_9_4 23_04_43.png (143.54 KB, 下載次數: 29)
下載附件
2022-9-5 19:02 上傳
單片機匯編語言源程序如下:- //R1 秒 R2 分 R3 時
- SETUP BIT P3.0
- UP BIT P3.3
- OK BIT P3.5
- FLAG EQU 30H //0不設置 1設置時 2設置分 3設置秒
- ORG 0000H
- AJMP AA
- ORG 001BH
- LJMP DINGSHI
- ORG 0045H
- AA:
- MOV SP,#60H
- MOV TMOD,#10H
- MOV TH1,#3CH
- MOV TL1,#0B0H ;定時器1定時50毫秒
- MOV IE,#88H
- SETB TR1
- SETB F0
- LOOP:
- LCALL XIANSHI
- ACALL SHEZHI;設置時間
- 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;共陽段碼表
- INC R4
- MOV A,FLAG
- CJNE A,#1,XS //設置時的時候閃爍
- CLR C
- CJNE R4,#128,XS1 //相比較 看標志位
- XS1:
- JC XS2 //R4小于128的時候不顯示時 大于等于128的時候顯示
- XS:
- MOV A,R3 //將時拆分為個位和十位 分別用一位數碼管顯示
- MOV B,#0AH
- DIV AB
- MOVC A,@A+DPTR //按數值取相應的段碼
- 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 //設置分的時候閃爍
- CLR C
- CJNE R4,#128,XF1 //相比較 看標志位
- XF1:
- JC XF2 //R4小于128的時候不顯示分 大于等于128的時候顯示
- XF:
- MOV A,R2 //將分拆分為個位和十位 分別用一位數碼管顯示
- MOV B,#0AH
- DIV AB
- MOVC A,@A+DPTR //按數值取相應的段碼
- 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 //設置秒的時候閃爍
- CLR C
- CJNE R4,#128,XM1 //相比較 看標志位
- XM1:
- JC XM2 //R4小于128的時候不顯示秒 大于等于128的時候顯示
- XM:
- MOV A,R1 //將秒拆分為個位和十位 分別用一位數碼管顯示
- MOV B,#0AH
- DIV AB
- MOVC A,@A+DPTR //按數值取相應的段碼
- 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 //設置的時候停止定時器
- INC FLAG
- MOV A,FLAG
- CJNE A,#4,SR
- MOV FLAG,#1
- SJMP SR
- K0:
- JB OK,K1
- JNB OK,$
- MOV FLAG,#0 //退出設置模式
- SETB TR1 //設置完之后啟動定時器
- SJMP SR
- K1:
- MOV A,FLAG
- JZ SR //A為0則跳轉到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
復制代碼
匯編Keil代碼與Proteus8.8仿真下載:
仿真代碼.7z
(49.45 KB, 下載次數: 69)
2022-9-6 22:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|