?? code.asm
字號:
DB 01FH,03FH,07FH,07FH,0FFH,0FFH,0E0H,0C0H
DB 000H,000H,0C3H,0CFH,0FFH,0FFH,07FH,07FH
DB 03FH,01FH,00FH,000H,000H,000H,000H,000H
DISP6TAB2: DB 000H,000H,000H,000H,01FH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,030H
DB 030H,070H,087H,0C7H,0E7H,0E7H,0E7H,0E3H
DB 0E3H,0C1H,080H,000H,000H,000H,000H,000H
DISP6TAB3: DB 000H,000H,000H,000H,0F8H,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,080H
DB 000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,03FH,000H,000H,000H,000H
DISP6TAB4: DB 000H,000H,000H,000H,000H,080H,0E0H,0F0H
DB 0F8H,0FCH,0FEH,0FEH,0FFH,0FFH,003H,000H
DB 000H,003H,0FFH,0FFH,0FFH,0FEH,0FEH,0FCH
DB 0F8H,0F0H,0E0H,000H,000H,000H,000H,000H
DISP7: MOV A, R2
MOV DPTR,#DISP7TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP7TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP7TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP7TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP7TAB1: DB 000H,000H,000H,000H,000H,000H,000H,07FH
DB 0FFH,03EH,03EH,07EH,07EH,0FEH,0FEH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,07FH,07FH,07EH
DB 07CH,0F8H,0E0H,000H,000H,000H,000H,000H
DISP7TAB2: DB 000H,000H,000H,000H,000H,000H,0C0H,0C0H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 001H,003H,007H,00FH,03FH,038H,060H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP7TAB3: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,001H,00FH,01FH,07FH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,001H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP7TAB4: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,0F8H,0FCH,0FEH,0FFH,0FFH
DB 0FFH,0FFH,0FEH,0FEH,0F8H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP8: MOV A, R2
MOV DPTR,#DISP8TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP8TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP8TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP8TAB4
MOVC A,@A+DPTR
MOV D4, A
MOV A, R2
LJMP SHOW
DISP8TAB1: DB 000H,000H,000H,000H,000H,007H,01FH,03FH
DB 07FH,07FH,0FFH,0FFH,0FFH,0FFH,0C0H,000H
DB 000H,0C0H,0FFH,0FFH,0FFH,0FFH,07FH,07FH
DB 03FH,01FH,007H,000H,000H,000H,000H,000H
DISP8TAB2: DB 000H,000H,000H,000H,000H,0E0H,0F0H,0F8H
DB 0FCH,0FCH,0FEH,0FFH,0FFH,0FFH,003H,000H
DB 000H,003H,0FFH,0FFH,0FFH,0FEH,0FCH,0FCH
DB 0F8H,0F0H,0E0H,000H,000H,000H,000H,000H
DISP8TAB3: DB 000H,000H,000H,000H,007H,01FH,03FH,07FH
DB 07FH,0FFH,0FFH,0FFH,0FFH,0FFH,080H,000H
DB 000H,080H,0FFH,0FFH,0FFH,0FFH,0FFH,07FH
DB 07FH,03FH,01FH,007H,000H,000H,000H,000H
DISP8TAB4: DB 000H,000H,000H,000H,0E0H,0F8H,0FCH,0FEH
DB 0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,007H,003H
DB 003H,007H,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH
DB 0FEH,0FCH,0F8H,0E0H,000H,000H,000H,000H
DISP9: MOV A, R2
MOV DPTR,#DISP9TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP9TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP9TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP9TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP9TAB1: DB 000H,000H,000H,000H,001H,007H,00FH,01FH
DB 03FH,07FH,07FH,0FFH,0FFH,0FFH,0E0H,0C0H
DB 000H,0C0H,0C0H,0FFH,0FFH,07FH,03FH,03FH
DB 01FH,00FH,003H,000H,000H,000H,000H,000H
DISP9TAB2: DB 000H,000H,000H,000H,0FCH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,001H,000H
DB 001H,000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,01FH,000H,000H,000H
DISP9TAB3: DB 000H,000H,000H,000H,000H,000H,081H,0C3H
DB 0C7H,0E7H,0E7H,0E7H,0E7H,0E3H,0E1H,0C0H
DB 080H,000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0F8H,000H,000H,000H
DISP9TAB4: DB 000H,000H,000H,000H,000H,000H,0F0H,0F8H
DB 0FCH,0FEH,0FEH,0FFH,0FFH,0F7H,0C3H,000H
DB 000H,003H,007H,0FFH,0FFH,0FEH,0FEH,0FCH
DB 0F8H,0F0H,0C0H,000H,000H,000H,000H,000H
DISPT: MOV A, R2
MOV DPTR,#DISPTTAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISPTTAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISPTTAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISPTTAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISPTTAB1: DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H
DISPTTAB2: DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DISPTTAB3: DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DISPTTAB4: DB 01H,02H,04H,08H,10H,20H,40H,80H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H
SHOW:
MOV A,D1 ;用于第一位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
SHOW1: RRC A ;左移A,待發射的數據壓入發射倉C
MOV HC595DS1,C ;數據發射,目標74HC595一區數據端!
SETB HC595SH ;上升沿,74HC595一區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,SHOW1 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB HC595ST1 ;發射完8位用上升沿命令74HC595一區做好存儲工作
NOP ;喘口氣
CLR HC595ST1 ;存儲端回歸
;報告長官,74HC595一區數據發射完畢!準備二區發射
MOV A,D2 ;用于第二位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
SHOW2: RRC A ;左移A,待發射的數據壓入發射倉C
MOV HC595DS2,C ;數據發射,目標74HC595二區數據端!
SETB HC595SH ;上升沿,74HC595二區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,SHOW2 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB HC595ST2 ;發射完8位用上升沿命令74HC595二區做好存儲工作
NOP ;喘口氣
CLR HC595ST2 ;存儲端回歸
;報告長官,74HC595二區數據發射完畢!準備三區發射
MOV A,D3 ;用于第三位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
SHOW3: RRC A ;左移A,待發射的數據壓入發射倉C
MOV HC595DS3,C ;數據發射,目標74HC595三區數據端!
SETB HC595SH ;上升沿,74HC595三區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,SHOW3 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB HC595ST3 ;發射完8位用上升沿命令74HC595三區做好存儲工作
NOP ;喘口氣
CLR HC595ST3 ;存儲端回歸
;報告長官,74HC595三區數據發射完畢!準備四區發射
MOV A,D4 ;用于第四位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
SHOW4: RRC A ;左移A,待發射的數據壓入發射倉C
MOV HC595DS4,C ;數據發射,目標74HC595四區數據端!
SETB HC595SH ;上升沿,74HC595四區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,SHOW4 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB HC595ST4 ;發射完8位用上升沿命令74HC595四區做好存儲工作
NOP ;喘口氣
CLR HC595ST4 ;存儲端回歸
;報告長官,74HC595一到四區數據全部發射完畢!
;------------------------------------------------------
;For simulation
;------------------------------------------------------
MOV A, R2
MOV B, #8
DIV AB
ADD A, #D5
MOV R0, A
MOV R4, B
MOV A, #07FH
ROTATE1: RR A
DJNZ R4, ROTATE1
MOV @R0, A
MOV A,D5 ;用于第一位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
ROWS1: RRC A ;左移A,待發射的數據壓入發射倉C
MOV RHC595DS1,C ;數據發射,目標74HC595一區數據端!
SETB HC595SH ;上升沿,74HC595一區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,ROWS1 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB RHC595ST1 ;發射完8位用上升沿命令74HC595一區做好存儲工作
NOP ;喘口氣
CLR RHC595ST1 ;存儲端回歸
;報告長官,74HC595一區數據發射完畢!準備二區發射
MOV A,D6 ;用于第二位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
ROWS2: RRC A ;左移A,待發射的數據壓入發射倉C
MOV RHC595DS2,C ;數據發射,目標74HC595二區數據端!
SETB HC595SH ;上升沿,74HC595二區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,ROWS2 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB RHC595ST2 ;發射完8位用上升沿命令74HC595二區做好存儲工作
NOP ;喘口氣
CLR RHC595ST2 ;存儲端回歸
;報告長官,74HC595二區數據發射完畢!準備三區發射
MOV A,D7 ;用于第三位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
ROWS3: RRC A ;左移A,待發射的數據壓入發射倉C
MOV RHC595DS3,C ;數據發射,目標74HC595三區數據端!
SETB HC595SH ;上升沿,74HC595三區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,ROWS3 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB RHC595ST3 ;發射完8位用上升沿命令74HC595三區做好存儲工作
NOP ;喘口氣
CLR RHC595ST3 ;存儲端回歸
;報告長官,74HC595三區數據發射完畢!準備四區發射
MOV A,D8 ;用于第四位顯示的八位數據到A待機
MOV R1,#8 ;發射計數值為8!
ROWS4: RRC A ;左移A,待發射的數據壓入發射倉C
MOV RHC595DS4,C ;數據發射,目標74HC595四區數據端!
SETB HC595SH ;上升沿,74HC595四區移位!準備接收下一位數據!
NOP ;喘口氣
CLR HC595SH ;移位端回歸
DJNZ R1,ROWS4 ;發射了8位了么?沒有的話計數減1返回繼續發射!
SETB RHC595ST4 ;發射完8位用上升沿命令74HC595四區做好存儲工作
NOP ;喘口氣
CLR RHC595ST4 ;存儲端回歸
;報告長官,74HC595一到四區數據全部發射完畢!
;----------------------------------------------------------------------------------------------
LCALL D500MS
INC R2
AJMP R132
JD1: LJMP DISPLAY1
R132: CJNE R2, #DISPUW, JD1
RET
;下班了
;***************************************************
;HALL INTERRUPTION AREA
;***************************************************
HALLDETECT:
MOV DPTR, #LABLE1
POP ACC
POP ACC
PUSH DPL
PUSH DPH
RETI
LABLE1: MOV DPTR, #MAIN
POP ACC
POP ACC
PUSH DPL
PUSH DPH
RETI
;***************************************************
;延時子程序
;***************************************************
D1MS: MOV R3,#02H ;1ms延時
D1MSL2: MOV R4,#0FFH
D1MSL1: DJNZ R4,D1MSL1
DJNZ R3,D1MSL2
RET
D500MS: MOV R6,#08H ;100ms延時
D500MSL4: MOV R5,#0AH
D500MSL3: MOV R3,#02H
D500MSL2: MOV R4,#0FFH
D500MSL1: DJNZ R4,D500MSL1
DJNZ R3,D500MSL2
DJNZ R5,D500MSL3
DJNZ R6,D500MSL4
RET
D750MS: MOV R6,#4BH ;750ms延時
D750MSL4: MOV R5,#0AH
D750MSL3: MOV R3,#02H
D750MSL2: MOV R4,#0FFH
D750MSL1: DJNZ R4,D750MSL1
DJNZ R3,D750MSL2
DJNZ R5,D750MSL3
DJNZ R6,D750MSL4
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -