基于STC单片机与GPRS的图文LED屏

发布者:快乐家庭最新更新时间:2011-12-24 关键字:STC单片机  图文LED屏 手机看文章 扫描二维码
随时随地手机看文章

1 序言

GPRS(General Packet Radio Service,通用分组无线业务)的出现充分利用了现有的GSM网络,不仅适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输。它使移动通信与数据网络合二为一,它利用“分组交换”(Packet Switch)的概念所发展出的一套无线传输方式,可高效地利用现有的无线电频谱,为用户提供最快达到ll5kb/s数据传输率的服务。鉴于当前网络的发展,短消息的迅速普及,使得用手机控制LED显示广告、新闻等公众信息成为了可能。用SMS控制车载小屏显示的技术非常多,但能显示小图片的却寥寥无几,本文针对这种情况设计了一种可显示汉字和一些简单图片的车载小屏广告发布软硬件设计系统。

2 硬件设计系统

如图1所示,本系统主要由三部分组成:GPRS 模块;单片机模块;LED显示屏模快。

2.1 GPRS 模块

本模块采用的是SIMCOM 的SIM300,外还需要手机卡座,当然还要有手机卡,此手机卡是为收短信而设置的。该模块的功能是通过天线接收手机发过来的短信,并且通过串口与单片机保持联系,看是否有读短信的AT命令,等单片机读短信成功,再完成单片机删除短信的AT命令。

2.2 单片机模块

该模块的主要芯片是STC89C58RD+单片机,该单片机处理速度快且RAM足够大。其主要优势是:时钟频率可达80 MHz;内部含有32 KB 的闪存、1 280 B 的RAM、8 K的EEPROM;IAP/ ISP 程序下载机制,大大降低设备开发成本和使用成本,并使硬件加密做到无懈可击;具有4 级8 个中断源,提供2 个额外的外部中断机制和4 个I/ O 口资源。这些特点大大简化了本系统外围电路的设计。

单片机的主要功能是持续将已有的屏显示数据送LED屏,同时通过串口发AT指令监视GPRS 模块是否有新消息,一旦有,便进入串口中断,对数据进行处理。而外部FLASH主要存的是一些常用汉字和一些符号的字模,单片机处理好文字信息后,将通过它获得汉字字模,以便屏显。

2.3 LED

终端显示设备LED屏主要控制芯片是74HC595,还有双向驱动芯片74LS245以及一些辅助的电流放大芯片。此屏可以显示12个16*16的汉字。

3 软件设计部分

软件设计部分可谓是整个系统的指挥中心,有了这部分的设计才能完成AT命令读删信息、信息解码、控制屏幕实时显示数据。

3.1 AT命令

使用的主要是与SMS有关的指令:

(1)AT命令读收到的新消息:at +cmgr=1 回车;

(2)删除已读完的消息:at+cmgd=1 回车。

3.2 SMS及汉字、图片的解码方式

SMS:文本短信服务。短消息的内容可以是文本、数字或二进制非文本数据,但每个SMS容量平均有140 字节,一般不超过60个汉字。 如果用户关机或不在服务区内,短消息可存储在短消息中心,待用户开机后就可以自动收到。发送和接收SMS信息有三种方式:Block Mode ,Text Mode和PDU Mode。Block Mode已是昔日黄花。Text Mode是纯文本方式,国内手机一般不支持,主要用于欧美地区。本文所有收到的短信都是PDU Mode。

3.21 PDU Mode PDU模式是发送或接收手机短消息最常用的一种方法,它把短消息正文经过十六进制编码后传送。它可以发送最多160个字符,当使用7-bits编码的时候。8-bit编码(最多140个字符)通常无法直接通过手机显示;通常被用来作为数据消息,例如:smart messaging中的图片和铃声)和OTA WAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。本系统的文本信息采用的是Unicode(UCS2)方式,而小图片信息采用的是7-bits编码方式。由于信息来自手机,所以只介绍收到信息后,单片机的解码过程。 3.22 汉字的解码过程 外部FLASH储存的是用matlab工具将Unicode(UCS2)码与国标码一一对应后的常用汉字和字符的字模,所以单片机的解码过程也就是寻找相应字模的过程。当出现需要处理的情况时,单片机通过串口把手机模块收到信息完全读过来,因为此信息有一段消息头:包括对方手机号、客服中心号码、时间等等。而显示屏显示的时候只需要消息的主题内容,所以单片机处理消息时把屏号做为第一个字节处理将汉字对应的Unicode码转化成十进制的数字,然后分离出区号和位号去寻找字模,然后按相应的顺序存在单片机的内部ram里,方便取数据送屏。可以用图 2描述。

 

3.23图片的解码过程

考虑到图片信息的数据量较大,一个16*16的图片的就有32个字节,用手机发送时采用的是7bit的编码方式,这样可节省一半的内存空间,单片机读和对信息进行取舍同文字信息。关键是这部分的解码。在这部分解码时首先要弄清楚7bit的编码原理。

编码的过程比较容易理解:将源串每8个字符分为一组进行编码,在组内字符间压缩,但每组之间是没有什么联系的。每一组内,首先将各个字符转换为7位的标准二进制ASCII码,然后要将后面字符的低位逐位调整到前面,补齐前面的差别。以发送一个16*16的图片为例编码后就有28个字节,但单片机读取的是56个字节,这是因为手机发送数据的过程中是把一个字节视为为二个字节进行发送的。当单片机负责解码时,采取的处理方法是将每七个字节分为一组,处理为八个字节,再将这八个字节变换成相应的数字进行两两合并,也就是还原原来图片的32个字节,这部分的程序如下:

for(j=0;j

{ h=j/7*4; a=gsm[j]&0x80;

chartemp1=gsm[j]&0x7f;

if(chartemp1<'A') chartemp1=chartemp1-48;

else chartemp1=chartemp1-55;

b=gsm[j+1]&0xc0;

chartemp3=((gsm[j+1]&0x3f)<<1)|(a>>7);

if(chartemp3<'A') chartemp3=chartemp3-48;

else chartemp3=chartemp3-55;

cun[h]=(chartemp1<<4)|chartemp3;

c=gsm[j+2]&0xe0;

chartemp5=((gsm[j+2]&0x1f)<<2)|(b>>6); if(chartemp5<'A') chartemp5=chartemp5-48;

else chartemp5=chartemp5-55;

d=gsm[j+3]&0xf0; chartemp7=((gsm[j+3]&0x0f)<<3)|(c>>5);

if(chartemp7<'A') chartemp7=chartemp7-48;

else chartemp7=chartemp7-55; cun[h+1]=(chartemp5<<4)|chartemp7; e=gsm[j+4]&0xf8; chartemp9=((gsm[j+4]&0x07)<<4)|(d>>4);

if(chartemp9<'A') chartemp9=chartemp9-48;

else chartemp9=chartemp9-55;

f=gsm[j+5]&0xfc;

chartemp11=((gsm[j+5]&0x03)<<5)|(e>>3);

if(chartemp11<'A') chartemp11=chartemp11-48;

else chartemp11=chartemp11-55;

cun[h+2]=(chartemp9<<4)|chartemp11;

g=gsm[j+6]&0xfe;

chartemp13=((gsm[j+6]&0x01)<<6)|(f>>2);

if(chartemp13<'A') chartemp13=chartemp13-48;

else chartemp13=chartemp13-55;

g=g>>1;

if(g<'A') g=g-48;

else g=g-55;

cun[h+3]=(chartemp13<<4)|g;}

3.3 与屏有关的软件设计

这些函数包括往内部ram写数据的writeyipin() 函数,送临时储存区的读数据函数,行扫描列扫描函数,送行列数据函数,同时还有一些延时函数。值得一提的是writeyipin() 函数,在写数据时,因为采用的条屏是可显示12个16*16的图片,所以按照一个字行列的显示顺序存储,这样以来读数据送屏时不必做其他的处理,节省了时间和资源。

综上所述软件的流程图如图3所示。

4结束语

本系统运行稳定,能清晰准确的显示汉字与图片信息,且成本较低,可用于车载小屏广告信息的发布,也可用于偏远地区的政策宣传。

关键字:STC单片机  图文LED屏 引用地址:基于STC单片机与GPRS的图文LED屏

上一篇:单总线单片机多机通讯系统设计
下一篇:分时操作系统思想在单片机编程中的应用实现

推荐阅读最新更新时间:2024-03-16 12:49

基于STC单片机和传感器的LED智能照明控制系统
   0 引言   我国是一个资源紧缺的国家,但在日常的生活中,人们并没有意识到这一点。以室内照明为例,在很多公共场合中都采用手动开关,经常出现没有及时关灯的现象,从而造成能源的浪费,也会缩短灯具的使用寿命。针对这一现象,有必要研究一种智能照明控制系统。该系统利用智能传感器感应室外亮度来自动调节灯光,以保持室内恒定照度,既能使室内有最佳照明环境,又能达到节能的效果。   LED 被称为第四代绿色光源,LED 的发光器件是冷光源,具有节能、环保、寿命长、体积小等特点。LED 光的单色性好,光谱窄,无需过滤,可直接发出有色可见光。在相同的照明情况下,LED 灯耗电量为白炽灯的十分之一,荧光灯的二分之一,是未来照明的发展趋势。  
[单片机]
基于<font color='red'>STC单片机</font>和传感器的<font color='red'>LED</font>智能照明控制系统
STC单片机学习型遥控器程序
STC89C52学习型遥控器,可存八个红外遥控信息,只要再把按键用定时器中断2完成就可以用于商业生产. RXIN BIT P2.0 TXZAI BIT P2.2 TXOUT BIT P2.1 KEY_SIGN BIT 20H ;为0按键错误,为1按键正确 RXTX_SIGN BIT 21H ;为0是为发射状态,为1是为接收状态 ISP_DATA DATA 0E2H ;ISP功能寄存器定义 ISP_ADDRH DATA 0E3H ISP_ADDRL DATA 0E4H ISP_CMD DATA 0E5H ISP_TRIG DATA 0E6H ISP_CONTR DATA 0E7H ISP_CMD_NO EQU 0
[单片机]
STC单片机免断电下载程序的另一种更简单的方法
看到网上有一些STC单片机免断电下载程序的例子。但是都是要用串口中断来完成。以下是一个程序片断 拿来说明 在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序 TMOD|=0x20; SCON=0x50; TH1=0xfd; //12T时钟9600bps TL1=0xfd; TR1=1; ES=1; EA=1; AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps void uart(void) interrupt 4 { uchar cdd; if(RI) { RI=0; cdd=SBUF; if(cdd==0xaa
[单片机]
单片机程序远程下载方法(包括STC单片机
简介:在某些特殊的场合单片机程序、软件需要进行远程下载,特别是单片机程序的远程升级。本文介绍一种使用串口转以太网模块ZLSN3000来实现51单片机(特别是STC单片机)、PIC单片机、ARM、AVR、PLC的程序远程升级的方法。 1.原理 1.1升级条件 任何能够通过PC机串口下载程序的单片机都可以用该方法实现远程程序升级。目前该方案已经在STC单片机、PIC单片机、ARM上验证。 1.2硬件连接图 如图 1 所示是通过Internet远程升级STC单片机程序的演示图。在设备端,使用卓岚ZLSN3000模块将STC单片机的串口(2根线)和ZLSN3000的RXD、TXD引线直接连接;ZLSN3000的网口连接到ADSL
[单片机]
单片机程序远程下载方法(包括<font color='red'>STC单片机</font>)
基于STC单片机的交通信号指示灯的设计
随着我国经济社会快速发展,城市机动车保有量快速增长,在进行基础设施建设以改善中心城区的交通同时,仍然存在道路体系未建全,功能未理顺,公交系统不发达等问题,交通矛盾突出。而我国的交通指示灯使用定周期控制和各路口各自的独立控制方法,在解决这些问题时效果并不是很好。 随着电子信息的发展,找到一种更为合理的的控制方法尤为重要。目前,控制交通信号灯的方法很多,一般为用89C51单片机控制。但是随着芯片的发展,89C51单片机逐渐地退出了历史的舞台。 文中使用STC89C51为核心芯片,设计了交通信号灯指示系统。 1 系统的总体设计 1.1 总体设计思想 本系统设计的交通信号指示灯,可以控制主道和支道各红绿黄3个LED。当主道
[单片机]
基于<font color='red'>STC单片机</font>的交通信号指示灯的设计
基于STC单片机的经济型步进电机控制系统
步进电机是工业控制中应用十分广泛的一种电动机,它能将数字信号直接转换成角位移或线位移,驱动速度和指令脉冲能严格同步,具有较高的定位精度,控制系统成本低廉,在经济型数控机床等领域应用广泛。这里针对电磁干扰较强以及要求低成本应用的场合,采用超强抗干扰、小巧低功耗的工业级STC12C系列单片机,充分利用单片机内部的硬件资源,设计实用的步进电机控制和驱动系统。 1 控制系统总体方案设计 系统功能原理示意图如图1所示。 在该系统中由单片机直接输出电机的各相控制脉冲序列,光耦进行必要的光电隔离,采用分立元件构成功率.MOSFET管驱动电路,带动电机转动。键盘接口与 LED显示功能由具有SPI串行接口功能的ZLG7289实现。既可使用按键
[电源管理]
基于<font color='red'>STC单片机</font>的经济型步进电机控制系统
STC单片机之我见一IO口
本文以STC12C5A60S2系列单片机为例来介绍: 先介绍准双向口模式,其拉电流为200mA左右,比如P2.0口外接一个100欧电阻和小led灯珠。做实验的时候会发现灯珠的亮度其实很低,因为电流太小。当设置成强推挽输出时会发现灯珠明显比较亮,因为此时的电流已经达到了20mA. P2.0口直接用准双向口模式驱动蜂鸣器的时候,蜂鸣器不响,同样是因为电流太小,此时可以外加一个10K的电阻和一个三极管来驱动之;P2.0用强推挽模式时可直接驱动蜂鸣器响。 小贴士: 1.同时对8个IO口进行设置时,可用P2=0xFF的形式来赋值,也可以单独P2.0=0
[单片机]
STC单片机 IAP(EEPROM)的使用
STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。 知识点:ISP与IAP介绍 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。 IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件上的
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved