📄 320240text5.asm
字号:
;==============================================================================
$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 + -