📄 12864.asm
字号:
;*********************************************
;* LCD12864 *
;* 孙高朝 17/11/2008 *
;*********************************************
RS EQU P2.7
RW EQU P2.6
EN EQU P2.5
PSB EQU P2.4
RST EQU P2.2
COUNT EQU 30H
STORE EQU 31H
LCD_X EQU 32H
LCD_Y EQU 33H
COUNT1 EQU 34H
COUNT2 EQU 35H
COUNT3 EQU 36H
ORG 00H
AJMP MAIN
ORG 0100H
MAIN:
ACALL INI
ACALL DELAY2
ACALL LOGO
LCALL CLEAR
ACALL HANZI
ACALL DELAY2
LCALL CLEAR
AJMP MAIN
;************************************
;* lcd初始化 *
;************************************
INI:
CLR RST
LCALL DELAY2
SETB PSB
SETB RST
MOV A,#34H ;扩展指令集
LCALL WR_COMM
MOV A,#30H ;基本指令集
LCALL WR_COMM
MOV A,#01H ;清屏
LCALL WR_COMM
MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
LCALL WR_COMM
MOV A,#0CH ;开显示,关光标,不闪烁
LCALL WR_COMM
RET
;*****************显示汉字************
HANZI:
HANZI1:
MOV DPTR,#TABLE1 ;取表
MOV COUNT,#10H ;16字节 8个汉字
MOV A,#80H ;DDRAM第一行地址
LCALL WR_COMM
ACALL QUSHU
HANZI2:
MOV DPTR,#TABLE2
MOV COUNT,#10H
MOV A,#90H
LCALL WR_COMM
ACALL QUSHU
HANZI3:
MOV DPTR,#TABLE3
MOV COUNT,#10H
MOV A,#88H
LCALL WR_COMM
ACALL QUSHU
HANZI4:
MOV DPTR,#TABLE4
MOV COUNT,#16
MOV A,#98H
LCALL WR_COMM
ACALL QUSHU
LCALL DELAY2
LCALL SHANGSHUO
RET
;*****************开机图形显示***********
LOGO:
MOV DPTR,#TUTAB1
LCALL CHULI
LCALL DELAY1
RET
;****************图形显示处理*********
CHULI:
MOV COUNT3,#02H ;重新定义GDRAM内存分布
MOV LCD_X,#80H
C3: MOV LCD_Y,#80H
MOV COUNT2,#20H
C2: MOV COUNT1,#10H
LCALL QISHI
C1:
CLR A
MOVC A,@A+DPTR
LCALL WR_DATA
INC DPTR
DJNZ COUNT1,C1
INC LCD_Y
DJNZ COUNT2,C2
MOV LCD_X,#88H
DJNZ COUNT3,C3
MOV A,#36H ;开扩展指令集,开图形显示G=1
LCALL WR_COMM
MOV A,#30H
LCALL WR_COMM
RET
;*************定义坐标起始点******
QISHI:
MOV A,#34H ;扩展指令集,关图形显示G=0
LCALL WR_COMM
MOV A,LCD_X
LCALL WR_COMM
MOV A,LCD_Y
LCALL WR_COMM
MOV A,#30H
LCALL WR_COMM
RET
;*****************字体闪烁************
SHANGSHUO:
MOV R3,#3
S1: MOV A,#08H ;关显示
LCALL WR_COMM
LCALL DELAY1
MOV A,#0CH
LCALL WR_COMM ;开显示
LCALL DELAY1
DJNZ R3,S1 ;循环闪烁
RET
;*****************读取数据************
QUSHU:
CLR A
MOVC A,@A+DPTR ;查表取数据
LCALL WR_DATA ;送显示
INC DPTR
LCALL DELAY2 ;延时1ms,
DJNZ COUNT,QUSHU
RET
;************清屏程序*****************
CLEAR:
MOV A,#01H
LCALL WR_COMM
RET
;*************************************
;* 写命令子程序 *
;* RS=0,RW=0,EN=1 *
;*************************************
WR_COMM:
ACALL CHK_BUSY
CLR RS
CLR RW
MOV P0,A
SETB EN
NOP
NOP
CLR EN
RET
;*************************************
;* 写数据 子程序 *
;* RS=1,RW=0,EN=1 *
;*************************************
WR_DATA:
ACALL CHK_BUSY
SETB RS
CLR RW
MOV P0,A
SETB EN
NOP
NOP
CLR EN
RET
;================================================
;读数据子程序
;RS=1,RW=1,E=H,D0-D7=数据
;================================================
RD_DATA:
LCALL CHK_BUSY ;读数据子程序
SETB RS
SETB RW
SETB EN
NOP
MOV A,P0
CLR EN
MOV STORE,A
RET
;*************************************
;* 循环测忙子程序 *
;* RS=0,RW=1,EN=1 *
;*************************************
CHK_BUSY:
MOV P0,#0FFH
CLR RS
SETB RW
NOP
NOP
SETB EN
JB P0.7,$
CLR EN
RET
;***************延时程序**************
DELAY1:
MOV R0,#50 ;1s延时
D1: MOV R1,#100
D2: MOV R2,#100
DJNZ R2,$
DJNZ R1,D2
DJNZ R0,D1
DELAY2:
MOV R4,#5 ;1ms延时
D3: MOV R5,#100
D4: MOV R6,#100
DJNZ R6,$
DJNZ R5,D4
DJNZ R4,D3
RET
;*************汉字字符表***************
TABLE:
TABLE1: DB ' 福建农林大学 ' ;第一行汉字
TABLE2: DB '05电科 孙高朝' ;第二行汉字
TABLE3: DB ' welcome to mcu ' ;第三行汉字
TABLE4: DB ' www.fafu.com ' ;第四行汉字
;*************图形字符表***************
TUTAB:
TUTAB1:
db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h
db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 11h,0FFh, 80h, 40h, 08h, 30h, 10h, 20h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 68h, 3Fh,0FFh, 08h, 30h, 11h,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 68h, 3Fh,0FFh, 08h, 30h, 11h,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h,0FFh, 00h, 00h, 7Fh,0FEh, 7Dh, 08h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 11h, 6Bh, 07h,0FCh, 16h, 30h, 2Dh,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh,0FFh, 04h, 0Ch, 16h, 30h, 2Dh, 08h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 00h, 3Fh,0FFh, 16h, 30h, 2Dh,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 00h, 3Fh,0FFh, 16h, 30h, 2Dh,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch,0FFh, 30h, 01h, 66h,0FEh, 2Dh, 26h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 1Ch, 00h, 03h,0F0h, 76h, 82h, 2Dh, 28h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh,0FFh, 82h, 11h, 08h, 82h, 11h, 10h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 8Bh, 04h, 11h, 16h, 82h, 2Dh, 28h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 8Bh, 04h, 11h, 16h, 82h, 2Dh, 28h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh, 18h,0B8h, 1Fh, 60h,0FEh, 41h,0C6h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 07h, 8Fh,0FFh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 08h, 70h, 40h,0EFh, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 08h, 70h, 40h,0EFh, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 10h, 00h, 80h, 10h, 60h, 00h, 0Fh,0FFh, 30h, 0Ch, 00h, 80h, 00h, 00h, 00h
db 00h, 20h, 18h, 38h, 20h, 60h, 00h, 00h, 60h, 08h, 0Ch, 1Fh,0FCh, 1Ch, 00h, 00h
db 00h,0C0h, 64h, 45h, 00h, 60h, 00h, 03h,0FCh, 0Bh,0FFh, 00h, 80h, 3Eh, 00h, 00h
db 00h,0C1h, 00h, 01h, 00h, 10h, 00h, 00h, 80h, 00h, 0Ch, 08h, 88h, 3Eh, 00h, 00h
db 00h,0C1h, 00h, 01h, 00h, 10h, 00h, 00h, 80h, 00h, 0Ch, 08h, 88h, 3Eh, 00h, 00h
db 01h, 01h, 00h, 00h,0C0h, 10h, 00h, 1Fh,0FFh,0BDh, 8Ch, 06h,0B0h, 3Eh, 00h, 00h
db 02h, 0Eh, 18h, 1Ch,0C0h, 10h, 00h, 01h, 00h, 04h, 4Ch, 7Fh,0FEh, 1Ch, 00h, 00h
db 02h, 16h, 64h, 22h, 20h, 10h, 00h, 03h,0FCh, 04h, 4Ch, 01h,0C0h, 1Ch, 00h, 00h
db 02h, 16h, 64h, 22h, 20h, 10h, 00h, 03h,0FCh, 04h, 4Ch, 01h,0C0h, 1Ch, 00h, 00h
db 04h,0E8h, 83h, 41h, 1Ch, 08h, 00h, 0Dh, 04h, 04h, 0Ch, 06h,0B0h, 00h, 00h, 00h
db 07h, 10h, 8Fh, 47h, 03h, 88h, 00h, 11h,0FCh, 04h, 3Ch, 08h, 88h, 1Ch, 00h, 00h
db 00h, 20h, 6Ch, 26h, 01h, 78h, 00h, 01h, 04h, 0Ah, 00h, 70h, 86h, 1Ch, 00h, 00h
db 00h,0C0h, 18h, 1Ch, 00h, 80h, 00h, 01h,0FCh, 31h,0FFh, 00h, 80h, 00h, 00h, 00h
db 00h,0C0h, 18h, 1Ch, 00h, 80h, 00h, 01h,0FCh, 31h,0FFh, 00h, 80h, 00h, 00h, 00h
db 00h,0C1h, 87h, 80h, 00h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 06h, 78h, 3Ch, 20h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 07h,0C2h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 00h, 01h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 00h, 01h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 18h, 01h,0C0h, 60h, 00h, 00h, 00h,0F1h,0F3h, 87h,0C0h, 00h, 00h, 00h
db 00h,0C6h, 18h,0C2h, 20h, 80h, 00h, 00h, 03h, 0Eh, 1Ch, 78h, 70h, 00h, 00h, 00h
db 00h,0C1h, 00h,0C2h, 00h, 80h, 00h, 00h, 04h, 44h, 11h, 10h, 38h, 00h, 00h, 00h
db 00h, 26h,0E0h, 04h, 01h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h
db 00h, 26h,0E0h, 04h, 01h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h
db 00h, 11h, 18h, 38h, 03h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h
db 00h, 0Eh, 87h,0C2h, 1Ch, 00h, 00h, 00h, 04h, 00h, 10h, 00h, 38h, 00h, 00h, 00h
db 00h, 01h,0E0h, 04h,0E0h, 00h, 00h, 00h, 03h, 00h, 1Ch, 00h, 70h, 00h, 00h, 00h
db 00h, 1Eh, 18h, 3Fh, 1Eh, 00h, 00h, 00h, 00h, 80h, 32h, 00h,0C0h, 00h, 00h, 00h
db 00h, 1Eh, 18h, 3Fh, 1Eh, 00h, 00h, 00h, 00h, 80h, 32h, 00h,0C0h, 00h, 00h, 00h
db 00h, 38h, 07h,0C0h, 0Fh, 00h, 00h, 00h, 00h, 40h, 61h, 01h, 80h, 00h, 00h, 00h
db 00h,0E9h,0FFh,0FFh, 0Dh, 80h, 00h, 00h, 00h, 31h,0C0h, 87h, 00h, 00h, 00h, 00h
db 01h,0E9h, 1Bh,0B9h, 0Dh,0E0h, 00h, 00h, 00h, 0Bh, 80h, 6Eh, 00h, 00h, 00h, 00h
db 03h,0C9h,0F0h, 1Fh, 0Ch,0F0h, 00h, 00h, 00h, 06h, 00h, 18h, 00h, 00h, 00h, 00h
db 03h,0C9h,0F0h, 1Fh, 0Ch,0F0h, 00h, 00h, 00h, 06h, 00h, 18h, 00h, 00h, 00h, 00h
db 07h, 06h,0E0h, 06h, 10h, 78h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 07h,0C1h, 00h, 00h, 20h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 07h,0E0h, 80h, 00h,0C1h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 07h,0E0h, 80h, 00h,0C1h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h
db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -