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

2009-8-15 00:44 1326 7 7 分类: MCU/ 嵌入式

发布: 2009-4-04 21:37 |  作者: hnrain |   查看: 13次


[摘要]:本文介绍了利用STC89C58RD+单片机做为主控芯片,GPRS 模块SIM300做为短消息接收器的LED条形图文显示屏系统的软硬件设计。其中,单片机相当于整个系统的“神经中枢”,既要在AT命令下通过串口读和删除GPRS 模块收到的短消息并进行处理,又要控制条形屏显示相应的信息。
+kGh6} |2?1c44606[关键词]:单片机; GPRS;LED屏;SMS(短消息服务);AT 
L7Hb|%\Wy44606

.~]5f)k9E^I$[uB446061序言

J%Oes&Ui44606电子园51单片机学习网| eX'`1g?9p[a,O

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

%t`:x4v&P_,i#r_V44606电子园51单片机学习网)RtA J(X$E1_'Q

2硬件设计系统

no;H|_44606

6136_200904042137421XsDB.jpg电子园51单片机学习网2bjEzw M-KLh


图1 硬件设计框图电子园51单片机学习网? d8kzK9ya

电子园51单片机学习网,r7si0lg@

如图1所示,本系统主要由三部分组成:GPRS 模块;单片机模块;LED显示屏模快。电子园51单片机学习网"Hl7Y.l x



电子园51单片机学习网~"my5Ci lze

2.1 GPRS模块

4v B \b(s.CS:v44606电子园51单片机学习网@&z {5["j1XL

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

.Uu5Y+U:z44606电子园51单片机学习网,]gt-gfL#{a-hL

2.2单片机模块电子园51单片机学习网+l'^ oI6|D^#U.o

电子园51单片机学习网R,JZT"y

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


&RC*n&a:XN$A6K7^/r44606单片机的主要功能是持续将已有的屏显示数据送LED屏,同时通过串口发AT指令监视GPRS 模块是否有新消息,一旦有,便进入串口中断,对数据进行处理。而外部FLASH主要存的是一些常用汉字和一些符号的字模,单片机处理好文字信息后,将通过它获得汉字字模,以便屏显。电子园51单片机学习网o$_k)a]?Ku

电子园51单片机学习网Z:F4Vwm'v:QO

2.3 LED

b0I'D|M7O]44606电子园51单片机学习网7a+TG2l5a#D0j

终端显示设备LED屏主要控制芯片是74HC595,还有双向驱动芯片74LS245以及一些辅助的电流放大芯片。此屏可以显示12个16*16的汉字。电子园51单片机学习网5bzA rH!K


#?.j+G D-UU p-y446063软件设计部分

&LdlH L_8o k ?44606

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

%EZA-yhI3e|i3mu~44606

D va'_+nJ]446063.1  AT命令电子园51单片机学习网7s6Y)C&K*n uOt


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

B5XKV/?8_x!D44606

-^!rJLk,o:{44606(1)AT命令读收到的新消息:at +cmgr=1 回车;电子园51单片机学习网%{~\$D1k/|


a"z@N"|U44606(2)删除已读完的消息:at+cmgd=1 回车。电子园51单片机学习网GdeLOL!\

电子园51单片机学习网+?0P8b8c)fU R*~x,p

3.2  SMS及汉字、图片的解码方式电子园51单片机学习网6^%Ea$w/Z-\tU


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


$J)^!j5w~k446063.21 PDU Mode

`3s2oAt6yN1w)I'Ig44606

PDU模式是发送或接收手机短消息最常用的一种方法,它把短消息正文经过十六进制编码后传送。它可以发送最多160个字符,当使用7-bits编码的时候。8-bit编码(最多140个字符)通常无法直接通过手机显示;通常被用来作为数据消息,例如:smart messaging中的图片和铃声)和OTA WAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。

5q+_sF#w/b"d E44606

本系统的文本信息采用的是Unicode(UCS2)方式,而小图片信息采用的是7-bits编码方式。由于信息来自手机,所以只介绍收到信息后,单片机的解码过程。电子园51单片机学习网"\ @6pH K#i


3.22汉字的解码过程

(Dmf:I0}$zH|'U44606

外部FLASH储存的是用matlab工具将Unicode(UCS2)码与国标码一一对应后的常用汉字和字符的字模,所以单片机的解码过程也就是寻找相应字模的过程。当出现需要处理的情况时,单片机通过串口把手机模块收到信息完全读过来,因为此信息有一段消息头:包括对方手机号、客服中心号码、时间等等。而显示屏显示的时候只需要消息的主题内容,所以单片机处理消息时把屏号做为第一个字节处理将汉字对应的Unicode码转化成十进制的数字,然后分离出区号和位号去寻找字模,然后按相应的顺序存在单片机的内部ram里,方便取数据送屏。可以用图 2描述。电子园51单片机学习网kT G;v5qA


6136_200904042137422xucP.jpg                                                                                                                电子园51单片机学习网8M;e3M W;l8B

电子园51单片机学习网 cQ]p8tC5BU!T

 电子园51单片机学习网L$S+j^2nD([6F

电子园51单片机学习网'{G(Sk+c#[

图2  Unicode(UCS2)码解码简图电子园51单片机学习网0@D8FIF9]*ft%~

电子园51单片机学习网FVm)F}(Ye

3.23图片的解码过程电子园51单片机学习网j r Hd-sw1r8Yz


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

W C*h,L&R"G'F44606

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

;uq.I4W8Tq-IZZP#Rt2T44606



&v8G {|\c44606 for(j=0;j<ccount;j=j+7)

\C5j\2C(R0Z44606

+?],o9{0kY{$N T_w44606{ h="j/7"*4; a="gsm"[j]&0x80;

^oxy1Y44606

l@3D,]/G4[,~XABm44606chartemp1=gsm[j]&0x7f;

7Aj'Fl0TH];A|44606电子园51单片机学习网 AOT/__1[8g

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

!C r8]S|2G]44606电子园51单片机学习网~8l*A Q!b"mz

     else chartemp1=chartemp1-55;电子园51单片机学习网"vH(J,p8[


;G:T,VE+Cu44606     b=gsm[j+1]&0xc0;电子园51单片机学习网 B @h/Y4} A:v3l3J#|


-p9tW ~9nFA{3OR44606     chartemp3=((gsm[j+1]&0x3f)<<1)|(a>>7);电子园51单片机学习网 X!L;eG{

电子园51单片机学习网3i8N&dA)m9{)mc;^

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

TU wf [.{OK'l6r0O44606

1H$i0Br8S{N~44606     else chartemp3=chartemp3-55;

Fp~;Ye nt44606电子园51单片机学习网SaR0?u'}E

     cun[h]=(chartemp1<<4)|chartemp3;电子园51单片机学习网f'o ?-iX9^


C [-KjU7^6A4l44606     c=gsm[j+2]&0xe0;

/k*]U2Cx#vC4KB,R"u)u44606电子园51单片机学习网W+Vl-_^;?0@%B

chartemp5=((gsm[j+2]&0x1f)<<2)|(b>>6);                                                       if(chartemp5<'A') chartemp5=chartemp5-48;电子园51单片机学习网F&_4HjXO!t


}b] k5dr44606     else chartemp5=chartemp5-55;电子园51单片机学习网7Zu0zBLm7r!jYk

电子园51单片机学习网n&\PbS W

     d="gsm"[j+3]&0xf0;                                                                                        chartemp7=((gsm[j+3]&0x0f)<<3)|(c>>5);电子园51单片机学习网0s#}-\MI"~V)G Y

电子园51单片机学习网,iL/Xqz+?`/r

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

s r,rN+L v/nC @44606

9R0O-nF)c,tv x44606     else chartemp7=chartemp7-55;                                                                     cun[h+1]=(chartemp5<<4)|chartemp7;                                                                                                                  e="gsm"[j+4]&0xf8;                chartemp9=((gsm[j+4]&0x07)<<4)|(d>>4);电子园51单片机学习网9F;_B*zK)U0b


)xK*ymg4`v44606     if(chartemp9<'A') chartemp9=chartemp9-48;

h l9c,qK p44606电子园51单片机学习网YTaW|#DyN

     else chartemp9=chartemp9-55;

U+]z A3u t{lS%a44606电子园51单片机学习网ReJTlo.z7_)`

f=gsm[j+5]&0xfc;电子园51单片机学习网:@W3fA;Nr

电子园51单片机学习网$p p)B4J m3a%w

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

@*o;@'|4h44606电子园51单片机学习网7s[4F&M;m,k,x;|Y

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

3kWV,UNl R44606电子园51单片机学习网]AZ+cdV&]1R

     else chartemp11=chartemp11-55;电子园51单片机学习网Vg]Y&fP/wH(Q

电子园51单片机学习网_"I`\2e:hV"^

     cun[h+2]=(chartemp9<<4)|chartemp11;电子园51单片机学习网'~;R2`lQK%G

电子园51单片机学习网#~-l g0pQTi%l

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

1Z6z:|Ii{"RJ&Y44606电子园51单片机学习网z'Y*G#c0DPRwn

     chartemp13=((gsm[j+6]&0x01)<<6)|(f>>2);电子园51单片机学习网E6H+lZ2P6Jm,co

电子园51单片机学习网)YG{*Vw hi

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

? TM1t%T.yN9bc ^]5H44606

fE+?4H OYG44606     else chartemp13=chartemp13-55;

c {`*vU)tK[_44606

8y2e3ZxXa44606     g="g">>1;电子园51单片机学习网5Jj&c&K!H6AVm


| TFK/l44606     if(g<'A') g="g-48";电子园51单片机学习网"]`4X6qQDJn


&S*kr.cdp8R(v(ya44606     else g="g-55";

Dei1q{"O;R%I)\$t44606

I$b n#[9kpP3yS44606     cun[h+3]=(chartemp13<<4)|g;}电子园51单片机学习网#` N(UUK ~o


电子园51单片机学习网 C u*| qt+E6BK6u

3.3与屏有关的软件设计电子园51单片机学习网9S*?z'U@r.E)QlZ


co-o*KT!Z44606这些函数包括往内部ram写数据的writeyipin() 函数,送临时储存区的读数据函数,行扫描列扫描函数,送行列数据函数,同时还有一些延时函数。值得一提的是writeyipin() 函数,在写数据时,因为采用的条屏是可显示12个16*16的图片,所以按照一个字行列的显示顺序存储,这样以来读数据送屏时不必做其他的处理,节省了时间和资源。电子园51单片机学习网6g:i5P~2o7Ef n v/K

电子园51单片机学习网6DQ'L|x'M,w~

综上所述软件的流程图如图3所示。电子园51单片机学习网f_w0M;etsa1N4E


*Lt7w&zf~w3{/o V446066136_2009040421374235KWr.jpg

t6]+T GW:`o0@44606电子园51单片机学习网"i1{V:qLw }Qe{

图3 软件主要流程图电子园51单片机学习网%|cXr`4tf


dm-w0z&h"IUik\k4VG446064结束语

:^2H3i&\ Q!j#p0^R l44606

|3s2J3Yv44606本系统运行稳定,能清晰准确的显示汉字与图片信息,且成本较低,可用于车载小屏广告信息的发布,也可用于偏远地区的政策宣传。电子园51单片机学习网Dl[3u Q2zu!|

电子园51单片机学习网 m)z]8H@4zG;E r

本文作者创新点:实现了简单图片的传输与显示,能更直观的表达广告和新闻信息

&m7|*Jw#q44606

-j$?:ed/Gc]8h:P44606 

YC&C1Da2K3y*goF+n-[44606电子园51单片机学习网%KcQ'rch

参考文献电子园51单片机学习网h6NE5V1wz

电子园51单片机学习网1kD8H xw$M

 [1] 李群芳,黄建. 单片微型计算机与接口技术[M]. 北京: 电子工业出版社, 2002.电子园51单片机学习网{mYr-f`r.b


*Qhho0R6_$x3R0[+C44606  [2] 姚永平. STC89C51RC/RD+系列单片机器件手册[M]. 深圳:宏晶科技,2006.

6l,v7AG3G,h6c44606

[3]王祖林,汪文婷.GPRS传愉静态图像系统的设计与实现[J].计算机技术,2006(4):37-44.

M%{6[&M#p[44606电子园51单片机学习网,N6\vB e;I;L

[4] SIM300 HARDWARE SPECIFICATION

9N^8D1iI(qF+rxG2M44606

"x G9XVe*d@h\F44606[5]陆小锋,陆亨立,张芳琴. GPRS在GPS汽车信息服务系统中的设计应用[C]. 微计算机信息,2005 第三期, 188.

\5v2~oT*a5]%v44606
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条