📄 test2.asm
字号:
org 000H
jmp begin
;=====硬件连接参加如下=========================
CS1 EQU P1.0 ;
RES EQU P1.1 ;复位端,低电平触发有效,正常时 高电平
A0 EQU P1.2 ;
RW EQU P1.3 ;
E_RD EQU P1.4 ;
Data_bus data P0 ;LCM Data bus
;----------------------------------------------
HZ_P data 51H ;页地址
HZ_C data 52H ;行地址
HZ_H data 53H ;字高 16x16显示的时候 =2
ORG 0030H
begin:
call lcm_init ;初始化
MOV R5,#08H
MOV R3,#00H
call busy_check
call clr_screen ;清屏
call delay
MOV DPTR,#PIC1 ;显示图片1
call disp_pic
call delay_ns
call clr_screen
ljmp begin
;=======================显示一屏图片============================
Disp_PIC:
;mov R3,#0
;MOV DPTR,#PIC3 ;图片地址
MOV R2,#10110000b ;显示行(页,共8页 0~7)
DPC2:
MOV A,R2 ;set page address
LCALL TCOM
MOV A,#00010000B ;set column address MSB ;列地址 高4位
LCALL TCOM
MOV A,#00000000B ;set column address LSB ;列地址 低4位 128x64 列地址从0~128
LCALL TCOM
MOV R1,#08H ;set (8*16)*16characters ;每行(页)显示8x16单元数
DPC1:
MOV R0,#016 ;显示列数
DPC0:
MOV A,#0h ;R3=char 偏移量
MOVC A,@A+DPTR
CALL TDATA
INC DPTR
DJNZ R0,DPC0 ;显示一个 8x16图案
DJNZ R1,DPC1 ;
INC R2 ;行地址增加
CJNE R2,#0B8H,DPC2 ; 下个行地址超过就退出循环
RET
;--------------------Over---------------------------------------
;子程序:
;===LCM initalization 初始化=======
LCM_INIT:
LCALL DELAY
CLR RES ;initalization reset 硬复位
LCALL DELAY
LCALL DELAY
SETB RES
LCALL DELAY
MOV A,#11100010B ;initialize interal function软件复位
LCALL TCOM
LCALL DELAY
MOV A,#10100010B ;set LCD bias=1/9 LCD偏压设置LCD bias=1/9
LCALL TCOM
MOV A,#11001000B ;set SHL COM1 to COM64 =C0H,set SHL COM64 to COM1 =C8H 确定COM口扫描的方向,现在为COM63-COM0
LCALL TCOM
MOV A,#10100000B ;ADC select SEG0 to SEG131 A1H 显示图像左右镜像 ADC选择
LCALL TCOM
MOV A,#01000000B ;Initial Display Line 设置了对应显示屏上首行的显示RAM行号
LCALL TCOM
MOV A,#00101100B ;上电控制设置
LCALL TCOM
LCALL DELAY
MOV A,#00101110B ;上电控制设置
LCALL TCOM
LCALL DELAY
MOV A,#00101111B ;power control(VC,VR,VF=1,1,1) 上电控制设置
LCALL TCOM
LCALL DELAY
;----------------------------
MOV A,#00100011B ;Regulator resistor select 对比度设置 020H~027H V5电压内部电阻调整设置
LCALL TCOM
MOV A,#10000001B ;set reference voltage mode 设置为电量设置模式
LCALL TCOM
MOV A,#00011001B ;set reference voltage 亮度电压调节 00H~03FH 先发指令 81H,后写具体值
LCALL TCOM
;以上2条指令互相配合可以调节到合适得对比度
MOV A,#10100110B ;set reverse display OFF,正反显示设置;A6正显示;A7反显示 ;现为正显示
LCALL TCOM
MOV A,#11010010B ;driving mode set 驱动模式设置
LCALL TCOM
MOV A,#000H ;MODE 1 选择模式2
LCALL TCOM
MOV A,#10101111B ;turns the display ON 开启显示
LCALL TCOM
ret
;===延时子程序=================================
DELAY: ;time = 40Hx(41Hx2+1+2)us CY=12MHZ
MOV 40H,#0100 ;10.05ms ;32h
DELAY1:
MOV 41H,#051
DELAY2:
DJNZ 41H,DELAY2 ;192us
DJNZ 40H,DELAY1
RET
Delay_ns: ;100ms
mov R6,#200
dns1:
call delay
djnz r6, dns1
ret
;=====送命令,CS1=0 A0=0 RD=1,RW 0-->1
TCOM:
SETB RES
SETB CS1
setb RW
setb E_RD
CLR A0 ;A0=0
nop
nop
CLR CS1 ;CS1=0
nop
nop
mov data_bus,a ;DATA
nop
nop
clr rw ;RW 0-->1
nop
nop
setb rw
setb cs1
SETB A0
setb E_RD
SETB RES
ret
;=======送显示数据======= A0=1 CS1=0 RD=1 RW 0-->1
TDATA:
SETB RES
SETB CS1
SETB A0
SETB RW
CLR CS1
SETB E_RD
TRANSMIT:
MOV DATA_bus,A
SETB RW
NOP
NOP
NOP
CLR RW
nop
nop
SETB CS1
SETB E_RD
SETB RW
SETB A0
SETB RES
RET
;======亮度测试========
Light_test:
mov r7,#00H
LT_LOOP:
call delay_ns
MOV A,#10000001B ;set column address MSB ;列地址 高4位 设置为电量设置模式
CALL TCOM
mov a,r7
call tcom ;change亮度
cjne r7,#03Fh,LTA
mov r7,#00h
jmp lt_loop
LTA:
inc R7
jmp LT_LOOP
;==========清屏==========================================
;实际上就是RAM中全写00H
;========================================================
clr_screen:
mov r2,#0B0h
clr_2:
MOV A,R2 ;set page address
LCALL TCOM
MOV A,#010H ;set column address MSB ;列地址
LCALL TCOM
MOV A,#00H ;set column address LSB ;列地址
LCALL TCOM
MOV R1,#010H ;set (8*8)*16characters
clr1:
MOV R0,#08H
clr0:
mov a,#00h
call tdata
DJNZ R0,clr0
DJNZ R1,clr1
INC R2
LCALL DELAY
CJNE R2,#0B8H,clr_2
ret
;----------------CLR Screen Over-------------------------
;====忙查寻==============================================
;在高速中,使用忙查询会稳定显示效果
;========================================================
busy_check:
mov data_bus,#0FFH
mov a,data_bus
SETB CS1
CLR CS1 ;cs1=0
CLR A0 ;a0=0
setb RW ;RW=1
clr e_rd ;RD=0
nop
nop
mov a,data_bus
setb e_rd
nop
nop
setb cs1 ;
;jmp busy_check
ret
PIC1:
DB 000H,000H,000H,000H,000H,000H,000H,020H,060H,0F0H,050H,048H,058H,0D0H,050H,0D0H
DB 0C0H,080H,080H,0F8H,000H,000H,000H,000H,0B0H,0B0H,058H,0FCH,058H,000H,050H,078H
DB 0FCH,028H,0C8H,0C8H,0C0H,000H,000H,000H,010H,0F0H,0B0H,0B0H,0F0H,0FCH,07CH,058H
DB 058H,0D8H,0F0H,010H,000H,000H,000H,000H,000H,010H,090H,098H,0B8H,0E8H,0E8H,0A8H
DB 098H,098H,080H,080H,080H,000H,000H,000H,010H,030H,010H,010H,010H,0F0H,010H,010H
DB 010H,010H,010H,000H,000H,000H,000H,030H,030H,0F0H,058H,0C8H,0C0H,0F0H,078H,060H
DB 060H,060H,060H,060H,020H,000H,000H,000H,070H,010H,050H,0F0H,0F0H,0A8H,0A8H,0E8H
DB 0B0H,0B0H,010H,010H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,010H,01FH,01AH,00BH,009H,00CH,000H,010H
DB 010H,010H,018H,01FH,000H,000H,000H,010H,030H,032H,032H,019H,009H,00FH,005H,005H
DB 007H,003H,000H,000H,000H,000H,000H,000H,000H,007H,004H,002H,003H,01FH,012H,012H
DB 012H,033H,030H,030H,038H,008H,000H,003H,003H,003H,001H,021H,021H,031H,01FH,000H
DB 000H,001H,001H,001H,000H,000H,000H,00CH,00CH,00CH,004H,006H,006H,007H,006H,006H
DB 00CH,00CH,00CH,00CH,000H,000H,000H,000H,000H,01FH,000H,000H,000H,03FH,009H,009H
DB 009H,009H,009H,009H,000H,000H,000H,000H,020H,010H,01DH,015H,015H,01DH,01FH,01EH
DB 016H,035H,030H,030H,010H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,020H,0E0H,0E0H,020H,0C0H,020H,0E0H,0E0H,020H,0E0H,0E0H,020H,0C0H
DB 020H,0E0H,0E0H,020H,0E0H,0E0H,020H,0C0H,020H,0E0H,0E0H,020H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,0C0H,0E0H,020H,020H,020H,0E0H,000H,000H,0C0H,0E0H,020H
DB 048H,0F8H,0F8H,000H,000H,020H,0E0H,0E0H,040H,020H,060H,000H,000H,0C0H,0E0H,0A0H
DB 0A0H,0E0H,0C0H,000H,000H,000H,0A0H,0A0H,0A0H,0E0H,0C0H,020H,0E0H,0E0H,020H,0E0H
DB 0E0H,020H,0E0H,0C0H,000H,000H,078H,038H,028H,0E8H,0C8H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,0C0H,0E0H,020H,020H,020H,0E0H,000H,000H,0C0H,0E0H,020H
DB 020H,0E0H,0C0H,020H,0E0H,0E0H,020H,0E0H,0E0H,020H,0E0H,0C0H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,007H,007H,000H,007H,007H,000H,000H,000H,007H,007H,000H
DB 007H,007H,000H,000H,000H,007H,007H,000H,007H,007H,000H,000H,000H,000H,000H,006H
DB 006H,000H,000H,000H,000H,003H,007H,004H,004H,004H,002H,000H,000H,003H,007H,004H
DB 002H,007H,007H,004H,000H,004H,007H,007H,004H,004H,000H,000H,000H,003H,007H,004H
DB 004H,004H,002H,000H,000H,003H,007H,004H,004H,007H,007H,004H,007H,007H,000H,007H
DB 007H,000H,007H,007H,004H,002H,004H,004H,004H,007H,003H,000H,000H,000H,000H,006H
DB 006H,000H,000H,000H,000H,003H,007H,004H,004H,004H,002H,000H,000H,083H,087H,084H
DB 084H,087H,083H,084H,007H,007H,000H,007H,007H,000H,007H,007H,004H,000H,000H,000H
DB 000H,040H,048H,048H,0F8H,04CH,048H,000H,0F8H,048H,048H,048H,048H,0F8H,000H,000H
DB 000H,000H,0F0H,010H,050H,050H,054H,0D8H,050H,0D0H,050H,050H,018H,010H,000H,080H
DB 0E0H,09CH,0C0H,000H,0F0H,050H,050H,054H,058H,050H,050H,070H,000H,000H,000H,020H
DB 018H,008H,0E8H,048H,048H,048H,048H,048H,048H,068H,018H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,078H,048H,048H,048H,048H,048H,048H,07CH
DB 008H,000H,000H,000H,000H,040H,058H,0D0H,050H,050H,010H,0DCH,070H,0D0H,050H,058H
DB 0C0H,000H,000H,000H,000H,000H,000H,000H,0F0H,0FCH,00EH,087H,09BH,019H,018H,000H
DB 000H,000H,018H,019H,09BH,087H,00EH,0FCH,0F0H,000H,000H,000H,000H,000H,000H,000H
DB 000H,010H,00CH,003H,0FFH,002H,084H,092H,092H,092H,0FEH,092H,092H,092H,082H,000H
DB 080H,060H,01FH,002H,002H,002H,042H,082H,07FH,002H,002H,00AH,006H,002H,000H,024H
DB 06EH,025H,094H,060H,01FH,0FFH,009H,07FH,009H,07FH,089H,0FFH,000H,000H,000H,010H
DB 010H,013H,012H,012H,012H,012H,052H,092H,042H,03EH,000H,000H,000H,000H,000H,000H
DB 063H,063H,000H,000H,000H,084H,084H,085H,045H,045H,025H,01DH,007H,01DH,025H,045H
DB 045H,084H,084H,000H,085H,08BH,059H,02FH,039H,04BH,085H,067H,015H,07FH,0A5H,0B5H
DB 0A7H,0E0H,000H,000H,000H,000H,000H,000H,003H,00FH,01CH,039H,037H,066H,04CH,048H
DB 048H,048H,04CH,066H,037H,039H,01CH,00FH,003H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,040H,040H,0E0H,0E0H,000H,000H,000H,000H,000H,040H,060H,020H,020H,020H
DB 020H,0E0H,0C0H,000H,000H,0C0H,0E0H,020H,020H,020H,020H,0E0H,0C0H,000H,000H,080H
DB 080H,000H,000H,000H,000H,080H,080H,000H,000H,000H,080H,0C0H,060H,020H,020H,020H
DB 000H,000H,000H,000H,000H,080H,0C0H,060H,0E0H,0E0H,000H,000H,000H,000H,000H,000H
DB 080H,0C0H,060H,020H,020H,020H,060H,040H,000H,000H,080H,0C0H,060H,020H,020H,060H
DB 0C0H,080H,000H,000H,080H,0C0H,060H,020H,020H,020H,060H,040H,000H,000H,000H,000H
DB 020H,0C2H,00CH,080H,0FCH,004H,0F4H,004H,0FCH,000H,0F8H,000H,0FEH,000H,000H,000H
DB 080H,084H,098H,000H,010H,090H,090H,090H,090H,0FEH,010H,014H,018H,010H,000H,000H
DB 000H,010H,010H,010H,01FH,01FH,010H,010H,010H,000H,000H,018H,01CH,014H,016H,013H
DB 011H,011H,010H,000H,000H,00EH,01FH,011H,011H,011H,011H,01FH,00EH,000H,000H,010H
DB 019H,00FH,006H,006H,00FH,019H,010H,000H,000H,00FH,01FH,011H,011H,011H,011H,01FH
DB 00EH,000H,000H,006H,007H,005H,004H,004H,01FH,01FH,004H,004H,000H,000H,000H,000H
DB 007H,00FH,018H,010H,010H,010H,018H,008H,000H,000H,007H,00FH,018H,010H,010H,018H
DB 00FH,007H,000H,000H,007H,00FH,018H,010H,010H,012H,00EH,01EH,000H,000H,000H,000H
DB 004H,07CH,003H,040H,027H,010H,00FH,010H,067H,000H,027H,040H,03FH,000H,000H,000H
DB 000H,000H,07FH,020H,010H,020H,020H,01FH,010H,010H,007H,018H,020H,078H,000H,000H
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -