液晶显示技术SED1520的使用(C语言).doc
- 文档编号:2494721
- 上传时间:2022-10-30
- 格式:DOC
- 页数:20
- 大小:159KB
液晶显示技术SED1520的使用(C语言).doc
《液晶显示技术SED1520的使用(C语言).doc》由会员分享,可在线阅读,更多相关《液晶显示技术SED1520的使用(C语言).doc(20页珍藏版)》请在冰豆网上搜索。
SED1520的使用(C语言)
内置SEDl520图形液晶显示模块的接口技术
由于SEDl520F0A没有片选信号引出,为了方便计算机对其控制,所以模块的接口时序都采用了M6800时序,这样每一片都引出一个独立使能信号E。
只要E信号由计算机的选通逻辑控制即可控制该类模块的工作。
计算机控制内置SEDl520图形液晶显示模块有两种连接方式。
一种为直接访问方式,一种为间接控制方式。
本节将以AT89C51单片机为样机描述这两种方式的实用电路及驱动程序。
1直接访问方式
直接访问方式是计算机把字符型液晶显示模块作为存储器或I/O设备直接挂在计算机的总线上。
在这种方式下,控制信号由AT89C51的读操作信号RD和写操作信号WR与地址信号合成产生。
本文推荐的直接访问方式的实用接口电路如图1所示。
图1直接访问方式的接口电路
上图所示的电路,对于完成液晶显示模块的显示来说,所用的硬件是相对比较少的,但是如果计算机需要进行扩展的话,使用上图的话不是很经济(浪费了太多的地址空间)。
这个时候,可以考虑使用全地址译码或者部分地址译码的方式。
在上图所示的电路中:
●8位数据总线与AT89C51的数据总线连接
●E1信号由WR和RD信号逻辑与非后产生,然后由地址A15选通控制
●E2信号由WR和RD信号逻辑与非后产生,然后由地址A14选通控制
●R/W由地址A13提供
●RS信号由地址A12提供
这样就确定了AT89C51操作字符型液晶显示模块的唯一地址选择。
图中的电位器为V0提供了可调的驱动电压,用以实现显示对比度的调节。
以下将给出直接访问方式的驱动程序。
(1)地址定义
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#definenop()_nop_()
xdataucharWC_ADD1_at_0x8000;
xdataucharRC_ADD1_at_0xA000;
xdataucharWD_ADD1_at_0x9000;
xdataucharRD_ADD1_at_0xB000;
xdataucharWC_ADD2_at_0x4000;
xdataucharRC_ADD2_at_0x6000;
xdataucharWD_ADD2_at_0x5000;
xdataucharRD_ADD2_at_0x7000;
(2)写指令代码
/*判忙*/
ucharRdBF(ucharEnable)
{
ucharstatus;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
status=RC_ADD1&0x80;/*屏蔽低7位*/
returnstatus;
break;
case2:
status=RC_ADD2&0x80;/*屏蔽低7位*/
returnstatus;
break;
default:
break;
}
}
/*写命令*/
voidWRCMD(ucharCMD,Enable)
{
uchartemp;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
do
{
temp=RdBF
(1);
}
while(temp>=0x80);
WC_ADD1=CMD;
break;
case2:
do
{
temp=RdBF
(2);
}
while(temp>=0x80);
WC_ADD2=CMD;
break;
default:
break;
}
}
(3)写显示数据
voidWRDAT(ucharCMD,Enable)
{
uchartemp;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
do
{
temp=RdBF
(1);
}
while(temp>=0x80);
WC_ADD1=DAT;
break;
case2:
do
{
temp=RdBF
(2);
}
while(temp>=0x80);
WC_ADD2=DAT;
break;
default:
break;
}
}
(4)读显示数据
ucharRdDAT(ucharEnable)
{
ucharDAT,temp;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
do
{
temp=RdBF
(1);
}
while(temp>=0x80);
DAT=RD_ADD1;
returnDAT;
break;
case2:
do
{
temp=RdBF
(2);
}
while(temp>=0x80);
DAT=RD_ADD2;
returnDAT;
break;
default:
break;
}
}
2间接控制方式
间接控制方式是计算机把字符型液晶显示模块作为终端与计算机的并行接口连接,计算机通过对该并行接口的操作间接的实现对字符型液晶显示模块的控制。
本文以AT89C51的P1和P2接口为并行接口与字符型液晶显示模块连接,图2给出了本文推荐的实用接口电路。
图2间接控制方式的接口电路
图中的电位器为V0提供了可调的驱动电压,用以实现显示对比度的调节。
在编制驱动函数的时候,要注意时序的配合,根据M6800时序的规范:
●在写操作时,使能信号E1、E2的下降沿有效,在软件设置顺序上,先设置RS、R/W状态,再设置数据,然后产生E1、E2信号的脉冲,最后复位RS和R/W状态
●在读操作时,使能信号E1、E2的高电平有效,所以在软件设置顺序上,先设置RS,R/W状态,再设置E1、E2信号为高,这时从数据口读取数据,然后将E1、E2信号置低,最后复位RS和R/W状态。
间接控制方式通过软件执行产生操作时序,所以在时间上是足够满足要求的。
因此间接控制方式能够实现高速计算机与字符型液晶显示模块的连接。
(1)接口定义
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#definenop()_nop_()
sbitE2=P2^3;
sbitE1=P2^2;
sbitRW=P2^1;
sbitRS=P2^0;
(2)写指令代码
/*判忙*/
ucharRdBF(ucharEnable)
{
ucharstatus;
P1=0xFF;
RS=0;
RW=1;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
E1=1;
status=P1;
E1=0;
status=status&0x80;/*屏蔽低7位*/
returnstatus;
break;
case2:
E2=1;
status=P1;
E2=0;
status=status&0x80;/*屏蔽低7位*/
returnstatus;
break;
default:
break;
}
}
/*写命令*/
voidWRCMD(ucharCMD,Enable)
{
uchartemp;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
do
{
temp=RdBF
(1);
}
while(temp>=0x80);
RW=0;
P1=CMD;
E1=1;
nop();
E1=0;
break;
case2:
do
{
temp=RdBF
(2);
}
while(temp>=0x80);
RW=0;
P1=CMD;
E2=1;
nop();
E2=0;
break;
default:
break;
}
}
(3)写显示数据
voidWRDAT(ucharDAT,Enable)
{
uchartemp;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
do
{
temp=RdBF
(1);
}
while(temp>=0x80);
RS=1;
RW=0;
P1=DAT;
E1=1;
nop();
E1=0;
break;
case2:
do
{
temp=RdBF
(2);
}
while(temp>=0x80);
RS=1;
RW=0;
P1=DAT;
E2=1;
nop();
E2=0;
break;
default:
break;
}
}
(4)读显示数据
ucharRdDAT(ucharEnable)
{
ucharDAT,temp;
switch(Enable)/*进行E1、E2的判断、选择*/
{
case1:
do
{
temp=RdBF
(1);
}
while(temp>=0x80);
RS=1;
RW=1;
P1=0xFF;
E1=1;
DAT=P1;
E1=0;
returnDAT;
break;
case2:
do
{
temp=RdBF
(2);
}
while(temp>=0x80);
RS=1;
RW=1;
P1=0xFF;
E2=1;
DAT=P1;
E2=0;
returnDAT;
break;
default:
break;
}
}
内置SEDl520图形液晶显示模块的应用软件
内置SEDl520图形液晶显示模块的应用是随应用系统的性质而定,本节将提供一些实用程序并作为示例进一步对SEDl520指令的应用作一说明。
接口电路为图6-58和图6-59所示的实用电路,驱动程序也为上一节所提供的。
使用的液晶显示模块的样机的电原理图为图6-56所示的122×32图形点阵的原理图,提供的程序经过修改也可以应用于其他模块。
1初始化
对模块的初始化实际上是对SEDl520的初始化。
ucharcodeCMDByte[]={0xE2,0xA4,0xA9,0xA0,0xC0,0xAF};
voidInit(void)
{
uchartemp1,temp2;
for(temp1=0;temp1<6;temp1++)
{
for(temp2=1;temp2<3;temp2++)WRCMD(*(CMDByte+temp1),temp2);
}
}
2清显示RAM区(清屏)
void
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 液晶显示 技术 SED1520 使用 语言