📄 12864.asm
字号:
/******************************************************************************
Title: 演示程序15 -12864 LCM显示程序 * *
Name: 12864.asm *
Date: 2006-01-25 *
Ver: 1.0 * *
web: http://www.CPLD-FPGA.NET *
现象: *
128×64 点阵型LCD显示演示程序 * *
********************************************************************************/
;***************硬件端口定义***********
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
CS1 EQU P2.3
CS2 EQU P2.4
RST EQU P2.5
COM EQU 20H ;指令数据寄存器
DAT EQU 21H ;显示数据寄存器
;**********************************主程序入口地址
ORG 0000H
AJMP STR
ORG 0003H
;*********************************中断程序入口地址
STR:
AJMP L0100
L0100: CLR RST
NOP
NOP
SETB RST
;********************************以上是软件复位
MOV SP,#60H
MOV IE,#81H ;中断允许
MOV IP,#01H ;优先中断
MOV TCON,#00H ;电平中断
MOV COM,#3FH ;显示开
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
;----------------------------------------------------------------------
MOV COM,#0C0H ;第一行
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
;----------------------------------------------------------------------
MOV COM,#0B8H ;第一页
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
;----------------------------------------------------------------------
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
;********************************************************以上是软件初始化
MOV B,#0AAH
LCALL XIHX ;显示横线1
LCALL DELAY
; MOV B,#55H
; LCALL XIHX
; LCALL DELAY ;显示横线2
MOV B,#0FFH
MOV 29H,#00H
LCALL XISX
LCALL DELAY ;显示竖线1
; MOV B,#00H
; MOV 29H,#0FFH
; LCALL XISX
; LCALL DELAY ;显示竖线2
MOV DPTR,#TAB1
LCALL LEFT
MOV DPTR,#TAB2
LCALL RIGHT
LCALL DELAY ;显示第一幅图片
AJMP L0100
;=======================================================以上是主程序
LEFT: MOV R1,#0B8H
_AB: MOV COM,R1 ;第一页
LCALL S02A9 ;左半屏写指令子程序
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏写指令子程序
MOV R0, #64
S027B: MOV A,#00H
MOVC A,@A+DPTR
MOV DAT,A
LCALL S02B1 ;左半屏写数据子程序
INC DPTR
DJNZ R0,S027B
INC R1
CJNE R1, #0C0H,_AB
RET
;======================================================以上是左半屏写数据子程序
RIGHT: MOV R1,#0B8H
ABC: MOV COM,R1 ;第一页
LCALL S02C1 ;右半屏写指令子程序
MOV COM,#40H ;第一列
LCALL S02C1 ;右半屏写指令子程序
MOV R0, #64
S027D: MOV A,#00H
MOVC A,@A+DPTR
MOV DAT,A
LCALL S02B9 ;右半屏写数据子程序
INC DPTR
DJNZ R0,S027D
INC R1
CJNE R1, #0C0H,ABC
RET
;*******************************************************以上是右半屏写数据子程序
XIHX: MOV R1,#0B8H
BA: MOV COM,R1 ;第一页
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
MOV R0, #64
W027B: MOV DAT,B
LCALL S02B1 ;左半屏写数据子程序
LCALL S02B9 ;右半屏写数据子程序
DJNZ R0,W027B
INC R1
CJNE R1, #0C0H,BA
RET
;---------------------------------------------------------
XISX: MOV R1,#0B8H
CA: MOV COM,R1 ;第一页
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
MOV COM,#40H ;第一列
LCALL S02A9 ;左半屏写指令子程序
LCALL S02C1 ;右半屏写指令子程序
MOV R0, #32
X027B: MOV DAT,B
LCALL S02B1 ;左半屏写数据子程序
LCALL S02B9 ;右半屏写数据子程序
MOV DAT,29H
LCALL S02B1 ;左半屏写数据子程序
LCALL S02B9 ;右半屏写数据子程序
DJNZ R0,X027B
INC R1
CJNE R1, #0C0H,CA
RET
;****************************************************以上是显示线条程序
S02A9: SETB CS1
LCALL S02C9
CLR CS1 ;左半屏写指令子程序
RET
S02B1: SETB CS1 ;左半屏写数据子程序
LCALL S02E0
CLR CS1
RET
S02C1: SETB CS2 ;右半屏写指令子程序
LCALL S02C9
CLR CS2
RET
S02B9: SETB CS2 ;右半屏写数据子程序
LCALL S02E0
CLR CS2
RET
;****************************************************
S02C9: CLR RS
SETB RW
S02C9A: MOV P0,#0FFH
SETB E
MOV A, P0
CLR E
JB ACC.7,S02C9A
CLR RW
MOV P0,COM
SETB E
NOP
CLR E
RET
;*************************************************以上是写指令子程序
S02E0: CLR RS
SETB RW
S02E0A: MOV P0,#0FFH
SETB E
MOV A, P0
CLR E
JB ACC.7,S02E0A
SETB RS
CLR RW
MOV P0,DAT
SETB E
NOP
CLR E
RET
;************************************************以上是写数据子程序
DELAY: MOV R5,#0BH ;延时
D1: MOV R7,#0FFH
D2: MOV R6,#0FFH
D3: DJNZ R6,$
DJNZ R7,D2
DJNZ R5,D1
RET
;****************************************************************
TAB1:
;-- 调入菲戈幅图像左半屏:纵向取模下高位,数据排列:从左到右从上到下
;-- 宽度x高度=64x64
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 80h, 20h, 0Ah
db 4Ah, 3Ch, 40h,0BEh, 00h, 54h, 00h, 24h, 42h,0A8h, 00h,0EEh, 00h, 42h, 06h, 48h
db 12h, 44h, 12h, 44h,0A8h, 02h, 20h, 04h, 22h,0C0h, 82h,0E4h,0C0h,0E0h,0C0h,0C0h
db 0A0h,0C0h,0C0h, 80h,0A0h, 00h, 00h, 20h, 00h, 00h, 04h, 48h, 12h, 2Ch, 1Ah, 1Ch
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h, 00h
db 01h, 00h, 00h, 05h, 00h, 01h, 00h, 00h, 00h, 02h, 00h, 01h, 05h, 00h, 01h, 00h
db 01h, 04h, 00h, 02h, 28h, 01h,0A8h, 10h,0FEh,0FDh,0DFh, 1Fh, 3Fh, 7Fh, 0Fh, 8Bh
db 03h, 23h, 23h, 03h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 20h,0FDh
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, 80h, 00h, 20h,0A0h,0E8h, 68h,0F4h,0F0h
db 0F8h,0F0h, 78h,0E0h,0D0h, 14h,0A0h, 20h, 43h, 11h, 20h, 71h, 74h, 76h, 7Ch, 9Ch
db 42h,0D4h, 21h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h,0FFh,0D2h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 80h, 00h,0C0h, 80h, 40h,0B8h,0F8h,0F8h,0BCh, 3Eh, 3Fh, 3Eh,0FFh,0FFh,0FFh
db 0FFh,0FFh,0FFh,0FEh,0FDh,0FCh,0F9h,0F9h,0FDh,0F9h,0FAh,0C1h, 0Ah, 9Ah,0F9h,0F3h
db 0E4h,0E0h,0E2h,0FCh,0FFh,0FFh, 7Fh,0DFh,0FCh,0C0h, 00h, 00h, 01h, 48h, 33h,0BFh
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 40h, 08h, 00h
db 02h, 01h, 03h, 01h, 01h, 04h,0A1h, 0Ah, 24h, 0Bh, 1Ah, 41h, 9Eh,0DFh, 97h,0A9h
db 5Eh, 53h,0F5h,0D7h, 7Fh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FCh,0FEh,0FFh,0FFh,0FFh
db 0FFh,0FFh, 3Fh,0BFh,0FFh, 0Fh, 07h, 0Eh, 00h, 08h, 00h, 00h, 00h, 00h,0C2h, 3Fh
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 20h, 00h, 00h, 00h, 00h, 00h, 12h, 00h, 00h, 02h,0C6h, 06h, 22h, 35h, 05h, 23h
db 23h, 2Ch, 33h, 66h,0D7h,0FFh,0F7h,0DFh,0FFh,0CFh,0EFh,0EFh,0FFh,0FFh,0FFh, 1Fh
db 0Fh, 8Ah, 20h, 00h, 44h, 8Ch, 04h, 00h, 00h, 00h, 00h, 80h, 00h, 40h, 12h, 44h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 40h, 40h
db 40h,0E0h, 40h, 40h, 40h,0E0h, 40h, 40h, 40h, 00h, 01h, 10h, 01h, 00h, 01h, 00h
db 0E0h, 00h, 00h,0A0h,0C3h,0BFh,0BFh, 07h, 3Fh, 3Fh, 3Fh, 1Fh, 05h, 02h, 00h, 00h
db 00h, 00h, 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 22h, 2Ah
db 2Ah, 2Ah,0FFh, 00h,0FFh, 2Ah, 2Ah, 2Ah, 22h, 00h, 00h, 00h, 81h, 81h, 41h, 41h
db 23h, 1Dh, 31h, 48h, 84h, 82h,0E0h, 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
TAB2:
;-- 调入菲戈幅图像右半屏:纵向取模下高位,数据排列:从左到右从上到下
;-- 宽度x高度=64x64
db 76h,0BCh,0FCh,0EEh, 80h,0F6h,0F6h,0FEh,0FEh,0FFh, 80h,0FFh, 7Eh,0FFh, 81h, 3Eh
db 3Eh, 36h, 45h, 3Fh, 1Fh, 3Fh, 01h, 3Eh, 3Eh, 3Eh, 41h, 7Fh,0FFh, 7Fh,0FFh, 7Fh
db 7Fh, 3Fh, 1Fh, 3Fh, 1Fh, 9Fh, 3Fh, 9Fh, 1Fh, 3Fh, 5Fh, 1Fh, 7Fh, 7Fh,0FFh,0FFh
db 0FFh,0FFh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 0A3h,0FEh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0BFh,0D3h, 41h, 02h, 01h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 20h, 00h, 20h, 00h
db 40h, 00h, 08h, 00h, 40h, 04h, 08h, 12h, 00h, 04h, 00h, 00h, 00h, 00h, 00h, 03h
db 0Fh, 7Fh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh, 0Dh, 24h, 00h, 00h, 80h,0A0h
db 40h,0E0h, 70h, 70h, 60h,0F8h,0F0h,0F0h,0F8h,0F0h,0F0h,0E0h,0F8h,0F0h, 68h, 00h
db 80h, 08h,0B0h,0B8h,0F0h,0F4h,0F0h,0FCh,0F9h,0F8h,0BAh,0F8h,0DCh,0B8h, 70h, 90h
db 20h, 4Bh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 3Fh, 3Fh, 7Fh, 7Fh,0FFh,0FFh,0FFh,0FFh, 5Fh, 00h, 00h, 01h, 00h, 05h, 02h, 05h
db 05h, 0Eh, 03h, 07h, 0Bh, 0Bh, 97h, 0Fh, 25h, 0Bh, 0Bh, 0Fh, 03h, 02h, 00h, 80h
db 00h, 14h, 00h, 01h, 0Bh, 0Bh, 1Dh, 1Bh,0E7h, 0Fh, 5Bh, 03h, 03h, 03h, 05h, 04h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 0E3h, 02h,0A6h, 60h,0F4h, 41h, 07h, 7Fh,0FDh, 50h,0C2h, 28h, 20h, 80h, 20h, 00h
db 80h, 00h, 80h, 00h, 00h, 00h, 04h, 00h,0A0h, 40h, 18h, 20h, 21h, 70h, 30h,0E0h
db 3Ah,0E0h, 39h,0E0h, 38h, 70h, 30h, 00h, 10h, 45h, 89h, 12h, 04h, 10h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 11h, 04h, 09h, 01h, 53h, 84h,0C0h, 88h, 61h,0D5h, 24h, 49h, 22h, 88h, 10h, 42h
db 00h, 00h, 24h, 00h, 00h, 00h, 00h, 44h,0A8h,0E0h,0C2h, 48h,0D1h, 64h, 60h, 64h
db 52h, 6Dh, 60h,0EBh,0B2h, 74h,0E4h, 60h,0CCh, 70h,0C0h, 82h, 08h, 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, 01h, 03h, 04h, 05h, 10h, 05h, 50h, 80h, 14h, 01h
db 28h, 10h, 01h, 48h,0A0h, 00h,0A5h, 00h, 40h, 00h, 08h, 80h, 10h, 06h, 04h, 2Fh
db 8Eh, 1Fh, 2Eh,0CEh, 1Dh,0A6h, 16h, 0Ch, 22h, 48h,0B2h, 04h, 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, 40h, 20h, 28h, 08h, 00h, 00h, 00h, 00h, 02h, 15h
db 22h, 04h, 2Ah, 18h, 22h, 5Ch, 52h, 2Ch, 52h, 38h, 64h, 52h, 7Ch, 61h, 3Ah, 6Ch
db 79h, 76h, 7Dh, 7Eh, 7Ch, 7Bh, 7Eh, 7Ah, 7Ah, 74h, 7Ch, 52h, 2Ch, 0Ah, 00h, 00h
db 00h, 1Eh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -