📄 jrdmdylcd.asm
字号:
WriteComd: SETB LcdRead
SETB LcdAddr
CLR LcdCs
MOV LcdPort,A
CLR LcdWrite
SETB LcdWrite
SETB LcdCs
RET
WriteData: SETB LcdRead
CLR LcdAddr
CLR LcdCs
MOV LcdPort,A
CLR LcdWrite
SETB LcdWrite
SETB LcdCs
RET
ReadData: SETB LcdWrite
SETB LcdAddr
CLR LcdCs
NOP
CLR LcdRead
NOP
MOV A,LcdPort
NOP
SETB LcdRead
NOP
SETB LcdCs
RET
ShowXw: MOV A,#5DH
LCALL WriteComd
MOV A,#07H
LCALL WriteData
MOV A,#87H
; MOV A,#07H
LCALL WriteData
MOV A,#5BH
LCALL WriteComd
MOV A,#01H
LCALL WriteData
MOV A,#59H
LCALL WriteComd
MOV A,#56H
LCALL WriteData
MOV A,#46H
LCALL WriteComd
RET
DdShowString: MOV R1,#ShowBuf
MOV LcdCount1,#0
MOV A,LcdShowC
MOV LcdCount2,A
DdShowString1: MOV A,LcdCount1
MOVC A,@A+DPTR
MOVX @R1,A
INC R1
INC LcdCount1
MOV A,LcdCount1
MOVC A,@A+DPTR
MOVX @R1,A
INC R1
INC LcdCount1
DJNZ LcdCount2,DdShowString1
DdShowString2: MOV R1,#ShowBuf
NOP
DdShowString3: MOVX A,@R1
MOV SeleTab,A
INC R1
MOVX A,@R1
MOV CCCODE,A
MOV OXL,LcdShowX
MOV OY,LcdShowY
LCALL CCTW
INC R1
INC LcdShowX
MOV A,SeleTab
CLR C
SUBB A,#09H
JNC DdShowString4
INC LcdShowX
DdShowString4: DJNZ LcdShowC,DdShowString3
RET
CCTW: LCALL WatchDog
MOV A,SeleTab
CJNE A,#1,CCTW1
MOV DPTR,#ZW00TAB000
SJMP CCTW16
CCTW1: CJNE A,#2,CCTW2
MOV DPTR,#ZW01TAB000
SJMP CCTW16
CCTW2: CJNE A,#3,CCTW3
MOV DPTR,#ZW02TAB000
SJMP CCTW16
CCTW3: CJNE A,#4,CCTW4
MOV DPTR,#ZW03TAB000
SJMP CCTW16
CCTW4: CJNE A,#5,CCTW5
MOV DPTR,#ZW04TAB000
SJMP CCTW16
CCTW5: CJNE A,#6,CCTW6
MOV DPTR,#ZW05TAB000
SJMP CCTW16
CCTW6: CJNE A,#7,CCTW7
MOV DPTR,#ZW06TAB000
SJMP CCTW16
CCTW7: CJNE A,#8,CCTW8
MOV DPTR,#TskTAB000
SJMP CCTW16
CCTW8: CJNE A,#9,CCTW9
MOV DPTR,#YW00TAB000
SJMP CCTW16
CCTW9: CJNE A,#10,CCTW10
MOV DPTR,#YW01TAB000
SJMP CCTW16
CCTW10: CJNE A,#11,CCTW11
MOV DPTR,#YW02TAB000
SJMP CCTW16
CCTW11: CJNE A,#12,CCTW12
MOV DPTR,#YW03TAB000
SJMP CCTW16
CCTW12: CJNE A,#13,CCTW13
MOV DPTR,#YW04TAB000
SJMP CCTW16
CCTW13: CJNE A,#14,CCTW14
MOV DPTR,#YW05TAB000
SJMP CCTW16
CCTW14: CJNE A,#15,CCTW15
MOV DPTR,#YW06TAB000
SJMP CCTW16
CCTW15: CJNE A,#16,CCTW16
MOV DPTR,#XW00TAB000
NOP
CCTW16: MOV A,CCCODE
MOV B,#20H
MUL AB
ADD A,DPL
PUSH ACC
MOV A,B
ADDC A,DPH
PUSH ACC
MOV A,OY
MOV B,#AP
MUL AB
ADD A,OXL
MOV OXL,A
MOV A,B
ADDC A,#40H
MOV OY,A
MOV A,#4FH
LCALL WriteComd
MOV A,SeleTab
CLR C
SUBB A,#09H
JC CCTW17
MOV LcdCount1,#01H
SJMP CCTW18
CCTW17: MOV LcdCount1,#02H
NOP
CCTW18: MOV A,#46H
LCALL WriteComd
MOV A,OXL
LCALL WriteData
MOV A,OY
LCALL WriteData
MOV A,#42H
LCALL WriteComd
MOV LcdCount2,#10H
CCTW19: POP DPH
POP DPL
CLR A
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
LCALL WriteData
DJNZ LcdCount2,CCTW19
MOV A,OXL
ADD A,#01H
MOV OXL,A
MOV A,OY
ADDC A,#00H
MOV OY,A
DJNZ LcdCount1,CCTW18
POP ACC
POP ACC
RET
DOTW: MOV A,OY
MOV B,#AP
MUL AB
MOV OY,A
MOV A,B
XCH A,OXH
PUSH ACC
CLR ACC.7
MOV B,#20H
MUL AB
ADD A,OY
MOV OY,A
MOV A,B
ADDC A,OXH
MOV OXH,A
MOV A,OXL
MOV B,#08H
DIV AB
ADD A,OY
MOV OXL,A
MOV A,OXH
ADDC A,#40H
MOV OXH,A
CLR A
SETB C
INC B
DOTW1: RRC A
DJNZ B,DOTW1
MOV OY,A
MOV A,#46H
LCALL WriteComd
MOV A,OXL
LCALL WriteData
MOV A,OXH
LCALL WriteData
MOV A,#43H
LCALL WriteComd
POP ACC
MOV C,ACC.7
LCALL ReadData
JNC DOTW2
ORL A,OY
LJMP DOTW3
DOTW2: XCH A,OY
CPL A
ANL A,OY
DOTW3: MOV OY,A
MOV A,#46H
LCALL WriteComd
MOV A,OXL
LCALL WriteData
MOV A,OXH
LCALL WriteData
MOV A,#42H
LCALL WriteComd
MOV A,OY
LCALL WriteData
RET
DrawThwartwise: MOV OXL,R3
MOV OXH,R4
MOV OY,R7
LCALL DOTW
MOV A,R3
ADD A,#01H
MOV R3,A
MOV A,R4
ADDC A,#00H
MOV R4,A
MOV A,R3
MOV B,R5
CJNE A,B,DrawThwartwise
MOV OXL,R3
MOV OXH,R4
MOV OY,R7
LCALL DOTW
MOV A,R3
ADD A,#01H
MOV R3,A
MOV A,R4
ADDC A,#00H
MOV R4,A
MOV A,R4
MOV B,R6
CJNE A,B,DrawThwartwise
RET
DrawArborous: MOV OXL,R4 ;
MOV OXH,R5
MOV OY,R6
LCALL DOTW
MOV A,R6
ADD A,#01H
MOV R6,A
MOV A,R6
MOV B,R7
CJNE A,B,DrawArborous
RET
DrawRectangle: MOV A,R1
MOV EditShowX,A
DrawRectangle1: MOV A,R1
MOV OXL,A ;
MOV A,R2
MOV OXH,A
MOV A,R3
MOV OY,A
LCALL DOTW
MOV A,R1
ADD A,#01H
MOV R1,A
MOV A,R2
ADDC A,#00H
MOV R2,A
MOV A,R1
MOV B,R4
CJNE A,B,DrawRectangle1
MOV A,EditShowX
MOV R1,A
DrawRectangle2: MOV A,R1
MOV OXL,A ;
MOV A,R2
MOV OXH,A
MOV A,R6
MOV OY,A
LCALL DOTW
MOV A,R1
ADD A,#01H
MOV R1,A
MOV A,R2
ADDC A,#00H
MOV R2,A
MOV A,R1
MOV B,R4
CJNE A,B,DrawRectangle2
DrawRectangle3: MOV A,EditShowX
MOV R1,A
MOV A,R3
MOV EditShowY,A
DrawRectangle4: MOV A,R1
MOV OXL,A ;
MOV A,R2
MOV OXH,A
MOV A,R3
MOV OY,A
LCALL DOTW
MOV A,R3
ADD A,#01H
MOV R3,A
MOV A,R3
MOV B,R6
CJNE A,B,DrawRectangle4
MOV A,EditShowY
MOV R3,A
DrawRectangle5: MOV A,R4
MOV OXL,A ;
MOV A,R5
MOV OXH,A
MOV A,R3
MOV OY,A
LCALL DOTW
MOV A,R3
ADD A,#01H
MOV R3,A
MOV A,R3
MOV B,R6
CJNE A,B,DrawRectangle5
RET
DrawLine: MOV OXL,R4 ;
MOV OXH,R5
MOV OY,R6
LCALL DOTW
MOV A,R4
ADD A,#01H
MOV R4,A
MOV A,R5
ADDC A,#00H
MOV R5,A
INC R6
MOV A,R6
MOV B,R7
CJNE A,B,DrawLine
ret
DrawLine2: MOV A,R5
MOV OXL,A
MOV A,R6
MOV OXH,A
MOV A,R7
MOV OY,A
LCALL DOTW
MOV A,R5
ADD A,#01H
MOV R5,A
MOV A,R6
ADDC A,#00H
MOV R6,A
DJNZ R7,DrawLine2
DrawLine3: MOV A,R5
MOV OXL,A
MOV A,R6
MOV OXH,A
MOV A,R7
MOV OY,A
LCALL DOTW
MOV A,R5
ADD A,#01H
MOV R5,A
MOV A,R6
ADDC A,#00H
MOV R6,A
INC R7
CJNE R7,#240,DrawLine3
RET
LcdInit: CLR PSW.3
CLR PSW.4
MOV A,#40H
LCALL WriteComd
MOV LcdCount1,#08H
MOV LcdCount2,#00H
LcdInit1: MOV DPTR,#SYSTAB
MOV A,LcdCount2
MOVC A,@A+DPTR
LCALL WriteData
INC LcdCount2
DJNZ LcdCount1,LcdInit1
MOV A,#44H
LCALL WriteComd
MOV LcdCount1,#0AH
MOV LcdCount2,#00H
LcdInit2: MOV DPTR,#SCRTAB
MOV A,LcdCount2
MOVC A,@A+DPTR
LCALL WriteData
INC LcdCount2
DJNZ LcdCount1,LcdInit2
MOV A,#5AH
LCALL WriteComd
MOV A,#00H
LCALL WriteData
MOV A,#5BH
LCALL WriteComd
MOV A,#00H
LCALL WriteData
LCALL LcdClear
MOV A,#59H
LCALL WriteComd
MOV A,#54H
LCALL WriteData
RET
SYSTAB: DB 030H,087H,007H,027H,042H,0F0H,030H,000H
SCRTAB: DB 000H,000H,0F0H,000H,040H,0F0H,000H,080H,000H,000H
LcdClear:
MOV A,#4CH
LCALL WriteComd
MOV A,#46H
LCALL WriteComd
MOV A,#00H
LCALL WriteData
MOV A,#00H
LCALL WriteData
MOV A,#42H
LCALL WriteComd
CLR A
MOV LcdCount1,#7FH
LcdClear1: MOV LcdCount2,#0FFH
LcdClear2: LCALL WriteData
DJNZ LcdCount2,LcdClear2
DJNZ LcdCount1,LcdClear1
RET
;
; ****** Program end flag ******
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -