多种串行接口技术在LED大屏幕显示系统中应用
发布时间:2008/6/3 0:00:00 访问次数:711
1 系统总体结构组成
如图1所示,系统的组成电路由以下4部分组成:led显示屏、以p87lpc767单片机为核心的驱动电路、pc机与单片机的通信电路和由24c16器件组成的i2c总线接口电路。为了节约井口,本系统采用了以下3种串行方式传递数据。
1.1 i2c串行总线接口
p87lpc767的i2c总线符合标准的i2c总线规范,总线工作的时钟信号可由p87lpc767自动产生,但数据却是以位的方式发送和接受的,因此他的控制软件较为复杂,但却更为灵活。本系统p87lpc767的i2c总线上接24c16存储器,就构成了一个i2c系统,解决了大屏幕显示屏显示汉字所需大量数据信息的存储。p87lpc767是主控机(主机),串行时钟信号由他产生,他将数据写入24c16为主发送,从24c16中读取数据为主接收,24c16只能是被控机(从机)。主发送工作方式是指p87lpc767作为主控机向被控机发送数据的传送过程,发送和接收各有2种方式:
(1)单纯地发或读从机的数据;
(2)发或读从机指定地址的数据。
1.2异步串行通讯接口
上位机pc用于对显示信息进行编辑和对汉字进行提取,读取汉字字模的基本步骤:
(1)获取汉字的机内码;
(2)通过汉字推算区位码;
(3)由区位码计算出汉字在字库中的位置offset:offset=[(区码一1)×94+(位码一1)]32;从该偏移地址读取32b,就是相关汉字的点阵字模代码。通信功能利用visualc++6.0提供的mscomm通信控件,把字体的字模信息(根据显示屏所需格式进行重排)通过串行口分段发送给单片机,单片机再通过12c总线发送给串行e2prom进行存储。
1.3 软件实现串行数据传送接口
由软件实现2路串行数据的输出以完成显示屏行和列数据的要求,下面是串行输出1 b数据的软件源代码:
sbit clk=po^ 0;
sbit dat=p1^ 7;
unsigned char bdata senddata;
sbit sendbit=senddata^7;
vid sendbyte(void)
{
int i;
poml=0x00;
pom2=0x41;
p1m1=0x00;
p1m2=0x80;
elk=0;
for(=1;i<=8;i++)
{
clk=0;
dat=sendbitl;
clk=1;
senddata=senddata<<1;
}
clk=0;}
可以看出,只要给出senddata数据就可以在p1^7脚串行输出该数据。通过改变elk,dat脚及输出模式选择可方便实现在其他管脚的串行数据输出功能。
2 结 语
采用多种串行接口技术,使新型的单片机p87lpc767能在大屏幕显示中应用。p87lpc767可工作在20mhz时钟频率,避免了显示屏越大,其他单片机频率底而出现的闪烁现象。经过调试,显示屏工作稳定,已用于一些商场及公共场所,效果良好。
1 系统总体结构组成
如图1所示,系统的组成电路由以下4部分组成:led显示屏、以p87lpc767单片机为核心的驱动电路、pc机与单片机的通信电路和由24c16器件组成的i2c总线接口电路。为了节约井口,本系统采用了以下3种串行方式传递数据。
1.1 i2c串行总线接口
p87lpc767的i2c总线符合标准的i2c总线规范,总线工作的时钟信号可由p87lpc767自动产生,但数据却是以位的方式发送和接受的,因此他的控制软件较为复杂,但却更为灵活。本系统p87lpc767的i2c总线上接24c16存储器,就构成了一个i2c系统,解决了大屏幕显示屏显示汉字所需大量数据信息的存储。p87lpc767是主控机(主机),串行时钟信号由他产生,他将数据写入24c16为主发送,从24c16中读取数据为主接收,24c16只能是被控机(从机)。主发送工作方式是指p87lpc767作为主控机向被控机发送数据的传送过程,发送和接收各有2种方式:
(1)单纯地发或读从机的数据;
(2)发或读从机指定地址的数据。
1.2异步串行通讯接口
上位机pc用于对显示信息进行编辑和对汉字进行提取,读取汉字字模的基本步骤:
(1)获取汉字的机内码;
(2)通过汉字推算区位码;
(3)由区位码计算出汉字在字库中的位置offset:offset=[(区码一1)×94+(位码一1)]32;从该偏移地址读取32b,就是相关汉字的点阵字模代码。通信功能利用visualc++6.0提供的mscomm通信控件,把字体的字模信息(根据显示屏所需格式进行重排)通过串行口分段发送给单片机,单片机再通过12c总线发送给串行e2prom进行存储。
1.3 软件实现串行数据传送接口
由软件实现2路串行数据的输出以完成显示屏行和列数据的要求,下面是串行输出1 b数据的软件源代码:
sbit clk=po^ 0;
sbit dat=p1^ 7;
unsigned char bdata senddata;
sbit sendbit=senddata^7;
vid sendbyte(void)
{
int i;
poml=0x00;
pom2=0x41;
p1m1=0x00;
p1m2=0x80;
elk=0;
for(=1;i<=8;i++)
{
clk=0;
dat=sendbitl;
clk=1;
senddata=senddata<<1;
}
clk=0;}
可以看出,只要给出senddata数据就可以在p1^7脚串行输出该数据。通过改变elk,dat脚及输出模式选择可方便实现在其他管脚的串行数据输出功能。
2 结 语
采用多种串行接口技术,使新型的单片机p87lpc767能在大屏幕显示中应用。p87lpc767可工作在20mhz时钟频率,避免了显示屏越大,其他单片机频率底而出现的闪烁现象。经过调试,显示屏工作稳定,已用于一些商场及公共场所,效果良好。