移动数据的LED显示屏构成原理与仿真技术
行,每行4个汉字。其组成电路如图3。行驱动电路使用了2片74HC138芯片,上、下16行的列驱动电路都使用了8片74HC595芯片。具体显示时采用动态扫描方式,单片机输出的4位行选信号A、B、C、D经2片74HCl38译码后逐行扫描LED单元板的1~16行和17~32行;上16行的显示数据R1及下16行的显示数据R2在同一移位时钟信号SHCLK的作用下分别依次打入各自的74HC595,最后在共同锁存信号STB的作用下稳定输出在74HC595的并行输出端。
在实际制作LED单元板时,往往在74HCl38芯片输出的行扫描线上再加上4953芯片以增加驱动能力。
3 程序设计
3.1 短消息收发控制
单片机通过AT命令控制TC35I模块进行初始化和短消息的收发,对短消息的控制共有3种模式:Block模式、PDU模式和Text模式。Text模式不支持中文,而使用Block模式需要手机生产厂家提供驱动支持,本系统使用PDU模式进行短消息接收和发送。
系统上电以后首先对TC35I进行初始化,内容主要包括:
(1)设置短消息中心号码AT+CSCA="+8613800250500"
<CR>(该号码因地区不同而设置不同)。
(2)设置短消息格式AT+CMGF=0<CR>(0代表PDU格式)。
(3)设置短消息存放的位置AT+CPMS="SM"<CR>(SM表示将短消息存放在SIM卡中)。
(4)设置短信到达通知AT+CNMI=1,1,0,0,1<CR>。此命令可使模块在短消息到达后向单片机发送指令<CR>+CMTI:"SM",INDEX(信息存储位置)<CR>。
系统操作过程中,单片机通过AT命令控制TC35I模块接收或发送短消息。命令格式如下:
(1)读取短消息指令AT+CMGR=INDEX<CR>。
(2)发送短消息指令AT+CMGS=<length><CR>。
(3)删除短消息指令AT+CMGD=INDEX<CR>。
(4)SIM卡状态查询命令AT^SCKS。
接收和发送的短消息均以PDU串的数据形式被单片机处理,PDU串由数字"0"~"9"和字母"A"~"F"组成,是十六进制数或者BCD码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其他信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的PDU串结构不完全相同。下面用2个实例说明PDU串的结构和编排方式。
例1:接收。SMSC号码是+8613800- 250500,对方号码是13851872468,消息内容是"你好!"。单片机从TC35模块读取到的PDU串是--08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 58 81 27 64 F8 00 08 30 30 21 80 63 54 80 0*F 60 59 7D 00 21。
例2:发送。SMSC号码是+8613800- 250500,对方号码是13851872468,消息内容是"你好!"。单片机向TC35模块发出的PDU串是--08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 08 00 0*F 60 59 7D 00 21。
3.2 LED显示控制程序
LED的动态扫描功能通过使用单片机的定时器0中断实现。定时器0计数初值的设定满足每秒中断1 000次以上,每次中断扫描显示一行,这样每行在每秒钟内至少被扫描60次以上。根据人眼的视觉暂留效应,达到了较理想的显示效果。
定时器0中断服务程序:
void int0(void) interrupt 1
{
TR0=0; //关定时器T1
TL0=0x80; //设置初值的低8位
TH0=0xff; //设置初值的高8位
TR0=1; //开定时器T1
if(i<16) //i为扫描的行号,取值0~15,
//依次扫描1~16行
{
P1_5=0; //关HC595锁存
while(z<8) //z为上下各8片HC595按
//从左到右的编号,取值0~7。
//每片HC595都经8次循环,
//实现8位数据的串/并转换
{ a=disp[i*2+k];//取上16行的8位显示数据a
b=disp[i*2+k+128]; //取下16行的8位
//显示数据b
if(z%2!=0) k+=32-1;
else k++;
while(j<8) //循环8次,将a通过P1.6
//脚依次移入上面的HC595,
//将b通过P1.7脚依次
//移入下面的HC595
{
P1_4=0; //将P1.4口线拉低,
//产生移位脉冲SHCLK
if((a&au)>0) //假串口P1.6,输出上16行
//的显示数据a
P1_6=1;
else
P1_6=0;
if((b&au)>0) //假串口P1.7,输出下16行
//的显示数据b
P1_7=1;
else
P1_7=0;
P1_4=1; //将P1.4口线置高,产生移位
//脉冲SHCLK
au=au<<1;
j++;
}
j=0;
au=0x01;
z++;
}
k=0;
z=0;
}
P1=(P1&0xf0)|i; //通过P1.0~P1.3产生4位
//行扫描信号ABCD
P1_5=1; //开595锁存
i++;
if(i==16) i=0;
}
4 PROTEUS仿真实现
本设计结合使用Keil μVision2和Proteus软件实现系统的软件设计和硬件仿真调试。
Proteus软件可以仿真包括51系列在内的多种常用单片机及其外围电路(如LCD、RAM、ROM、键盘、马达、LED等),是目前最好的模拟单片机外围器件的工具。仿真时只需在Proteus软件中画好单片机的外围控制及LED显示驱动电路,然后在单片机芯片的属性中设置好晶振频率,将用Keil C51编写的源程序生成的.HEX文件保存到芯片
- LED全彩显示屏配光解决方案(08-27)
- 液晶电视“软屏”不比“硬屏”差(05-18)
- 基于GSM模块的LED显示屏设计(01-16)
- 多媒体手持设备中显示屏的选择要素(03-14)
- 选购数码摄像机四点技术常识(05-01)
- Cytech无线音箱、MP4和视像眼镜解决方案(11-20)