AT89S52并口驱动LCD12864_ST7920芯片组
1.8-bit并口程序
;///////////////////////////////////////////////
;AT89S52与LCD12864接口实验
;LCD12864控制器为ST7920芯片组
;用12846显示汉字
;RS-P2.4,R/W-P2.5,E-P2.6
;/RET-P2.3,PSB-P2.1,P0-DB0~DB7
;/////////////////////////////////////////////
RS EQU P2.4
RW EQU P2.5
E EQU P2.6
LDB EQU P0
LRET EQU P2.3
PSB EQU P2.1
COM EQU 40H;写入指令暂存器
DAT EQU 41H;显示数据暂存器
ADDR EQU 42H;显示地址寄存器
ORG 0000H
SJMP START
ORG 0030H
;主程序
START:MOV SP,50H
MOV P2,#10000111B
LCALL DEL40 ;
SETB LRET
LCALL RESET;LCD12864初始化
MOV ADDR,#80H;显示第一页数据
MOV DPTR,#DISA1
LCALL LINE
MOV ADDR,#90H
MOV DPTR,#DISA2
LCALL LINE
MOV ADDR,#88H
MOV DPTR,#DISA3
LCALL LINE
MOV ADDR,#98H
MOV DPTR,#DISA4
LCALL LINE
LCALL DEL2S
MOV ADDR,#80H;显示第二页数据
MOV DPTR,#DISA5
LCALL LINE
MOV ADDR,#90H
MOV DPTR,#DISA6
LCALL LINE
MOV ADDR,#88H
MOV DPTR,#DISA7
LCALL LINE
MOV ADDR,#98H
MOV DPTR,#DISA8
LCALL LINE
LCALL DEL2S
MOV ADDR,#80H;显示第三页数据
MOV DPTR,#DISB1
LCALL LINE
MOV ADDR,#90H
MOV DPTR,#DISB2
LCALL LINE
MOV ADDR,#88H
MOV DPTR,#DISB3
LCALL LINE
MOV ADDR,#98H
MOV DPTR,#DISB4
LCALL LINE
LCALL DEL2S
MOV ADDR,#80H;显示第四页数据
MOV DPTR,#DISB5
LCALL LINE
MOV ADDR,#90H
MOV DPTR,#DISB6
LCALL LINE
MOV ADDR,#88H
MOV DPTR,#DISB7
LCALL LINE
MOV ADDR,#98H
MOV DPTR,#DISB8
LCALL LINE
LCALL DEL2S
LJMP START
;函数WCOM 写LCD指令
WCOM: CLR RS
SETB RW
D2:MOV LDB,#0FFH
SETB E
MOV A,LDB
CLR E
JB ACC.7,D2
CLR RW
MOV A,COM
MOV LDB,A
SETB E
NOP
CLR E
RET
;函数WDAT 写显示数据
WDAT: CLR RS
SETB RW
D3:MOV LDB,#0FFH
SETB E
MOV A,LDB
CLR E
JB ACC.7,D3
SETB RS
CLR RW
MOV A,DAT
MOV LDB,A
SETB E
NOP
CLR E
RET
;函数RESET LCD初始化程序
RESET:MOV COM,#00110000B;设置基本指令
LCALL WCOM
MOV COM,#00110000B;设置8bit并口
LCALL WCOM
MOV COM,#00001100B;开显示,关光标,关反白
LCALL WCOM
MOV COM,#00000001B;清屏,AC=0
LCALL WCOM
MOV COM,#00000110B;进入点设定
LCALL WCOM
RET
;函数LINE 写入一行的显示数据
LINE: MOV A,ADDR
MOV COM,A
LCALL WCOM
MOV R0,#10H
MOV R1,#00H
D1:MOV A,R1
MOVC A,@A+DPTR
MOV DAT,A
LCALL WDAT
INC R1
DJNZ R0,D1
RET
;函数DEL40 40MS延时D
DEL40:MOV R3,#10
E2:MOV R4,#100
E1:NOP
NOP
DJNZ R4,E1
DJNZ R3,E2
RET
;函数DEL2S 2S延时
DEL2S:MOV R2,#03
E5:MOV R5,#100
E4:MOV R6,#20
E3:MOV R7,#248
DJNZ R7,$
DJNZ R6,E3
DJNZ R5,E4
DJNZ R2,E5
RET
;显示内容区
DISA1:DB
DISA2:DB
DISA3:DB " 13210813637 "
DISA4:DB "128*64全点阵显示"
DISA5:DB "图形以及字符显示"
DISA6:DB "2009年 7月 29 日"
DISA7:DB "设计者:赵玉庆 "
DISA8:DB "AT89C52 与ST7920"
DISB1:DB "昨夜星辰昨夜风,"
DISB2:DB "画楼西畔桂堂东 。"
DISB3:DB "身无彩凤双飞翼,"
DISB4:DB "心有灵犀一点通 。"
DISB5:DB "隔座送钩春酒暖,"
DISB6:DB "分曹射覆蜡灯红 。"
DISB7:DB "嗟余听鼓应官去,"
DISB8:DB "走马兰台类转蓬 。"
【AT89S52并口驱动LCD12864_ST7920芯片组】END
推荐阅读
- 中国手机显示面板驱动芯片代工领域市场占有率同比上半年增长32%
- 51单片机I2C总线驱动程序
- 值得大家学习的LED驱动电源的特点以及工作原理概述
- 华为自制显示驱动芯片传来新进展 预计明年量产
- 常见的栅极驱动光电耦合器的更换方法解析
- 显卡驱动如何退回到前一个版本
- 按键识别方法之一
- 云计算等下一代信息技术正在成为全球经济背后的新驱动力
- “双轮驱动”模式助力国际品牌拓销,欧莱雅五大高端品牌直供天猫国际
- I/O并行口直接驱动LED显示设计