⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 320240text5.asm

📁 液晶显示器LCM320240驱动程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;==============================================================================
$SET (_123_)
$INCLUDE (123.inc)
;======================================================
; CPU=80C31, F_osc_1335=6MHz ;
; LCD DOTS:320(H)X240(V)
; INTERFACE BETWEEN SED1335 AND CPU:
; SED1335 80C31 BUS
; /CS A15 (ADDRESS BUS)地址总线
; A0 A0 (ADDRESS BUS)
; D0~D7 DB0~DB7 (DATA BUS)
; /WR /WR
; /RD /RD
; ADS7843
; PENQ P1.4
; DO P1.3
; Busy P3.3
; DI P1.2
; CS P1.1
; CLK P1.0
T_CLK Bit P2.1                         ;实时时钟时钟线引脚
T_IO  Bit P2.2                         ;实时时钟数据线引脚
T_RST Bit P2.3                         ;实时时钟复位线引脚
;**********************************************************
	PQ	EQU	P3.2       ;触摸屏中断出进信号-INT0
	DO	EQU	P1.3       ;触摸屏数据出信号
	BY	EQU	P3.3       ;触摸屏BUSY信号-INT1
	DI	EQU	P1.2       ;触摸屏数据进信号
	CS	EQU	P1.1       ;触摸屏位选信号
	DCK	EQU	P1.0       ;触摸屏时钟信号
	;KT	EQU	P3.4       ;
	LED1    EQU     P3.4       ;LED1
        LED2    EQU     P3.5       ;LED2
	DAT	EQU	0000H	   ;显示数据通道
	COM	EQU	0101H	   ;命令通道
	SD1L	EQU	00H	   ;图形一区首地址低位
	SD1H	EQU	00H	   ;图形一区首地址高位
	SD2L	EQU	00H	   ;图形二区首地址低位
	SD2H	EQU	00H	   ;图形二区首地址高位
	SD3L	EQU	00H	   ;图形三区首地址低位
	SD3H	EQU	00H	   ;图形三区首地址高位
	HZML	EQU	22H
	HZMH	EQU	23H
	ADJ	EQU	24H
	HIGHT	EQU	25H
	WIDTH	EQU	26H
	XPAGE	EQU	2EH
	SECT	EQU	2DH
	WS	EQU	0C2H
	TA	EQU	0C7H
	P4	EQU	0D8H
	RAM_IN	EQU	0C4H
	DPS	EQU	086H
	DPL1	EQU	84H
	DPH1	EQU	85H
	X_V	EQU	50H	                            ;横坐标低位暂存单元
	XH_V	EQU	51H	                            ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	Y_V	EQU	52H	                            ;纵坐标暂存单元
	BMP_LONG	EQU	53H
	BMP_BYTE	EQU	54H
	SKIP	EQU	55H
	LINES	EQU	56H
	NUBBER	EQU	57H
	TEMP	EQU	58H
	TEMP1	EQU	59H
	TEMP2	EQU	5AH
	TEMP3	EQU	5BH
	TEMP4	EQU	5CH
	TEMP5	EQU	5DH
	ORG	0000H
	AJMP	MAIN
	ORG	0030H
MAIN:   
	MOV     32H,#59H
	MOV     33H,#59H
	MOV     34H,#13H
	MOV     35H,#01H
	MOV     36H,#06H
	MOV     37H,#01H
	MOV     38H,#00H
	MOV	SP, #60H
	LCALL	DEL_20MS
	LCALL	DEL_20MS
	LCALL	DEL_20MS
	LCALL	DEL_20MS
	LCALL	DEL_20MS
	LCALL	INTI_LCD        ;LCD初始化--全蓝
	LCALL	ACTIVE_ADS7843	;ADS7843 初始化
	LCALL   Set1302         ;
LOOP:
START:  
LOPPP:
	MOV	XPAGE, #0
	LCALL	SCREEN          ;lcd 全亮--白色
	;MOV	40H, #0         ;第一幅图像数据区首地址低位
	;MOV	41H, #8	        ;第一幅图像数据区首地址高位
NEXT_SCREEN:
        ;SETB    LED1
        ;SETB    LED2
	;LCALL	SCREEN          ;lcd 全亮--白色
        LCALL   CLR_SCREEN
	;PUSH	40H
	;PUSH	41H
	PUSH	DPL
	PUSH	DPH
	MOV	X_V, #00
	MOV	XH_V, #0
	MOV	Y_V, #0
	MOV	DPTR, #BMP_K1	 ;指向"向前"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY         ;调用显示程序
	MOV	X_V, #32
	MOV	XH_V, #1	 ;载入"返回"按钮位置
	MOV	Y_V, #0
	MOV	DPTR, #BMP_K2
	LCALL	DISP_KEY
	;************************************************
	MOV	X_V, #30H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #00H         ;纵坐标暂存单元
	MOV	DPTR, #HZDOT1	  ;指向"南"大小16×16 点阵
	LCALL	DISP_HZ

	MOV	X_V, #40H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT2     ;指向"京"大小16×16 点阵
	LCALL	DISP_HZ

	MOV	X_V, #50H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT3     ;指向"东"大小16×16 点阵
	LCALL	DISP_HZ

	MOV	X_V, #60H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT4     ;指向"大"大小16×16 点阵
	LCALL	DISP_HZ

	MOV	X_V, #70H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT5     ;指向"智"大小16×16 点阵
	LCALL	DISP_HZ

	MOV	X_V, #80H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT6     ;指向"能"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #90H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT7     ;指向"化"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #0A0H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT8     ;指向"系"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #0B0H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOT9     ;指向"统"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #0C0H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOTA     ;指向"有"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #0D0H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOTB     ;指向"限"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #0E0H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOTC     ;指向"公"大小16×16 点阵
	LCALL	DISP_HZ
	
	MOV	X_V, #0F0H
	MOV	XH_V, #00H	  ;载入"返回"按钮位置
	MOV	Y_V, #00H
	MOV	DPTR, #HZDOTD     ;指向"司"大小16×16 点阵
	LCALL	DISP_HZ

	JB      00H, SHUZIJ
        AJMP    JIXU
SHUZIJ: AJMP    WAIT_KEY  
	;*****************************************************
JIXU:	MOV	X_V, #20H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #60H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J0	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #20H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #90H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J1	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #20H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #0C0H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J2	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY

	MOV	X_V, #50H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #60H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J3	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #50H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #90H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J4	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #50H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #0C0H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J5	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY

	MOV	X_V, #80H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #60H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J6	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #80H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #90H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J7	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #80H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #0C0H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J8	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY

	MOV	X_V, #0B0H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #60H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_J9	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #0B0H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #90H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_JA	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #0B0H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #00H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #0C0H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_JB	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY

        MOV	X_V, #00H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #01H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #60H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_F1	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #00H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #01H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #90H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_F2	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
	MOV	X_V, #00H         ;显示图形的X坐标  横坐标低位暂存单元
	MOV	XH_V, #01H        ;横坐标高位暂存单元320>255,故要设置一个高位存储单元
	MOV	Y_V, #0C0H         ;纵坐标暂存单元
	MOV	DPTR, #SHU_F3	  ;指向"0"按钮图像数据区首地址 按钮大小32×32 点阵
	LCALL	DISP_KEY
        NOP
        ;******************************************************
        LCALL   Get1302
        ;******************************************************
WAIT_KEY:
	JB	PQ, $	     ;等待直到PENIRQ 脚为低,即有有效触摸发生才能触发下一幅画面
	LCALL	DEL_20MS
	JB	PQ, WAIT_KEY ;再次判断,以免误判,判断失误则返回
	LCALL	RDOT
	MOV     A, 30H       ;横坐标
	MOV	A, 31H       ;纵坐标
	CLR	C
	SUBB	A, #40
	JC	X_PD	     ;判断"返回"按钮是否被触摸,比实际有所放大,先判断纵坐标
	AJMP	WAIT_UP	     ;如果纵坐标符合标准,再判断横坐标,否则返回

WAIT_UP:SETB    LED1
        SETB    LED2	
        JNB	PQ, $
	LCALL	DEL_20MS
	JNB	PQ, WAIT_UP
	AJMP	WAIT_KEY

X_PD:
	MOV	A, 30H
	CLR	C
	SUBB	A, #0
	JC	WAIT_UP
	MOV	A, 30H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -