📄 testlcd.asm
字号:
;testlcd.asm
;这个程序是用HT48C10去控制HT1621
;控制口的结构:
; PB0 -- DATA
; PB1 -- WRB
; PB2 -- RDB
; PB3 -- CSB
;注意:在写程序时,时序一定要给正确
#INCLUDE HT48C10.INC
;----------------------------
DATA .SECTION 'DATA'
count db ? ; 用作记录循环次数
count1 db ?
;----------------------------
CODE .SECTION 'CODE'
ORG 00H
JMP START
ORG 04H
reti
ORG 08H
reti
START:
CLR PBC ; 将PB口设为输出口
SET PB
CLR PB.3 ; 给出 ‘SYS EN’命令码‘100 0000 0001X’
CLR PB.1
SET PB.1 ; 1
CLR PB.0
MOV A,9 ; 9 个 '0'
MOV count,A
LOOP1:
CLR PB.1
SET PB.1
SDZ count
JMP LOOP1
SET PB.0
clr pb.1
set pb.1 ; 1
clr pb.1
set PB.1 ; X, SYS ENABLE command OK
set pb.3
;*****************************************************
; 给出‘LCD ON’命令码 100 000000 11X
clr pb.3 ; 拉低CS脚
set pb.0
CLR PB.1 ;
SET PB.1 ; 1
MOV A, 8 ; 9 个 '0'
MOV count,A
CLR PB.0
LOOP2:
CLR PB.1
SET PB.1
SDZ count
JMP LOOP2
SET PB.0
CLR PB.1
SET PB.1 ; 1
CLR PB.1
SET PB.1 ; 1
CLR PB.1
SET PB.1 ; X, LCD ON command OK
SET PB.3
;*****************************************************
;将所有LCD点亮
;给出写模式码: 101
LOP:
CLR PB.3
SET PB.0
CLR PB.1
SET PB.1 ; 1
CLR PB.0
CLR PB.1
SET PB.1 ; 0
SET PB.0
CLR PB.1
SET PB.1 ; 1
;**************************************************
;给出初始地址‘000000’
;连续写时,只需给出初始地址
CLR PB.0
MOV A,6 ; 6 个 '0'
MOV count,A
LOOP3:
CLR PB.1
SET PB.1
SDZ count
JMP LOOP3
MOV A,01FH
MOV count1,A ; 给出写的长度:32
;***************************************************
;将所有RAM区写‘1’,点亮所有的点
LOOP8:
SET PB.0
MOV A,4 ; 4 个 '1'
MOV count,A
LOOP4:
CLR PB.1
SET PB.1
SDZ count
JMP LOOP4
SDZ count1
JMP LOOP8
SET PB.3 ;32个RAM全部点亮
jmp $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -