?? 點陣.asm
字號:
ORG 0000H
AJMP READY
ORG 000BH
AJMP INT_0
;只需更改點陣數據和要顯示的總字數
READY:MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV SP,#70H
MOV 36H,#2D
MOV 37H,#00H
;************************************************
MOV 3AH,#10D ;設置要顯示的總字數
;************************************************
LCALL DATA_CHUSHI
SETB EA
SETB ET0
MOV TMOD,#01H
MOV TH0,#0A6H
MOV TL0,#00H
SETB TR0
;主程序
MAIN:ACALL DISP_READY
ACALL KEY
AJMP MAIN
;***********************************************
DATA_CHUSHI:MOV 35H,#00H
MOV 38H,#00H
MOV 39H,#01H ;初始化時已顯示第一個字
MOV 3BH,#0A0H ;暫存r0指向地址
MOV DPTR,#DATA1
MOV R0,#0A0H ;點陣數據存放地址
MOV 30H,#32D ;數據字節數
SEND_DATA0:MOV A,#00H
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ 30H,SEND_DATA0
;***********************************************
MOV R0,#0C0H ;點陣數據存放地址
MOV 30H,#32D ;數據字節數
SEND_DATA1:MOV A,#00H
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ 30H,SEND_DATA1
;***********************************************
MOV DPTR,#DATA1+32
MOV R0,#80H ;點陣數據存放地址
MOV 30H,#32D ;數據字節數
SEND_DATA2:MOV A,#00H
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ 30H,SEND_DATA2
RET
;***********************************************
KEY:MOV P3,#0FFH
MOV A,P3
ANL A,#00000011B
CJNE A,#00000011B,KEY_PANDUAN
RET
KEY_PANDUAN:MOV 34H,A
ACALL KEY_DELAY
MOV A,P3
ANL A,#00000011B
CJNE A,34H,KEY_EXIT
ACALL KEY_CHULI
KEY_EXIT: RET
;***************************
KEY_CHULI:JB ACC.0,KEY_2
MOV A,37H
ADD A,#40H
MOV 37H,A
LCALL DATA_CHUSHI
RET
KEY_2: JB ACC.1,KEY_CHULI_EXIT
INC 36H
INC 36H
MOV A,36H
CJNE A,#14D,CHANGE_36H
MOV A,#2D
CHANGE_36H:MOV 36H,A
MOV 35H,#00H
RET
KEY_CHULI_EXIT:RET
;***************************
KEY_DELAY:
DLY_LP1: MOV R1,#20
MOV R6,#50
DLY_LP2:
NOP
NOP
NOP
DJNZ R6,DLY_LP2
DJNZ R7,DLY_LP1
END_DLYMS:
RET
;***************************
;顯示程序
DISP_READY:MOV R0,3BH
MOV 30H,#16D
MOV 31H,#00H
DISP:MOV A,@R0
MOV P0,A
INC R0
MOV A,@R0
MOV P2,A
MOV P1,31H
ACALL DISP_DELAY
MOV P0,#00H
MOV P1,#0FFH
MOV P2,#00H
INC 31H
INC R0
DJNZ 30H,DISP
DISP_EXIT:
RET
;顯示延時
DISP_DELAY:MOV 32H,#2
D1:MOV 33H,#150
DJNZ 33H,$
DJNZ 32H,D1
RET
;中斷處理程序
INT_0:PUSH ACC
MOV TH0,#0A6H
MOV TL0,#00H
INC 35H
MOV A,35H
CJNE A,36H,INT0_EXIT
MOV 35H,#00H
ACALL WHICH_WAY
INT0_EXIT:POP ACC
RETI
;*********************************************
WHICH_WAY:MOV A,37H
CJNE A,#00H,WAY2
ACALL YIDONG1
RET
WAY2: CJNE A,#40H,WAY3
ACALL YIDONG2
RET
WAY3: CJNE A,#80H,WAY4
ACALL YIDONG3
RET
WAY4: ACALL YIDONG4
RET
;*********************************************
YIDONG1: MOV 50H,#0A1H
MOV 51H,#0C1H
MOV 3CH,#16D
INC 38H
MOV A,38H
CJNE A,#16D,YIDONG1_THEN1
MOV 38H,#00H
INC 39H
MOV A,39H
CJNE A,3AH,YIDONG1_THEN
MOV 39H,#00H
MOV DPTR,#DATA1
YIDONG1_THEN:
MOV 3CH,#32D
MOV R1,#0C0H
YIDONG1_SEND_DATA:MOV A,#00H
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC DPTR
DJNZ 3CH,YIDONG1_SEND_DATA
MOV 3CH,#16D
YIDONG1_THEN1:
MOV R1,51H
MOV A,@R1
RLC A
MOV @R1,A
DEC R1
MOV A,@R1
RLC A
MOV @R1,A
MOV R1,50H
MOV A,@R1
RLC A
MOV @R1,A
DEC R1
MOV A,@R1
RLC A
MOV @R1,A
INC 50H
INC 50H
INC 51H
INC 51H
DJNZ 3CH,YIDONG1_THEN1
RET
;*********************************************
YIDONG2:MOV 50H,#0A0H
MOV 51H,#80H
MOV 3CH,#16D
INC 38H
MOV A,38H
CJNE A,#16D,YIDONG2_THEN1
MOV 38H,#00H
INC 39H
MOV A,39H
CJNE A,3AH,YIDONG2_THEN
MOV 39H,#00H
MOV DPTR,#DATA1
YIDONG2_THEN:MOV 3CH,#32D
MOV R1,#80H
YIDONG2_SEND_DATA:MOV A,#00H
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC DPTR
DJNZ 3CH,YIDONG2_SEND_DATA
MOV 3CH,#16D
YIDONG2_THEN1:MOV R1,51H
MOV A,@R1
RRC A
MOV @R1,A
INC R1
MOV A,@R1
RRC A
MOV @R1,A
MOV R1,50H
MOV A,@R1
RRC A
MOV @R1,A
INC R1
MOV A,@R1
RRC A
MOV @R1,A
INC 50H
INC 50H
INC 51H
INC 51H
DJNZ 3CH,YIDONG2_THEN1
RET
;*********************************************
YIDONG3:INC 3BH
INC 3BH
MOV 30H,#01H
INC 38H
MOV A,38H
CJNE A,#16D,YIDONG3_EXIT
MOV 3BH,#0A0H
MOV 38H,#00H
MOV 3CH,#32D
MOV 50H,#0A0H
MOV 51H,#0C0H
YIDONG3_LOOP:MOV R1,51H
MOV A,@R1
MOV R1,50H
MOV @R1,A
INC 50H
INC 51H
DJNZ 3CH,YIDONG3_LOOP
INC 39H
MOV A,39H
CJNE A,3AH,YIDONG3_THEN
MOV 39H,#00H
MOV DPTR,#DATA1
YIDONG3_THEN:MOV R1,#0C0H
MOV 3CH,#32D
YIDONG3_THEN2:MOV A,#00H
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC DPTR
DJNZ 3CH,YIDONG3_THEN2
YIDONG3_EXIT:RET
;*********************************************
YIDONG4:DEC 3BH
DEC 3BH
MOV 30H,#01H
INC 38H
MOV A,38H
CJNE A,#16D,YIDONG4_EXIT
MOV 3BH,#0A0H
MOV 38H,#00H
MOV 3CH,#32D
MOV 50H,#0A0H
MOV 51H,#80H
YIDONG4_LOOP:MOV R1,51H
MOV A,@R1
MOV R1,50H
MOV @R1,A
INC 50H
INC 51H
DJNZ 3CH,YIDONG4_LOOP
INC 39H
MOV A,39H
CJNE A,3AH,YIDONG4_THEN
MOV 39H,#00H
MOV DPTR,#DATA1
YIDONG4_THEN:MOV R1,#80H
MOV 3CH,#32D
YIDONG4_THEN2:MOV A,#00H
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC DPTR
DJNZ 3CH,YIDONG4_THEN2
YIDONG4_EXIT:RET
;*********************************************
DATA1:DB 04H,080H,0EH,0A0H,078H,090H,08H,090H,08H,084H,0FFH,0FEH,08H,080H,08H,090H,0AH,090H,0CH,060H,018H,040H,068H,0A0H,09H,020H,0AH,014H,028H,014H,010H,0CH
DB 0FH,0E0H,08H,020H,08H,020H,0FH,0E0H,08H,020H,08H,020H,0FH,0E0H,00H,04H,0FFH,0FEH,01H,00H,09H,020H,09H,0F0H,09H,00H,015H,00H,023H,06H,040H,0FCH
DB 02H,040H,044H,044H,02BH,0F8H,010H,050H,028H,064H,04BH,0FEH,088H,080H,09H,08H,01BH,0FCH,02DH,08H,049H,08H,089H,0F8H,09H,08H,09H,08H,029H,0F8H,011H,08H
DB 02H,040H,044H,044H,02BH,0F8H,010H,050H,028H,064H,04BH,0FEH,088H,080H,09H,08H,01BH,0FCH,02DH,08H,049H,08H,089H,0F8H,09H,08H,09H,08H,029H,0F8H,011H,08H
DB 00H,00H,01H,080H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,01H,080H,01H,080H,01H,080H,00H,00H,01H,080H,03H,0C0H,01H,080H,00H,00H,00H,00H
DB 02H,00H,02H,00H,07H,0F0H,08H,020H,018H,040H,025H,080H,02H,080H,0CH,080H,071H,0FCH,02H,08H,0CH,010H,012H,020H,021H,0C0H,01H,00H,0EH,00H,070H,00H
DB 02H,00H,02H,00H,07H,0F0H,08H,020H,018H,040H,025H,080H,02H,080H,0CH,080H,071H,0FCH,02H,08H,0CH,010H,012H,020H,021H,0C0H,01H,00H,0EH,00H,070H,00H
DB 01H,00H,01H,00H,01H,04H,0FFH,0FEH,01H,00H,01H,00H,03FH,0F0H,08H,020H,08H,020H,04H,040H,02H,080H,01H,00H,02H,080H,0CH,060H,030H,01EH,0C0H,04H
DB 010H,040H,010H,040H,010H,050H,013H,0F8H,0FCH,040H,010H,048H,017H,0FCH,018H,010H,030H,014H,0D7H,0FEH,012H,010H,011H,010H,011H,010H,010H,010H,050H,050H,020H,020H
DB 00H,00H,01H,080H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,01H,080H,01H,080H,01H,080H,00H,00H,01H,080H,03H,0C0H,01H,080H,00H,00H,00H,00H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -