📄 sukong.asm
字号:
;LCD液晶监控程序
;8155扩展的PB口,PC口分别作2×8键盘的列线口、行线口
;74LS138的Y7作为8155的片选信号
FD8155 EQU 00H ; 8155命令口低8位地址
FG8155 EQU 0F0H ; 8155命令口高8位地址
AD8155 EQU 01H ; 8155PA口低8位地址
AG8155 EQU 0F0H ; 8155PA口高8位地址
BD8155 EQU 02H ; 8155PB口低8位地址
BG8155 EQU 0F0H ; 8155PB口高8位地址
CD8155 EQU 03H ; 8155PC口低8位地址
CG8155 EQU 0F0H ; 8155PC口高8位地址
KEYZHI EQU 2FH ;键值存放单元
CSA EQU P3.4 ;液晶片选在(左,前)显示
CSB EQU P3.5 ;在(右、后)显示
E EQU P3.3 ;使能信号
DI EQU P3.2 ;选择存指令还是数据单元
COMSTART EQU 70H ;液晶的启动
COMONOFF EQU 71H ;液晶开显示
TABADDR EQU 72H ;要显示字符的表首地此
COMDATA EQU 73H ;字符数据
COMSAME EQU 74H ;液晶数据与指令的传送
JCS1CS2 EQU 7FH ;片选
COMXSTART EQU 76H ;起始页地址存放单元
COMXEND EQU 77H ;终止页地址存放单元
COMYSTART EQU 78H ;起始列地址存放单元
COMYEND EQU 79H ;终止列地址存放单元
;SCL BIT P3.0 ;24c04控制命令字
;SDA BIT P3.1 ;24c04传送数据
;FFF EQU 20H.0 ;忙状态标志位
;ADDR EQU 1FH ;写入24c04的地此
;DATA0 EQU 40H ;要读入24c04数据的首地此
;DATA1 EQU 50H ;读回单片机存放数据的首地此
STEST EQU 63H ;实测数据存放区首地此(60--65H)
AD0 EQU 30H
AD1 EQU 31H
AD2 EQU 32H
AD3 EQU 33H
AD4 EQU 34H
AD5 EQU 35H
AD6 EQU 36H
ADA EQU 4FH
ADB EQU 5FH
ADC EQU 4DH
ADDV EQU 5DH
ORG 0000H
START: LJMP MAIN
ORG 0030H
MAIN: MOV SP, #90H;
MOV PSW, #00H;
MOV R0, #20H
MOV R7, #96
CLR A
LOOP: MOV @R0, A
INC R0
DJNZ R7, LOOP
LCALL CSH8155 ;8155初始化
LCALL INT ;液晶初始化
MOV COMXSTART,#0B8H ;液晶清屏
MOV COMXEND, #0BFH
MOV COMYSTART,#40H
MOV COMYEND, #7FH
LCALL CLEAR1
tt: MOV DPTR, #TT0
MOV COMXSTART,#0B8H
MOV COMXEND, #0B9H
MOV COMYSTART,#40H
MOV COMYEND, #4FH
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #TT0
MOV COMXSTART,#0B8H
MOV COMXEND, #0B9H
MOV COMYSTART,#70H
MOV COMYEND, #7FH
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #TT1
MOV COMXSTART,#0BAH
MOV COMXEND, #0BBH
MOV COMYSTART,#40H
MOV COMYEND, #4FH
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #TT1
MOV COMXSTART,#0BAH
MOV COMXEND, #0BBH
MOV COMYSTART,#70H
MOV COMYEND, #7FH
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #TT2
MOV COMXSTART,#0BEH
MOV COMXEND, #0BFH
MOV COMYSTART,#55H
MOV COMYEND, #64H
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #TT2
MOV COMXSTART,#0BEH
MOV COMXEND, #0BFH
MOV COMYSTART,#50H
MOV COMYEND, #5FH
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM0 ;欢
MOV COMXSTART,#0BAH
MOV COMXEND, #0BBH
MOV COMYSTART,#60H
MOV COMYEND, #6FH
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #JM1 ;迎
MOV COMXSTART,#0BAH
MOV COMXEND, #0BBH
MOV COMYSTART,#70H
MOV COMYEND, #7FH
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #JM2 ;使
MOV COMXSTART,#0BAH
MOV COMXEND, #0BBH
MOV COMYSTART,#40H
MOV COMYEND, #4FH
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM3 ;用
MOV COMXSTART,#0BAH
MOV COMXEND, #0BBH
MOV COMYSTART,#50H
MOV COMYEND, #5FH
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM4 ;数
MOV COMXSTART,#0BCH
MOV COMXEND, #0BDH
MOV COMYSTART,#48H
MOV COMYEND, #57H
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #JM5 ;控
MOV COMXSTART,#0BCH
MOV COMXEND, #0BDH
MOV COMYSTART,#58H
MOV COMYEND, #67H
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #JM6 ;直
MOV COMXSTART,#0BCH
MOV COMXEND, #0BDH
MOV COMYSTART,#68H
MOV COMYEND, #77H
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #JM71 ;流
MOV COMXSTART,#0BCH
MOV COMXEND, #0BCH
MOV COMYSTART,#77H
MOV COMYEND, #7FH
MOV JCS1CS2, #00H
LCALL DISP
MOV DPTR, #JM72 ;流
MOV COMXSTART,#0BCH
MOV COMXEND, #0BCH
MOV COMYSTART,#40H
MOV COMYEND, #45H
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM73 ;流
MOV COMXSTART,#0BDH
MOV COMXEND, #0BDH
MOV COMYSTART,#77H
MOV COMYEND, #7FH
LCALL DISP
MOV DPTR, #JM74 ;流
MOV COMXSTART,#0BDH
MOV COMXEND, #0BDH
MOV COMYSTART,#40H
MOV COMYEND, #45H
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM8 ;电
MOV COMXSTART,#0BCH
MOV COMXEND, #0BDH
MOV COMYSTART,#46H
MOV COMYEND, #55H
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM9 ;流
MOV COMXSTART,#0BCH
MOV COMXEND, #0BDH
MOV COMYSTART,#56H
MOV COMYEND, #65H
MOV JCS1CS2, #01H
LCALL DISP
MOV DPTR, #JM10 ;源
MOV COMXSTART,#0BCH
MOV COMXEND, #0BDH
MOV COMYSTART,#66H
MOV COMYEND, #75H
MOV JCS1CS2, #01H
LCALL DISP
TSF0: LCALL KEY
KEYGN: MOV DPTR, #KEYTAB
MOV KEYZHI, A
CLR C
SUBB A, #0BH
JNC CLR0
KK: MOV A, KEYZHI
MOV B, #03H
MUL AB
JMP @A+DPTR
CLR0: MOV R0, #COMXSTART
MOV R1, #COMYSTART
MOV COMXSTART,#0B8H
MOV COMXEND, #0BFH
MOV COMYSTART,#40H
MOV COMYEND, #7FH
LCALL CLEAR1
LJMP KK
;键功能转移指令表KEYTAB
KEYTAB: LJMP TSF0
LJMP KEY00
LJMP KEY01
LJMP KEY02
LJMP KEY03
LJMP KEY04
LJMP KEY05
LJMP KEY06
LJMP KEY07
LJMP KEY08
LJMP KEY09
LJMP KEY0A
LJMP KEY0B
LJMP KEY0C
LJMP KEY0D
LJMP KEY0E
LJMP KEY0F
;键功能程序区
KEY00: LJMP TSF0
KEY01: LJMP TSF0
KEY02: LJMP TSF0
KEY03: LJMP TSF0
KEY04: LJMP TSF0
KEY05: LJMP TSF0
KEY06: LJMP TSF0
KEY07: LJMP TSF0
KEY08: LJMP TSF0
KEY09: LJMP TSF0
KEY0A: LJMP ZHISU0 ;置给定值
LJMP TSF0
KEY0B: LJMP KSS ;置步进值
LJMP TSF0
KEY0C: LJMP TSF0
KEY0D: LJMP TSF0
KEY0E:
LJMP TSF0 ;幅度控制
KEY0F: LJMP TSF0
;液晶初始化子程序
; CSA EQU P3.4 ;液晶片选在(左,前)显示
; CSB EQU P3.5 ;在(右、后)显示
; E EQU P3.3 ;使能信号
; DI EQU P3.2 ;选择存指令还是数据单元
; COMSTART EQU 70H ;液晶的启动
; COMONOFF EQU 71H ;液晶开显示
; TABADDR EQU 72H ;要显示字符的表首地此
; COMDATA EQU 73H ;字符数据
; COMSAME EQU 74H ;液晶数据与指令的传送
; JCS1CS2 EQU 7FH ;片选
; COMXSTART EQU 76H ;起始页地址存放单元
; COMXEND EQU 77H ;终止页地址存放单元
; COMYSTART EQU 78H ;起始列地址存放单元
; COMYEND EQU 79H ;终止列地址存放单元
INT: MOV COMONOFF, #03FH
MOV COMSAME, COMONOFF
LCALL PRL0
MOV COMSTART, #0C0H
MOV COMSAME, COMSTART
LCALL PRL0
RET
;写命令子程序
PRL0: SETB CSA
SETB CSB ;CLR CSB
CLR DI
PRL01: NOP
NOP
NOP
NOP
MOV P0, COMSAME
SETB E
CLR E
RET
;液晶清屏子程序
; COMSTART EQU 70H ;液晶的启动
; COMONOFF EQU 71H ;液晶开显示
; TABADDR EQU 72H ;要显示字符的表首地此
; COMDATA EQU 73H ;字符数据
; COMSAME EQU 74H ;液晶数据与指令的传送
; JCS1CS2 EQU 7FH ;片选
; COMXSTART EQU 76H ;起始页地址存放单元
; COMXEND EQU 77H ;终止页地址存放单元
; COMYSTART EQU 78H ;起始列地址存放单元
; COMYEND EQU 79H ;终止列地址存放单元
CLEAR1: INC COMXEND ; 终止页地址加1
INC COMYEND ; 终止列地址加1
CLS11: MOV A, @R0 ; 取起始页地址
MOV COMSAME, A ; 临时存放页地址
LCALL PRL0 ; 调写清屏命令子程序
MOV A, @R1 ; 取起始列地址
MOV COMSAME, A ; 临时存放列地址
LCALL PRL0 ; 调写清屏命令子程序
MOV A, COMYSTART ; 恢复起始列地址
CLS22: MOV COMDATA, #00H ; 点灭数据
LCALL PRL1 ; 调写清屏数据子程序
INC A ; 列地址加1
CJNE A, COMYEND, CLS22 ; 列写完否?
INC @R0 ; 页地址加1
MOV A, @R0 ; 临时存放页地址
CJNE A, COMXEND, CLS11 ; 页写完否?
RET
;写数据子程序
PRL1: PUSH A
SETB CSA ;Write data
SETB CSB
PRL101: NOP
NOP
NOP
NOP
MOV P0, COMDATA
SETB DI
SETB E
CLR E
POP A
RET
;8155初始化子程序CSH8155
CSH8155: PUSH DPH
PUSH DPL
PUSH ACC
MOV P2, #FG8155
MOV R1, #FD8155
MOV P0, R1
MOV A, #03H
MOVX @R1, A
POP ACC
POP DPL
POP DPH
RET
;液晶显示子程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -