?? 24o64.asm
字號:
;;;;;;;;;;;; 演示程序
;24064
;僅斷開J(VO) ,再加可變電阻
;
;P1為數據總線
;定義LCD控制線
WRR EQU P3.3
RDD EQU P3.2
REST EQU P3.0
CDD EQU P3.1
FSS EQU P3.4
DAT1 EQU 35H
DAT2 EQU 36H
COM EQU 37H
TEMP1 EQU 38H
TEMP2 EQU 39H
TEMP3 EQU 3AH
CODEN EQU 3BH
CSEG AT 0000H
NOP
MAIN:
NOP
CLR REST ;復位
LCALL DELAY
SETB REST
NOP
MOV P3,#0FFH
CLR FSS
NOP
LCALL INT ;初始化LCD
NOP
LCALL CLEAR ;清屏
LCALL TESTT
LCALL DELAY2S
LCALL CLEAR
NOP
NOP
LOOP:
MOV DAT1,#0180
MOV DAT2,#08H
MOV CODEN,#0
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
NOP
MOV DAT1,#201
MOV DAT2,#08H
MOV CODEN,#0
LCALL WRCHINA
LCALL WRCHINA
INC CODEN
INC CODEN
LCALL WRCHINA
LCALL WRCHINA
NOP
LCALL LUC1
LCALL DELAY2S
LCALL LUC2
LCALL DELAY2S
LCALL LUC3
LCALL DELAY2S
LCALL CLEAR2
LCALL LUC4
LCALL DELAY2S
LCALL LUC5
LCALL DELAY2S
LCALL CLEAR2
LCALL LUC6
LCALL DELAY2S
LCALL LUC7
LCALL DELAY2S
LCALL LUC8
LCALL DELAY2S
LCALL LUC9
LCALL DELAY2S
LCALL LUC10
LCALL DELAY2S
LCALL LUC11
LCALL DELAY2S
LCALL LUC12
LCALL DELAY2S
LCALL LUC13
LCALL DELAY2S
LCALL LUC14
LCALL DELAY2S
NOP
LCALL CLEAR
LCALL TESTT
LCALL DELAY2S
LCALL CLEAR
NOP
NOP
LJMP LOOP
DELAY:
MOV R5,#0
MOV R6,#0
MOV R7,#2
DEL:
DJNZ R5,DEL
DJNZ R6,DEL
DJNZ R7,DEL
RET
DELAY2S:
MOV R5,#0
MOV R6,#0
MOV R7,#40
DELAY2:
DJNZ R5,DELAY2
DJNZ R6,DELAY2
DJNZ R7,DELAY2
RET
TESTT:
MOV TEMP1,#00H
MOV DAT1,#00
MOV DAT2,#00H
MOV COM,#24H
LCALL PRR
MOV R3,#120
MOV COM,#0B0H
LCALL PR12
TEST1:
LCALL ST3
MOV A,TEMP1
LCALL PR13
INC TEMP1
DJNZ R3,TEST1
MOV COM,#0B2H
LCALL PR12
RET
;顯示方格子程序=============================================
FORM:
MOV DAT1,#0
MOV DAT2,#08H
MOV COM,#24H
LCALL PRR
MOV R3,#64
FORM3:
MOV TEMP1,DAT2
MOV COM,#0C5H
LCALL PR12
LCALL STT
CLR CDD
CLR RDD
MOV DAT2,P1
SETB RDD
ORL DAT2,#080H
MOV COM,#0C4H
LCALL PR11
MOV DAT2,TEMP1
MOV A,#30
ADD A,DAT1
MOV DAT1,A
CLR A
ADDC A,DAT2
MOV DAT2,A
MOV COM,#24H
LCALL PRR
DJNZ R3,FORM3
MOV DAT1,#021
MOV DAT2,#08H
MOV COM,#24H
LCALL PRR
MOV R3,#27
FORM4:
MOV TEMP1,DAT2
MOV COM,#0C5H
LCALL PR12
LCALL STT
CLR CDD
CLR RDD
MOV DAT2,P1
SETB RDD
ORL DAT2,#080H
MOV COM,#0C4H
LCALL PR11
MOV DAT2,TEMP1
MOV A,#30
ADD A,DAT1
MOV DAT1,A
CLR A
ADDC A,DAT2
MOV DAT2,A
MOV COM,#24H
LCALL PRR
DJNZ R3,FORM4
MOV DAT1,#029
MOV DAT2,#08H
MOV COM,#24H
LCALL PRR
MOV R3,#64
FORM5:
MOV TEMP1,DAT2
MOV DAT2,#01H
MOV COM,#0C4H
LCALL PR11
MOV DAT2,TEMP1
MOV A,#30
ADD A,DAT1
MOV DAT1,A
CLR A
ADDC A,DAT2
MOV DAT2,A
MOV COM,#24H
LCALL PRR
DJNZ R3,FORM5
MOV DAT1,#0
MOV DAT2,#08H
MOV COM,#24H
LCALL PRR
MOV R3,#30
MOV COM,#0B0H
LCALL PR12
FORM1:
LCALL ST3
MOV A,#0FFH
LCALL PR13
DJNZ R3,FORM1
MOV COM,#0B2H
LCALL PR12
MOV DAT1,#02AH
MOV DAT2,#0BH
MOV COM,#24H
LCALL PRR
MOV R3,#30
MOV COM,#0B0H
LCALL PR12
FORM2:
LCALL ST3
MOV A,#0FFH
LCALL PR13
DJNZ R3,FORM2
MOV COM,#0B2H
LCALL PR12
MOV DAT1,#062H
MOV DAT2,#0FH
MOV COM,#24H
LCALL PRR
MOV R3,#30
MOV COM,#0B0H
LCALL PR12
FORM6:
LCALL ST3
MOV A,#0FFH
LCALL PR13
DJNZ R3,FORM6
MOV COM,#0B2H
LCALL PR12
RET
;-----------清屏子程序----------------------------------------
CLEAR:
MOV DAT1,#00
MOV DAT2,#00H
MOV COM,#24H
LCALL PRR
MOV R3,#00
MOV R4,#10H
MOV COM,#0B0H
LCALL PR12
CLEAR1:
LCALL ST3
MOV A,#00H
LCALL PR13
DJNZ R3,CLEAR1
DJNZ R4,CLEAR1
MOV COM,#0B2H
LCALL PR12
RET
CLEAR2:
MOV DAT1,#0C0H
MOV DAT2,#0BH
MOV COM,#24H
LCALL PRR
MOV R3,#60
MOV R4,#4H
MOV COM,#0B0H
LCALL PR12
CLEAR21:
LCALL ST3
MOV A,#00H
LCALL PR13
DJNZ R3,CLEAR21
DJNZ R4,CLEAR21
MOV COM,#0B2H
LCALL PR12
RET
;-------------------------------------------------------------
;顯示一個中文(16*16)子程序
WRCHINA:
MOV TEMP1,DAT1
MOV TEMP2,DAT2
MOV COM,#24H
LCALL PRR
MOV DPTR,#CHINTAB
MOV A,CODEN
MOV B,#32
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV R5,#16
MOV COM,#0B0H
LCALL PR12
WRCHIN1:
LCALL ST3
CLR A
MOVC A,@A+DPTR
LCALL PR13
INC DPTR
LCALL ST3
CLR A
MOVC A,@A+DPTR
LCALL PR13
MOV COM,#0B2H
LCALL PR12
MOV A,#30
ADD A,DAT1
MOV DAT1,A
CLR A
ADDC A,DAT2
MOV DAT2,A
MOV COM,#24H
LCALL PRR
INC DPTR
MOV COM,#0B0H
LCALL PR12
DJNZ R5,WRCHIN1
INC CODEN
MOV A,#2
ADD A,TEMP1
MOV DAT1,A
CLR A
ADDC A,TEMP2
MOV DAT2,A
MOV COM,#0B2H
LCALL PR12
RET
;-------------------------------------------------------------
;顯示一個中文(24*21)子程序
WRCHINA2:
MOV TEMP1,DAT1
MOV TEMP2,DAT2
MOV COM,#24H
LCALL PRR
MOV DPTR,#CHINTAB2
MOV A,CODEN
MOV B,#63
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV R5,#21
MOV COM,#0B0H
LCALL PR12
WRCHIN21:
LCALL ST3
CLR A
MOVC A,@A+DPTR
LCALL PR13
INC DPTR
LCALL ST3
CLR A
MOVC A,@A+DPTR
LCALL PR13
INC DPTR
LCALL ST3
CLR A
MOVC A,@A+DPTR
LCALL PR13
MOV COM,#0B2H
LCALL PR12
MOV A,#30
ADD A,DAT1
MOV DAT1,A
CLR A
ADDC A,DAT2
MOV DAT2,A
MOV COM,#24H
LCALL PRR
INC DPTR
MOV COM,#0B0H
LCALL PR12
DJNZ R5,WRCHIN21
INC CODEN
MOV A,#3
ADD A,TEMP1
MOV DAT1,A
CLR A
ADDC A,TEMP2
MOV DAT2,A
MOV COM,#0B2H
LCALL PR12
RET
;-------------------------------------------------------------
;顯示一個數字(8*16)子程序
WRNUN:
MOV TEMP1,DAT1
MOV TEMP2,DAT2
MOV COM,#24H
LCALL PRR
MOV DPTR,#NUNTAB
MOV A,CODEN
MOV B,#16
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV R5,#16
MOV COM,#0B0H
LCALL PR12
WRNUN1:
LCALL ST3
CLR A
MOVC A,@A+DPTR
LCALL PR13
MOV COM,#0B2H
LCALL PR12
MOV A,#30
ADD A,DAT1
MOV DAT1,A
CLR A
ADDC A,DAT2
MOV DAT2,A
MOV COM,#24H
LCALL PRR
INC DPTR
MOV COM,#0B0H
LCALL PR12
DJNZ R5,WRNUN1
MOV A,#1
ADD A,TEMP1
MOV DAT1,A
CLR A
ADDC A,TEMP2
MOV DAT2,A
MOV COM,#0B2H
LCALL PR12
RET
;==========================================
;LCD 初始化
INT:
MOV DAT1,#00 ;設置文本的首地址
MOV DAT2,#00
MOV COM,#40H
LCALL PRR
MOV DAT1,#30 ;設置文本每行30個字節
MOV DAT2,#00
MOV COM,#41H
LCALL PRR
MOV DAT1,#00H ;設置圖形的首地址
MOV DAT2,#08H
MOV COM,#42H
LCALL PRR
MOV DAT1,#30 ;設置圖形每行30個字節
MOV DAT2,#00
MOV COM,#43H
LCALL PRR
MOV COM,#0A7H
LCALL PRR
MOV COM,#080H
LCALL PRR
MOV COM,#09CH ;開LCD
LCALL PRR
RET
;============================
;寫指令和寫數據子程序
PRR:
LCALL STT
MOV A,DAT1
LCALL PR13
PR11:
LCALL STT
MOV A,DAT2
LCALL PR13
PR12:
LCALL STT
MOV A,COM
LJMP PR14
PR13: ;寫數據入口
CLR CDD
PR14:
MOV P1,A
CLR WRR
SETB WRR
RET
STT: ;查忙S0,S1
MOV P1,#0FFH
SETB CDD
CLR RDD
MOV A,P1
SETB RDD
JNB ACC.0,STT
JNB ACC.1,STT
RET
ST3:
MOV P1,#0FFH
SETB CDD
CLR RDD
MOV A,P1
SETB RDD
JNB ACC.3,ST3
RET
LUC1:
MOV DAT1,#056H
MOV DAT2,#0CH
MOV CODEN,#0
LCALL WRCHINA2
LCALL WRCHINA2
MOV CODEN,#10
LCALL WRNUN
MOV CODEN,#2
LCALL WRCHINA2
LCALL WRCHINA2
MOV CODEN,#10
LCALL WRNUN
MOV CODEN,#4
LCALL WRCHINA2
LCALL WRCHINA2
NOP
MOV DAT1,#3FH
MOV DAT2,#0DH
MOV CODEN,#2
LCALL WRNUN
MOV CODEN,#7
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
MOV CODEN,#5
LCALL WRNUN
LCALL FORM
RET
LUC2:
MOV DAT1,#056H
MOV DAT2,#0CH
MOV CODEN,#2
LCALL WRCHINA2
LCALL WRCHINA2
MOV CODEN,#10
LCALL WRNUN
MOV CODEN,#0
LCALL WRCHINA2
LCALL WRCHINA2
MOV CODEN,#10
LCALL WRNUN
MOV CODEN,#6
LCALL WRCHINA2
MOV CODEN,#3
LCALL WRCHINA2
NOP
MOV DAT1,#3FH
MOV DAT2,#0DH
MOV CODEN,#1
LCALL WRNUN
MOV CODEN,#2
LCALL WRNUN
MOV CODEN,#0
LCALL WRNUN
MOV CODEN,#4
LCALL WRNUN
MOV CODEN,#8
LCALL WRNUN
MOV CODEN,#5
LCALL WRNUN
LCALL FORM
RET
LUC3:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -