📄 test1.asm
字号:
;指定两个用户通话
CR EQU 31H
CR_BACK EQU 35H
PAGE_ADD EQU 71H
COL_MSB EQU 64H
COL_LSB EQU 6dH
DATA_COUNT EQU 6eH
SUB_CHAR EQU 6fH
org 0000h
ljmp start
org 100h
start: nop
nop
LCALL DELAY
NOP
init_lcd: NOP
NOP
MOV CR,#1BH ;096B01 #013h is currect
MOV A,#0E2H ;initialize interal function
LCALL WCOM ;write interal reset
LCALL DELAY
MOV A,#2CH;power control(VB,VR,VF=1,1,1)
LCALL WCOM
LCALL DELAY
MOV A,#2EH;power control(VB,VR,VF=1,1,1)
LCALL WCOM
LCALL DELAY
MOV A,#2FH;power control(VB,VR,VF=1,1,1)
LCALL WCOM
LCALL DELAY
MOV A,#25H;096B01 23h is currect ;Regulator resistor select 110
LCALL WCOM
LCALL DELAY
MOV A,#81H;set reference voltage mode
LCALL WCOM
LCALL DELAY
MOV A,CR ;set reference voltage
LCALL DELAY
LCALL WCOM
LCALL DELAY
MOV A,#0C8H;set SHL COM1 to COM64 start page setup
LCALL WCOM
LCALL DELAY
MOV A,#0A0H;ADC select SEG1 to SEG132
LCALL WCOM
LCALL DELAY
MOV A,#40H;Initial Display Line was first line
LCALL WCOM
LCALL DELAY
MOV A,#0A6H;set nomal display
LCALL WCOM
LCALL DELAY
MOV A,#0AFH ;set display ON
LCALL WCOM
ST1: MOV DPTR,#T1_LABLE;显示LOGO
LCALL display
;初始化
MOV DPTR,#0FFFBH ;U7控制口片选 PA口方式0输出,PC0~7口输入,PB口方式0输出
MOV A,#89H
MOVX @DPTR,A
MOV DPTR,#0FFF7H ;U8控制口片选 PA口方式0输出,PC0~7口输入,PB口方式0输出
MOV A,#89H
MOVX @DPTR,A
MOV A,#00H
MOV DPTR,#0FFF9H ;U7的B口
MOVX @DPTR,A
MOV DPTR,#0FFF8H ;U7的A口
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#0FFF4H ;U8的A口
MOV A,#18H
MOVX @DPTR,A
MOV 70H,#01H ;第几个电话标志
MOV R7,#20H
MOV R0,#01H
MOV R1,#20H
LOOP2: MOV DPTR,#0FFF8H ;U7的A口
MOV A,R1
MOVX @DPTR,A ;第几时隙 00 000000~00 100000
MOV DPTR,#0FFF4H ;U8的A口
INC A
MOV R1,A
MOV A,R0
MOVX @DPTR,A ;00000 001 高3位数据
DJNZ R7,LOOP2
MOV DPTR,#0FFF8H ;U7的A口
MOV A,#00H
MOVX @DPTR,A ;00 100000
MOV DPTR,#0FFF4H ;U8的A口
MOV A,#90H ;11 0 00 000
MOVX @DPTR,A
MOV R7,#20H
MOV R0,#0AH
MOV R1,#20H
LOOP3: MOV DPTR,#0FFF8H ;U7的A口
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#0FFF4H ;U8的A口
INC A
MOV R1,A
MOV A,R0
MOVX @DPTR,A
DJNZ R7,LOOP3
;初始化完成
start1: MOV 60H,#21H //第一用户的收时隙地址
MOV 61H,#02H //第二用户的发时隙
MOV 62H,#01H //第一用户的收时隙
MOV 63H,#22H //第二用户的发时隙地址
NOP
MOV DPTR,#CHAR ;显示第一用户
MOV COL_MSB,#14H
MOV COL_LSB,#02H
MOV DATA_COUNT,#04H
MOV A,62H
MOV B,#04H
MUL AB
MOV SUB_CHAR,A
MOV PAGE_ADD,#0B6H
LCALL write_lcd_data
LCALL DELAY
LCALL DELAY
MOV DPTR,#CHAR ;显示第二用户
MOV COL_MSB,#16H ;列高位地址
MOV COL_LSB,#0BH ;列低位地址
MOV DATA_COUNT,#04H ;数据个数
MOV A,61H
MOV B,#04H
MUL AB
MOV SUB_CHAR,A ;显示字符
MOV PAGE_ADD,#0B6H ;显示页面地址
LCALL write_lcd_data ;写LCD数据
chager: MOV DPTR,#0FFF8H ;接通交换 ;U7的A口
MOV A,60H
MOVX @DPTR,A
NOP
MOVX @DPTR,A
NOP
NOP
NOP
NOP
NOP
MOV DPTR,#0FFF4H ;U8的A口
MOV A,61H
MOVX @DPTR,A
NOP
MOVX @DPTR,A
NOP
NOP
NOP
NOP
NOP
NOP
MOV DPTR,#0FFF8H ;U7的A口
MOV A,63H
MOVX @DPTR,A
NOP
MOVX @DPTR,A
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV DPTR,#0FFF4H ;U8的A口
MOV A,62H
MOVX @DPTR,A
NOP
MOVX @DPTR,A
LCALL DELAY
LJMP $
;===========================================
write_lcd_data: PUSH ACC
MOV A,R0
PUSH ACC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -