?? disp.asm
字號:
;;;;;;;;;;;; 一簡單演示程序
;320*240LCD,型號EDMMU96B0F,控制芯片SED1335
;P1為數據總線
;定義LCD控制線
WRA EQU P3.1
RDA EQU P3.0
AO EQU P3.2
REST EQU P3.6
CSS EQU P3.4
;四線電阻型觸摸屏
;定義ADS7843控制線
; DCLK EQU P3.3
DCLK EQU P0.5
DIN EQU P0.3
DOUT EQU P0.1 ;CS(片選信號直接接地)
TEMP EQU 3FH
TEMP1 EQU 30H ;通用變量
TEMP2 EQU 31H
TEMP3 EQU 32H
TEMP4 EQU 33H
TEMP5 EQU 34H
TEMP6 EQU 35H
CULA EQU 39H
ROW EQU 3AH
COUNT1 EQU 3BH
COUNT2 EQU 3CH
CODEN EQU 3EH
ADDRL EQU 40H ;地址低8位
ADDRH EQU 41H ;地址高8位
;定義變量
KEYCOUT EQU 48H ;
FLAG_KEY EQU 49H ;鍵值寄存器
AD_CH EQU 4AH ;信道選擇寄存器
AD_DAT EQU 4BH ;存放8BIT A/D值
CHX_DAT EQU 4EH ;存放信道CHX的值
CHY_DAT EQU 4FH ;存放信道CHY的
CSEG AT 0000H
NOP
CLR CSS ;1335片選
MAIN:
NOP
CLR REST
LCALL DELAY ;1335復位
SETB REST
NOP
LCALL INTLCD ;調用LCD初始化子程序
NOP
LCALL CLEAR1 ;清屏第一區
LCALL CLEAR2 ;清屏第二區
NOP
LCALL DISPLAY
MOV KEYCOUT,#00H
NOP
NOP
LOOP:
NOP
LCALL GETKEYID
MOV A,FLAG_KEY
MOV TEMP3,A
CJNE A,#0FFH,WIRR
NOP
LJMP LOOP
WIRR:
LCALL GETKEYID
MOV A,FLAG_KEY
CJNE A,#0FFH,WIRR
LCALL DELAY2
LCALL GETKEYID
MOV A,FLAG_KEY
CJNE A,#0FFH,WIRR
LCALL DELAY2
LCALL GETKEYID
MOV A,FLAG_KEY
CJNE A,#0FFH,WIRR
MOV A,KEYCOUT
CJNE A,#00H,WIRR2
MOV ADDRL,#064H
MOV ADDRH,#28H
LCALL SETADDR
WIRR2:
MOV A,TEMP3
LCALL PASSID
JNZ WIRR4
WIRR5:
MOV ADDRL,#064H
MOV ADDRH,#28H
LCALL SETADDR
MOV R1,#12
WIRR3:
MOV P1,#00H
CLR WRA
SETB WRA
DJNZ R1,WIRR3
MOV KEYCOUT,#0
LJMP WIRR8
WIRR4:
MOV P1,A
CLR WRA
SETB WRA
INC KEYCOUT
CLR C
MOV A,KEYCOUT
SUBB A,#12
JC WIRR8
LJMP WIRR5
WIRR8:
LCALL GETKEYID
MOV A,FLAG_KEY
CJNE A,#0FFH,WIRR8
LCALL DELAY2
LCALL GETKEYID
MOV A,FLAG_KEY
CJNE A,#0FFH,WIRR8
LJMP LOOP
DELAY:
MOV R5,#0
MOV R6,#0
MOV R7,#2
DEL:
DJNZ R5,DEL
DJNZ R6,DEL
DJNZ R7,DEL
RET
DELAY2:
MOV R5,#0
MOV R6,#12
DEL2:
DJNZ R5,DEL2
DJNZ R6,DEL2
RET
DEL2S:
MOV R5,#0
MOV R6,#0
MOV R7,#20
D2S:
DJNZ R5,D2S
DJNZ R6,D2S
DJNZ R7,D2S
RET
PASSID:
CJNE A,#024H,PASSID2
MOV A,#030H
RET
PASSID2:
CJNE A,#011H,PASSID3
MOV A,#031H
RET
PASSID3:
CJNE A,#021H,PASSID4
MOV A,#032H
RET
PASSID4:
CJNE A,#031H,PASSID5
MOV A,#033H
RET
PASSID5:
CJNE A,#012H,PASSID6
MOV A,#034H
RET
PASSID6:
CJNE A,#022H,PASSID7
MOV A,#035H
RET
PASSID7:
CJNE A,#032H,PASSID8
MOV A,#36H
RET
PASSID8:
CJNE A,#013H,PASSID9
MOV A,#37H
RET
PASSID9:
CJNE A,#023H,PASSID10
MOV A,#38H
RET
PASSID10:
CJNE A,#033H,PASSID11
MOV A,#39H
RET
PASSID11:
MOV A,#0
RET
;=============================================================
DISPLAY: ;演示子程序
LCALL DISKEY
NOP
MOV CODEN,#0
MOV ADDRL,#0B5H
MOV ADDRH,#04H
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
LCALL WRCHINA
NOP
MOV ADDRL,#043H
MOV ADDRH,#07H
LCALL SETADDR
MOV R7,#6
KKT:
MOV P1,#0FFH
CLR WRA
SETB WRA
MOV P1,#0F0H
CLR WRA
SETB WRA
DJNZ R7,KKT
NOP
MOV ADDRL,#00
MOV ADDRH,#28H
LCALL SETADDR
MOV P1,#77H
CLR WRA
SETB WRA
MOV P1,#77H
CLR WRA
SETB WRA
MOV P1,#77H
CLR WRA
SETB WRA
MOV P1,#2EH
CLR WRA
SETB WRA
MOV P1,#51H
CLR WRA
SETB WRA
MOV P1,#58H
CLR WRA
SETB WRA
MOV P1,#4CH
CLR WRA
SETB WRA
MOV P1,#43H
CLR WRA
SETB WRA
MOV P1,#44H
CLR WRA
SETB WRA
MOV P1,#2EH
CLR WRA
SETB WRA
MOV P1,#63H
CLR WRA
SETB WRA
MOV P1,#6FH
CLR WRA
SETB WRA
MOV P1,#6DH
CLR WRA
SETB WRA
RET
;_______________________________________________________________________
INTLCD: ;初始化LCD子程序
MOV P1,#40H
SETB AO
CLR WRA
SETB WRA
CLR AO
MOV R6,#08
MOV DPTR,#SYSTAB ;初始化設置
INTR1:
CLR A
MOVC A,@A+DPTR
MOV P1,A
CLR WRA
SETB WRA
INC DPTR
DJNZ R6,INTR1
MOV P1,#44H
SETB AO
CLR WRA
SETB WRA
CLR AO
MOV R6,#10
MOV DPTR,#SCRTAB ;顯示域設置
INTR2:
CLR A
MOVC A,@A+DPTR
MOV P1,A
CLR WRA
SETB WRA
INC DPTR
DJNZ R6,INTR2
MOV P1,#5AH ;點位移設置
SETB AO
CLR WRA
SETB WRA
MOV P1,#00H
CLR AO
CLR WRA
SETB WRA
MOV P1,#4CH ;光標移動方向設置,4CH向右,4FH向下
SETB AO
CLR WRA
SETB WRA
MOV P1,#5BH ;顯示合成設置
SETB AO
CLR WRA
SETB WRA
MOV P1,#08H ;顯示一區為文本,顯示二區為圖形
CLR AO
CLR WRA
SETB WRA
MOV P1,#59H ;開LCD
SETB AO
CLR WRA
SETB WRA
CLR AO
MOV P1,#14H
CLR WRA
SETB WRA
RET
;==============================================
;清第一顯示區
CLEAR1:
MOV ADDRL,#00H
MOV ADDRH,#28H
LCALL SETADDR ;設置地址位2800H
MOV R6,#5
MOV R7,#00H
CLR11:
MOV P1,#00H ;寫入顯示數據00H
CLR WRA
SETB WRA
DJNZ R7,CLR11
DJNZ R6,CLR11
RET
;清第二顯示區
CLEAR2:
MOV ADDRL,#0
MOV ADDRH,#0
LCALL SETADDR ;設置地址為0000H
MOV R6,#39
MOV R7,#37
CLR21:
MOV P1,#00H ;寫入顯示數據為00H
CLR WRA
SETB WRA
DJNZ R7,CLR21
DJNZ R6,CLR21
RET
;=========================================================================
SETADDR: ;設置LCD地址子程序
MOV P1,#46H ;光標指針設置指令
SETB AO
CLR WRA
SETB WRA
MOV P1,ADDRL
CLR AO
CLR WRA
SETB WRA
MOV P1,ADDRH
CLR WRA
SETB WRA
MOV P1,#42H
SETB AO
CLR WRA
SETB WRA
CLR AO
RET
;-------------------------------------------------------------
;顯示一個中文子程序
WRCHINA:
MOV TEMP1,ADDRL
MOV TEMP2,ADDRH
LCALL SETADDR
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
WRCHIN1:
CLR A
MOVC A,@A+DPTR
MOV P1,A
CLR WRA
SETB WRA
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV P1,A
CLR WRA
SETB WRA
MOV A,#40
ADD A,ADDRL
MOV ADDRL,A
CLR A
ADDC A,ADDRH
MOV ADDRH,A
LCALL SETADDR
INC DPTR
DJNZ R5,WRCHIN1
INC CODEN
MOV A,#2
ADD A,TEMP1
MOV ADDRL,A
CLR A
ADDC A,TEMP2
MOV ADDRH,A
RET
;***************************************************************
DISKEY: ;顯示按鍵圖形
MOV ROW,#70
MOV CULA,#8
MOV DPTR,#KTAB1
LCALL WRINU ;1
MOV CULA,#16
LCALL WRINU ;2
MOV CULA,#24
LCALL WRINU ;3
MOV ROW,#115
MOV CULA,#8
LCALL WRINU ;4
MOV CULA,#16
LCALL WRINU ;5
MOV CULA,#24
LCALL WRINU ;6
MOV ROW,#160
MOV CULA,#8
LCALL WRINU ;7
MOV CULA,#16
LCALL WRINU ;8
MOV CULA,#24
LCALL WRINU ;9
MOV ROW,#205
MOV CULA,#8
LCALL WRINU ;C
MOV CULA,#16
MOV DPTR,#KTAB0
LCALL WRINU
MOV CULA,#24
MOV DPTR,#KTABB
LCALL WRINU
RET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -