?? 90092.asm
字號:
CS EQU P1.4
SLK EQU P1.5
SIN EQU P1.6
ORG 0000H
LJMP main
;.................................................
SEND_BYTE: ;發送字節到90092 R7待發送的數
CLR CS
CLR A
MOV R6, A
L0007H:
CLR C
MOV A, R6
XRL A, #80H
SUBB A, #88H
JNC L0025H
CLR SLK
MOV A, R7
ANL A, #01H
JNZ L001AH
CLR SIN
SJMP L001CH
L001AH:
SETB SIN
L001CH:
MOV A, R7
CLR C
RRC A
MOV R7, A
SETB SLK
INC R6
SJMP L0007H
L0025H:
SETB CS
RET
;.......................................................................
DELAY: ;延時程序
CLR A
MOV R7, A
L002AH:
MOV A, R7
CLR C
SUBB A, #0FFH
JNC L0033H
INC R7
SJMP L002AH
L0033H:
RET
;...................................................................................
DISPLAY_COLOR:
MOV R6, 07H
MOV R5, 06H
MOV A, R5
RRC A
RRC A
ANL A, #3FH
ANL A, #03H
ADD A, #84H
MOV R5, A
MOV R4, 06H
MOV A, R4
SWAP A
RLC A
ANL A, #0E0H
ANL A, #60H
INC A
MOV R4, A
MOV R7, 05H
LCALL SEND_BYTE
MOV R7, 04H
LCALL SEND_BYTE
MOV R7, #88H
LCALL SEND_BYTE
CLR A
MOV R7, A
LCALL SEND_BYTE
MOV R7, #90H
LCALL SEND_BYTE
CLR A
MOV R7, A
LCALL SEND_BYTE
RET
;...........................................................................................
;/*;vram R7:行,vram R5:列,R3:字體地址,19H:尺寸,1AH:背景顏色,1BH:前景顏色,1CH:特殊顯示標記*/
DISPLAY_NUMBER:
MOV R4, 07H
MOV R1, 05H
MOV R6, 04H
MOV A, R6
RRC A
RRC A
ANL A, #3FH
ANL A, #03H
ADD A, #80H
MOV R6, A
MOV R5, 04H
MOV A, R5
SWAP A
RLC A
ANL A, #0E0H
ANL A, #60H
ADD A, R1
MOV R5, A
MOV R7, 06H
LCALL SEND_BYTE ; /*command 0*/
MOV R7, 05H
LCALL SEND_BYTE
MOV A, 19H
ADD A, #0B0H
MOV R7, A
LCALL SEND_BYTE ;/*command 6*/
MOV A, R4
ADD A, #20H
MOV R7, A
LCALL SEND_BYTE
MOV A, 08H
CJNE A, #04H, L00ABH
MOV 1BH, #07H
CLR A
MOV 1AH, A
L00ABH:
MOV A, 1BH
SWAP A
ANL A, #0F0H
ANL A, #70H
ADD A, 1AH
MOV R5, A
MOV A, 1CH
ADD A, #88H
MOV R7, A
LCALL SEND_BYTE ;/*command1-1*/
MOV R7, 05H
LCALL SEND_BYTE
MOV R6, 02H
MOV R7, 03H
MOV R4, #00H
MOV R5, #80H
LCALL L0C3BH
MOV A, R7
ADD A, #90H
MOV R7, A
LCALL SEND_BYTE ;/*command1-6*/
MOV R6, 02H
MOV R7, 03H
MOV R4, #00H
MOV R5, #80H
LCALL L0C3BH
MOV R7, 05H
LCALL SEND_BYTE
RET
;......................................................................................
init_ic:
MOV 12H, R7
CLR CS
LCALL delay
SETB CS
LCALL delay
CLR CS
LCALL delay
SETB CS
LCALL delay
CLR CS
LCALL delay
SETB CS
LCALL delay
CLR CS
LCALL delay
SETB CS
MOV R7, #98H ;/*--------command 3----------*/
LCALL SEND_BYTE
CLR A
MOV R7, A
LCALL SEND_BYTE
MOV R7, #0AAH ;/*--------command 5----------*/
LCALL SEND_BYTE
MOV R7, #10H
LCALL SEND_BYTE ;/*;KID=0;APC與顏色有關;GYZ=0;W3--W0為行間距;10101 KID APC GYZ0 BH2 BH1 BH0 W3 W2 W1 W0*/
MOV R7, #0BCH
LCALL SEND_BYTE ;/*--------command 7 ----------*///BD
MOV R7, #2AH
LCALL SEND_BYTE ;/*垂直位置設定
MOV R7, #0C0H
LCALL SEND_BYTE ;/*--------command 8------------*/
MOV R7, #18H
LCALL SEND_BYTE ;/*水平位置設定*//
MOV R7, #0C8H
LCALL SEND_BYTE ;/*--------command 9---------*/
MOV R7, #20H
LCALL SEND_BYTE ;/*------背景設置1-------*/
MOV R7, #0D1H
LCALL SEND_BYTE ;/*--------command 10----------*/
MOV A, 12H
ADD A, #38H
MOV R7, A
LCALL SEND_BYTE
MOV A, 08H
ADD A, #0A2H
MOV R7, A
LCALL SEND_BYTE ;/*-------command 4----------*/
MOV R7, #2BH
LCALL SEND_BYTE
CLR A
MOV 13H, A
L015BH:
MOV A, 13H
CLR C
SUBB A, #0CH
JNC L016BH
MOV R7, 13H
LCALL DISPLAY_COLOR
INC 13H
SJMP L015BH
L016BH:
CLR A
MOV 14H, A
L016EH:
MOV A, 14H
CLR C
SUBB A, #0DH
JNC L019CH
CLR A
MOV 13H, A
L0178H:
MOV A, 13H
CLR C
SUBB A, #18H
JNC L0198H
MOV R7, 14H
MOV R5, 13H
MOV R3, #3EH
MOV R2, #00H
CLR A
MOV 19H, A
MOV 1AH, 12H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
INC 13H
SJMP L0178H
L0198H:
INC 14H
SJMP L016EH
L019CH:
CLR A
MOV R7, A
MOV R5, #14H
MOV R3, #10H
MOV R2, A
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
CLR A
MOV R7, A
MOV R5, #15H
INC R3
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
CLR A
MOV R7, A
MOV R5, #16H
INC R3
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
CLR A
MOV R7, A
MOV R5, #17H
INC R3
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #01H
MOV R5, #14H
MOV R3, #20H
CLR A
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #01H
MOV R5, #15H
INC R3
CLR A
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #01H
MOV R5, #16H
INC R3
CLR A
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #01H
MOV R5, #17H
INC R3
CLR A
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, A
MOV 1CH, A
LCALL DISPLAY_NUMBER
RET
;...............................................................................
SCAN_KEY:
JB 0B0H.3, L0242H
MOV 08H, #04H
MOV R7, #0D1H
LCALL SEND_BYTE
MOV R7, #07H
LCALL SEND_BYTE
L023CH:
JNB 0B0H.3, L023CH
MOV 0CH, #01H
L0242H:
JB 0B0H.5, L0258H
CLR A
MOV 08H, A
MOV R7, #0D1H
LCALL SEND_BYTE
MOV R7, #3FH
LCALL SEND_BYTE
L0252H:
JNB 0B0H.5, L0252H
MOV 0CH, #01H
L0258H:
JB 0B0H.2, L0272H
INC 09H
MOV A, 09H
SETB C
SUBB A, #05H
JC L0267H
CLR A
MOV 09H, A
L0267H:
MOV R7, #07H
LCALL init_ic
L026CH:
JNB 0B0H.2, L026CH
MOV 0CH, #01H
L0272H:
RET
;...................................................................................
L0273H:
MOV 11H, #03H
MOV A, 08H
ADD A, #0A2H
MOV R7, A
LCALL SEND_BYTE
MOV R7, #29H
LCALL SEND_BYTE
MOV R7, #05H
MOV R5, 11H
MOV R3, #4DH
MOV R2, #00H
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #05H
MOV A, 11H
INC A
MOV R5, A
MOV R3, #42H
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #05H
MOV A, 11H
ADD A, #02H
MOV R5, A
MOV R3, #39H
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #05H
MOV A, 11H
ADD A, #03H
MOV R5, A
MOV R3, #30H
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #05H
MOV A, 11H
ADD A, #04H
MOV R5, A
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #05H
MOV A, 11H
ADD A, #05H
MOV R5, A
MOV R3, #39H
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #05H
MOV A, 11H
ADD A, #06H
MOV R5, A
MOV R3, #32H
MOV 19H, #02H
MOV 1AH, #01H
MOV 1BH, #01H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #06H
MOV A, 11H
ADD A, #02H
MOV R5, A
MOV R3, #0B0H
MOV 19H, #02H
MOV 1AH, #02H
MOV 1BH, #02H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #06H
MOV A, 11H
ADD A, #03H
MOV R5, A
INC R3
MOV 19H, #02H
MOV 1AH, #02H
MOV 1BH, #02H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #06H
MOV A, 11H
ADD A, #04H
MOV R5, A
INC R3
MOV 19H, #02H
MOV 1AH, #02H
MOV 1BH, #02H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
MOV R7, #06H
MOV A, 11H
ADD A, #05H
MOV R5, A
INC R3
MOV 19H, #02H
MOV 1AH, #02H
MOV 1BH, #02H
CLR A
MOV 1CH, A
LCALL DISPLAY_NUMBER
CLR A
MOV 11H, A
L0387H:
MOV A, 11H
CLR C
SUBB A, #64H
JNC L0398H
LCALL delay
LCALL SCAN_KEY
INC 11H
SJMP L0387H
L0398H:
RET
;......................................................................................
L0399H:
MOV R7, #0AAH
LCALL SEND_BYTE
MOV R7, #25H
LCALL SEND_BYTE
CLR A
MOV 11H, A
L03A6H:
MOV A, 11H
CLR C
SUBB A, #18H
JNC L03CEH
CLR A
MOV R7, A
MOV R5, 11H
MOV A, 11H
MOV 0F0H, #0AH
DIV AB
MOV A, 0F0H
MOV R3, A
MOV R2, #00H
CLR A
MOV 19H, A
MOV 1AH, A
MOV 1BH, #07H
MOV 1CH, #01H
LCALL DISPLAY_NUMBER
INC 11H
SJMP L03A6H
L03CEH:
CLR A
MOV 11H, A
L03D1H:
MOV A, 11H
CLR C
SUBB A, #18H
JNC L03FDH
MOV R7, #01H
MOV R5, 11H
MOV A, 11H
MOV 0F0H, #0AH
DIV AB
MOV A, 0F0H
ADD A, #30H
MOV R3, A
CLR A
RLC A
MOV R2, A
CLR A
MOV 19H, A
MOV 1AH, #01H
MOV 1BH, #06H
MOV 1CH, #01H
LCALL DISPLAY_NUMBER
INC 11H
SJMP L03D1H
L03FDH:
CLR A
MOV 11H, A
L0400H:
MOV A, 11H
CLR C
SUBB A, #18H
JNC L0425H
MOV R7, #02H
MOV R5, 11H
MOV A, 11H
ADD A, #41H
MOV R3, A
CLR A
RLC A
MOV R2, A
CLR A
MOV 19H, A
MOV 1AH, #02H
MOV 1BH, A
MOV 1CH, #01H
LCALL DISPLAY_NUMBER
INC 11H
SJMP L0400H
L0425H:
CLR A
MOV 11H, A
L0428H:
MOV A, 11H
CLR C
SUBB A, #18H
JNC L044EH
MOV R7, #03H
MOV R5, 11H
MOV A, 11H
ADD A, #61H
MOV R3, A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -