基于GSM控制的LED显示控制系统设计——软件设计_第1页
基于GSM控制的LED显示控制系统设计——软件设计_第2页
基于GSM控制的LED显示控制系统设计——软件设计_第3页
基于GSM控制的LED显示控制系统设计——软件设计_第4页
基于GSM控制的LED显示控制系统设计——软件设计_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、届本科毕业论文(设计)论文题目:基于gsm控制的led显示控制 系统设计软件设计学生姓名: 所在院系: 所学专业: 应用电子技术教育导师姓名: 完成时间: 摘 要随着科技的不断进步,人们的生活节奏也在不断的加快,这时,信息的传递在我们的生活中的就扮演了一个重要的角色。近年来,随着led技术的不断发展,led显示屏也经常出现在我们的生活中,在火车站,银行,公路等地方它为我们传递着最新的信息。但是,对于led屏的信息传递途径,现在大多采用的还是有线传输,出于对布线及抗干扰能力的考虑,它的使用范围就受到了极大的限制。我们主要针对这个问题展

2、开讨论。本文首先通过方案对比得出一个可行的方案采用soc型单片机stc89c516rd+作为核心控制元件,西门子生产的gsm模块tc35i作为信息传输媒介,通过程序调用字库芯片gt23l32s4w在led显示屏上显示。然后主要针对软件设计的部分做了详细的介绍,软件大致分为以下几个部分:单片机外围器件及其驱动程序的设计,主要包括时钟芯片的程序设计,看门狗程序的设计,存储程序的设计等;tc35i模块at指令及中文短信息的收发的程序设计,tc35i通过标准串口和单片机进行通信,单片机发送at指令的程序设计,pdu编解码的程序设计;led显示屏与字库芯片调用的程序设计,主要有字库芯片的调用程序和led

3、显示屏的驱动程序。关键字:stc89c516rd+,tc35i模块,at指令,pdu码编解码,字库芯片the led display screen software design based on gsm modemabstractas the technology progresses, peoples lives has been the acceleration of the rhythm, then the transmission of information in our lives on to play an important role. in recent years, wi

4、th the continuous development of led technology, led displays also appear in our lives, in the railway station, banks, highways and other places for us to pass it forward to the latest information. however, led message screen means it is now used in most of cable transmission, wiring and based on co

5、nsideration of anti-interference ability, the scope of its use has been severely limited. to address this issue we discuss. in this paper, first of all through the program compared to arrive at a feasible solution - the use of soc-based single-chip control stc89c516rd + as a core component of the gs

6、m siemens tc35i module as an information transmission medium, through the process called chip gt23l32s4w font displayed on the led display . and then the major part of software design for a detailed description of the software is broadly divided into the following sections: single-chip microcomputer

7、 and its peripheral device driver design, including the procedures for the design of the clock chip, the design watchdog procedures, storage process design; tc35i module at command and the send and receive text messages in chinese programming, tc35i and mcu through a standard serial communication, m

8、icrocontroller send at commands programming, pdu programming codec; led display screen with the character of the procedure call-chip design, the main character of the call-chip process and led display driver.keyword:stc89c516rd+, tc35i module, at commands, pdu code coding and decoding, font-chip目 录1

9、 绪论12 设计要求13 方案论证13.1 整体方案选择13.2 gsm 模块的选择23.3 led显示屏控制方法选择34 系统总体框图35 程序整体设计思路46 单片机外围器件及其驱动程序的设计46.1 单片机各端口分配46.2 实时时钟电路66.3 看门狗电路76.3.1 stc89c516rd+单片机内部看门狗的使用77 tc35i模块at指令及中文短信息的收发87.1 单片机与tc35i的硬件接口87.2at指令介绍97.3 单片机发送at指令的程序设计97.4 中文短信息的收发107.4.1 pdu模式及中文短信息的编码107.4.2 pdu模式中文短信息发送的程序设计127.4.3

10、 pdu模式中文短信息的接收与解码128 字库芯片与led显示屏158.1 字库芯片158.1.1 字库芯片的介绍158.1.2 字库芯片的调用程序158.2led显示屏的控制程序189 结束语18致谢18参考文献20附录一 stc89c516rd+头文件21附录二 总程序清单241 绪论随着led显示技术的不断发展,led显示屏在我们的生活中的应用越来越广泛。火车站、银行、广场、高速公路等需要及时发布信息及广告的发布的地方随处可见。从目前的应用情况来看,大多数的led屏显示的信息还是由专用的pc机进行信息的更新、模式控制等,也有一些显示信息不需要频繁更新的场合采用了单片机控制。但是大多的数据

11、传输还是局限于有线传输,出于对布线及抗干扰能力的考虑,会很大程度的限制它的应用范围。本文主要针对这个问题介绍了基于gsm的无线led显示屏的软件设计过程。通过对不同方案的综合比较,决定使用gsm短消息作为数据传输媒介,单片机作为核心控制元件。文中主围绕控制的核心stc89c516rd+单片机对周边原件,gsm模块和led显示屏的软件控制做了详细的介绍。文中主要解决了gsm模块收发中文信息、unicode码向gb2312编码转换、对字库芯片的调用及对led显示屏的控制的软件设计。2 设计要求系统具体设计要求:(1)ds1302驱动程序的设计;(2)24c32存储器的读写程序;(3)tc35i驱动

12、程序设计;(4);pdu串解码;(5)汉字编码转换程序;(6)字库芯片的调用程序;(7)led显示屏驱动程序(8)终端主程序;3 方案论证3.1 整体方案选择方案一:基于arm的嵌入式系统与gsm模块构成的系统。由于arm处理器的功能强大,资源丰富,因此使用这种方案可以使系统功能近乎完美,并且由于使用了操作系统,应用程序的设计会变得简单可靠。但是这种方案成本较高,同时使用的嵌入式操作系统也会占用一部分额外的硬件资源,这样会大大的提高开支。目前情况下我们不考虑这种方案。方案二:soc型单片机与gsm模块构成的系统。目前soc型单片机已非常普遍,基于51内核的soc型芯片也有众多供应厂商。例如,国

13、内宏晶科技的stc系列,cyganl公司的c8051系列。这些单片机都有丰富的片上资源,一般都不需要外扩其他器件就可以构成一个完整的系统。片上系统的优点在于减小了布线的麻烦,提高了系统的整体性能,并且它的价格低廉,经济实惠,因此我们选用这种方案1。3.2 gsm 模块的选择本设计中gsm 模块是该系统中的核心部分,正确选择合适gsm 模块确定着整个项目设计的成败。目前gsm 模块有众多供应商提供,我们有以下几种常用的gsm模块进行选择,以便选择合适的方案。方案一:采用mz28模块。mz28模块是中兴通讯推出的gsm无线双频调制解调器,主要为语音传输、短信发送和数据业务提供无线接口。mz28集成

14、了完整的射频电路和gsm的基带处理器,特别适合于迅速开发基于gsm无线网络的无线应用产品。带有人机接口(mmi)界面的应用产品内部与mz28的通讯可通过标准的串行接口(rs232)进行。mz28使用简单的20-pin zip插座与用户自己的应用系统相连,此zip连接方式提供开发所需的数据通信、音频和电源等接口信号。mz28可以作为无线引擎,嵌入到用户自己的产品当中,用户可以用单片机或其他cpu的uart口,使用相应的at命令,对模块进行控制,达到使其产品可以轻松进入gsm网络的目的2。方案二:采用tc35i模块。tc35i是西门子公司推出的新代无线通信gsm模块。自带max232通讯接口,可以

15、方便地与pc机、单片机连机通讯。可以快速、安全、可靠地实现系统方案中的数据、语音传输、短消息服务(short message service)和传真。tc35i模块的工作电压为3.35.5v,可以工作在900mhz和1800mhz两个频段,所在频段功耗分别为2w(900m)和1w(1800m)。模块有at命令集接口,支持文本和pdu模式的短消息、第三组的二类传真、以及2.4k,4.8k,9.6k的非透明模式。此外,该模块还具有电话簿功能、多方通话,漫游检测功能,常用工作模式有省电模式、idle、talk等模式。通过独特的40引脚的zif连接器,实现电源连接、指令、数据、语音信号、及控制信号的双

16、向传输。通过zif连接器及50天线连接器,可分别连接sim卡支架和天线。tc35i模块主要由gsm基带处理器、gsm射频模块、供电模块(asic)、闪存、zif连接器、天线接口六部分组成。作为tc35i的核心,基带处理器主要处理gsm终端内的语音、数据信号,并涵盖了蜂窝射频设备中的所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持fr、hr和efr语音信道编码。其它功能介绍可参见相关资料3。有以上几个方案我们进行比较,我们发现tc35i有众多的用户,资料介绍比较全面详细。网络上也有很多电子爱好者、工程师对tc35i比较感兴趣,讨论的话题比较多,更有很多调试笔记等可以参考。而且采用tc3

17、5i作为信息传输、控制的系统越来越成熟,因此我们考虑选用该模块,这样风险较小,成功率较高,遇到问题方便解决。3.3 led显示屏控制方法选择方案一:选择与显示屏配套的控制卡。控制卡主要由dsp芯片作为控制核心,周边由字库芯片,存储器件,驱动芯片及接口电路组成。其中,它的接口电路有与显示屏连接的08接口和与外部数据通信的rs232接口。它主要是通过上位机软件进行数据修改。于是,我们如果用单片机对它进行控制,就要清楚上位机与显示屏控制卡之间的控制协议以此进行程序的编写。采用这种方案对于硬件电路的设计比较容易,可是程序编写会比较复杂。方案二:自己做控制卡。自己选择字库芯片,驱动芯片由单片机直接对其进

18、行控制。通过我们查找不同的字库芯片,最后选择了上海集通公司的gt23l32s4w4。gt23l32s4w是一款内含11x12点阵、15x16点、24x24点阵、32x32点阵的汉字库芯片,支持gb2312国标汉字(含有国家信标委合法授权)及scii字符。排列格式为横置横排。用户通过字符内码,利用本手册提供的方法计算出该字符点阵在芯片中的地址,可从该地址连续读出字符点阵信息。我们可以通过单片机对字库芯片进行读取。同时用单片机控制驱动芯片74hc245,用于对led显示屏进行控制。该方案硬件电路设计较为麻烦,可是它解决了对方案一中上位机与显示屏控制卡之间的控制协议的问题。通过我们不断的资料搜集,发

19、现上位机与显示屏控制卡之间的控制协议这一问题很难解决,这个协议很难获取,因此,和导师讨论后,决定采取第二种方案。4 系统总体框图根据设计要求及方案论证,系统终端电路方框图如下图1所示:在图1所示的方框图中,单片机系统包括单片机系统芯片stc89c516rd+、时钟芯片ds1302、看门狗芯片max6865、gsm接口max232,存储芯片24c32,字库芯片gt23l32s4w及驱动芯片74hc245。gsm模块采用tc35i,tc35i带有标准的串行通信接口通过max232进行电平转换后与单片机进行接口。在本设计中我们的重点是进行短信息的接收与pdu解码以及字库芯片的使用。其中字库芯片的使用

20、问题比较多。由于这个字库芯片采用的是3.3v供电,而我们的系统采用的是5v供电,所以要进行电平的转换。所以我们采用了电平转换芯片74hc1g08,用以进行电平匹配。显示屏驱动电路主要是通过74hc245连接在led显示屏的08接口上,用以对led显示屏进行控制。led显示屏我们采用市面上出售的带有标准08接口的显示屏。led显示屏gsm模块 电源电路 实时时钟电路单片机系统看门狗电路存储电路显示屏字库电路显示屏驱动电路gsm模块接口电路 图1 系统终端硬件电路方框图5 程序整体设计思路程序流程图如图2所示:由程序流程图我们不难看出,程序主要包括数据接收和显示程序。其中,数据接收主要是对gsm模

21、块儿进行控制。gsm与单片机联机成功后,如果判断出有数据输入,调用短信接收程序,接收采用pdu编码的信息,并将读出的信息内容存入外部存储器中,然后对读出的数据进行解码,把utf-8(汉字unicode编码)转换为gb-2312码。这样得到汉字的国标码之后,通过公式可以得出汉字的机内码。有了汉字的机内码,可以算出该汉字在点阵字库中的点阵数据在字库芯片中的起始位置,把得到的点阵数据送入led显示屏中就可以显示出相应的汉字的字型码了。6 单片机外围器件及其驱动程序的设计6.1 单片机各端口分配单片机端口分配如图3所示:led1-led3是指示灯控制端口;rxd和txd是串口通讯端口;初始化启动看门狗

22、判断gsm是否联机判断gsm是否有数据输入暂存数据信息解码调用显示结束ynyn判断数据系统显示信息系统调整信息执行调整程序是否成功ny图2 程序流程图do,di,sclk1,cs为字库芯片控制及数据传输端口;dio,sclk,drst为ds1302控制端口;wdi为看门狗芯片控制端口;scl,sda为24c32的数据传输端;a1-a8,d,g1,g2是led显示屏的控制端口。图3 单片机端口分配图6.2 实时时钟电路在本系统中需要显示当前的日期、时间等,因此我们使用一个时钟芯片,用来提供年、月、日、星期、小时、分钟等信息。我们选用maxim公司生产的时钟芯片ds1302,外形图如图4所示。图4

23、 ds1302外形及管脚分布ds1302 是 dallas 公司推出的涓流充电时钟芯片内含有一个实时时钟日历和 31 字节静态 ram 通过简单的串行接口与单片机进行通信 实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息。每月的天数和闰年的天数可自动调整时钟操作可通过 am/pm 指示决定采用24 或12小时格式ds1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1res 复位 2 i/o 数据线3 sclk串行时钟时钟/ram 的读/写数据以一个字节或多达 31 个字节的字符组方式通信 ds1302工作时功耗很低保持数据和时钟信息时功率小于1mw。ds1302

24、有两个电源端vcc1和vcc2,vcc1作为主电源端接电源电压,vcc1作为备用电源端,可接一个电容,或是接一个备用电池,当失去电源电压时,ds1302可以通过备用电源或是电容的放电来维持供电,保证时钟芯片能正常运行。当电源电压正常时,备用电源在线路里不起作用。6.3 看门狗电路由于我们的终端是工作在无人值守的环境中,因此必须防止程序跑飞而造成的死机,系统崩溃等。stc89c516rd+单片机内部集成了硬件看们狗可以满足系统安全性的需求。另外我们还使用了一个外部看门狗芯片max6865备用。max6865是美信公司纳安级功耗的微处理器监控电路,带有手动复位及看门狗定时器,max6865的详细资

25、料可以参阅max6865的器件手册。6.3.1 stc89c516rd+单片机内部看门狗的使用stc89c516rd+单片机通过向特殊功能寄存器wdt_contr写入指定的数据,来启动或复位内部看门狗。wdt_contr寄存器的各位及其功能如表1所示5。表1 wdt_contr寄存器表中各位描述:(1)en_wdt 看门狗允许位,当设置为“1”时,看门狗启动。(2)clr_wdt看门狗清“0”位,当设置为“1”时,看门狗重新计数,硬件将自动清“0”此位。(3)idle_wdt 看门狗“idel”模式,当设置为“1”时,看门狗定时器在“空闲模式”计数。当该位清“0”时,看门狗计数器在“空闲模式”

26、不计数。(4)ps2、ps1、ps0 看门狗定时器预分频设置控制位。看门狗预分频值如表2所示。看门狗溢出时间计算。看门狗溢出时间=(npre_scale32768)/oscillator frequency,例如,当系统晶振频率为12mhz,12时钟模式,则看门狗溢出时间= (12pre_scale32768)/12000000。表2 看门狗定时器预分频值ps2ps1ps0预分频(pre_scale)看门狗定时器溢出时间(ms)(12mhz晶振,12时钟模式)000265.50014131.00108262.101116524.2100321048.5101642097.11101284194

27、.31112568388.6了解了看门狗定时器特殊功能寄存器各位的功能,我们就可以使用汇编语言或者c语言来操作该寄存器。下面是使用c语言操作单片机内部看门狗的子程序。void reset_wdt(void)wdt_contr = 0x3f; /复位看门狗void init_wdt(void)wdt_contr = 0x3f; /看门狗初始化,使用18.432mhz晶振,设 置为256分频,溢出时间大约5.46 s有了这两个子程序,在使用stc89c516rd+的内部看门狗的时候,在程序的开始处调用init_wdt函数,然后在主程序的适当位置调用reset_wdt函数就可以实现启动以及复位看门狗

28、。一旦程序跑飞或者死机,在规定的时间内(例如本程序中的5.46s)没有调用reset_wdt函数,看门狗计数器就会溢出,同时发复位信号给单片机,重新启动系统。max6865的使用与单片机内部看门狗的使用相同,只是max6865的定时器清“0”是通过把单片机的p4.2脚(p4.2脚与max6865的wdi脚相连)置“1”来实现的,这里不再赘述。7 tc35i模块at指令及中文短信息的收发7.1 单片机与tc35i的硬件接口单片机与tc35i是通过标准串口进行数据交换的。因此只需要使用一根串口通信电缆(db9)连接单片机的串口与tc35i的串口即可。单片机与tc35i的通信电缆连接方式如图5所示。

29、单片机与tc35i的波特率都设置为9600bit/s、8位数据位、1位停止位、无校验位。图5 单片机与tc35i的连接方式7.2at指令介绍单片机与tc35i通讯实现任何功能都是通过向tc35i发送at指令来实现的。在tc35i的用户手册中用来操作tc35i的at指令非常繁多,但常用的指令并不是很多。表3列出了常用的at指令。表3 常用at指令at指令功能描述at联机命令at+csq查询信号质量at+creg?查询注册状况at+ipr设置串行通信的波特率at&v显示gsm模块当前的一些设置at+cmgf设置短信编码格式 1-text格式,0-pdu格式at+cnmi选择短消息到来时系统的提示方

30、式at+cmgr读取一条短消息at+cmgl将sim卡中存贮的短消息列表at+cmgs发送短消息at+cmgd删除一条短消息7.3 单片机发送at指令的程序设计单片机与gsm模块(tc35i)的软件接口其实就是单片机通过发送相关的at指令对gsm模块进行操作的技术。如设置短信息的编码方式、读取手机的短信息内容、删除短信息内容、列出手机中还未读的短消息等。执行1条指令,并非某些资料介绍的那么简单,事实上,指令的执行过程需要单片机与手机交互应答完成,每一次发送或接收的字节数都有严格的规定,二者必须依据这些规定实现数据交换,否则,就会出现通信失败。表4列出at指令执行过程。需要重点说明的是,所有at

31、指令的指令符号、常数、pdu数据包等都是以ascii编码形式传送的。比如“a”的ascii编码为41h,“t”的ascii编码为54h,数字“0”的asc编码为30h等。单片机通过串口向手机发送每一条指令后,必须以回车符作为该条指令的结束,回车符的ascii编码为0dh。例如,单片机向手机发送“at+cmgf=0”这条指令,其ascii编码序列为“41h、54h、2b h、42h、4dh、47h、46h、3dh、30h、0dh”,最后一个字节“0dh”就是回车符,表示该条指令结束,如果没有这个回车符,手机将不识别这条指令。当手机接收到一条完整的at指令后,手机并不立即执行这条指令,而是首先把刚

32、才接收到的at指令的全部asc编码序列全部反发送出来(含0dh),其次发送1个回车符和换行符的asc编码即0dh和0ah,最后执行该条指令。例如发送“at+cmgf=0”这条指令给gsm模块,如果通信成功,则gsm模块返回“at+cmgf=0 ok”,即单片机接收到的数据是该字符串的ascii码“41h 54h 2bh 43h 4dh 47h 46h 3dh 30h 0dh 0dh 0ah 4fh 4 bh 0dh 0ah”这表示该条指令已经被成功的执行。表4 at指令的执行过程7.4 中文短信息的收发7.4.1 pdu模式及中文短信息的编码短信收发的编码格式一共有三种:block模式, te

33、xt模式和pdu(protocol description unit)模式。其中block mode已经逐渐被淘汰,目前很少用了。text mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。pdu mode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。text mode比较简单,而且不适合做自定义数据传输,我们就不讨论了。下面介绍的内容,是在pdu mode下发送和接收短消息的实现方法。pdu串表面上是一串ascii码,由“0”-“9”、“a”-“f”这些数字和字母组成。它们是8位的十六进制数,或者bcd码十进

34、制数。pdu串不仅包含可显示的消息本身,还包含很多其他信息,如sms服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的pdu串,结构是不完全相同的。我们先用两个实际的例子说明pdu串的结构和编排方式。例1,发送一条pdu格式的中文短信息,smsc号码是(短信中心号码)+8613800371500,目标号码+8615939026810,短信息内容是“你好!”,则从单片机发送到gsm模块的pdu串可以是“0891683108301705f011000d91685139096218f0000801064f60597dff01”,如果使用默认的短信中心号码则pdu串可以是:“0011

35、000d91685139096218f0000801064f60597dff01”。对照pdu编码的规范,各段含义如表5所示。例2,接收一条短信息,smsc号码是(短信中心号码)+8613800371500,对方号码是+8615850180731,则从gsm模块读取的pdu串为:“0891683108301705f0240d91685158100837f1000880401001156423064f60597dff01”,表6列出了对该pdu串的详细解释。表5 发送pdu串分析分段含义说明08smsc短信中心地址长度共8个8 位字节包含9191smsc地址格式用国际格式号码(在前面加“+”)6

36、83108301705f0smsc短信中心号码8613800371500字节翻转后补“f”凑成偶数个11基本参数(tp-mti/vfp)发送tp-vp,用相对格式00消息基准值(tp-mr)00d目标号码长度共13个十进制数(不包含91,“f”)91目标地址格式用国际格式号码(在前面加“+”)685139096218f0目标号码8615939026810,补“f”凑成偶数个00协议标示(tp-pid)普通gsm类型,点对点方式08用户信息编码方式(tp-dsc)8bit编码01短消息有效期(tp-vp)(vp+1)*5分钟06用户信息度(tp-udl)实际长度6个字节4f60597dff01用

37、户信息(tp-ud)“你好!”unicode编码从两个表格中内容我们可以看出:(1)若基本参数的最高位(tp-rp)为0,则没有回复地址的三个段。从internet上发出的短消息常常是这种情形。(2)smsc号码、手机号码和时间的表示方法,不是按正常顺序顺着来的,而是按照先存放地位字节后存放高位字节的规则形成的,而且要加“f”将奇数补成偶数。表6 接收pdu串详解分段含义说明08smsc短信中心地址长度共8个8 位字节(包含91)91smsc地址格式用国际格式号码(在前面加“+”)683108301705f0smsc短信中心号码8613800371500字节翻转后补“f”凑成偶数个24基本参数

38、接收、无更多信息、有回复地址0d对方号码长度共13个十进制数(不包含91,“f”)91地址格式用国际格式号码(在前面加“+”)685198830188f6对方号补“f”凑成偶数个00协议标示(tp-pid)普通gsm类型,点对点方式08用户信息编码方式(tp-dcs)unicode编码80401001156423时间戳(tp-scts)08-04-01 10:51:46 时区2306用户信息长度实际长度6个字节4f60597dff01用户信息内容“你好!”在pdu模式中,可以采用三种编码方式来对发送的内容进行编码,它们是utf7、utf8和ucs2编码。(1)utf7

39、编码用于发送普通的ascii字符,它将一串7位的字符(ascii码表示形式)编码成8位的二进制数据,每8个字符可“压缩”成7个,utf7处理 ascii 字符的时候需要做“补位”处理。补位规则:将后一字节的从尾取位补在前一字节的头,补满8位。(2)utf8编码通常用于发送数据消息,比如图片和铃声等。(3)如果发送中文字符,则采用ucs2编码方式,每个中文字符用16位二进制数据的unicode字符编码方式表示,如果是中英文混合的短信,由于英文字符只占1字节,需要补0,成为16位的编码。例如,“你好!”的unicode编码为4f60597d0021,其中“!”的ascii码为21h,编码后为002

40、1h。7.4.2 pdu模式中文短信息发送的程序设计在pdu模式中,ucs2编码用于发送unicode字符。pdu串的用户信息(tp-ud)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。了解了pdu串的格式以及pdu模式下中文信息的编码方式,我们就可以使用汇编或c语言来实现中文短消息的发送和接收。7.4.3 pdu模式中文短信息的接收与解码由于中文字的编码是采用2个字节的编码,因此发送和接收中文或中英文混合的短信息只能采用pdu模式。使用at指令“at+cmgr”就可以从gsm

41、 模块中读取一条pdu格式的中英文短信息字符串。但在gsm标准中,中文编码采用utf-8的编码,不是目前国内常用的gb-2312编码,故还需要进行中文编码的转换,才能与采用gb-2313汉字库相配合显示汉字字型。由于utf-8和gb-2312编码之间不存在一一对应的线性关系,因此只能采用查表的方式进行转换。采用查表法把utf-8(汉字unicode编码)转换为gb-2312编码的程序流程图如图6所示。采用查表法把utf-8(汉字unicode编码)转换为gb-2312编码的c语言从pdu串中读取2字节unicode汉字编码在0020h和007eh之间?查找unicode编码在表中的位置i1i1

42、; for(j=0;j=0x20&temp_l0x7f) *pdst+=0xa3; *pdst+=temp_l+0x80; else for(i=0;i1)/94+0xb0; *pdst+=(i1)%94+0xa1; return ndstlength;8 字库芯片与led显示屏8.1 字库芯片8.1.1 字库芯片的介绍gt23l32s4w(如图7所示)是一款内含11x12点阵、15x16点、24x24点阵、32x32点阵的汉字库芯片,支持gb2312国标汉字(含有国家信标委合法授权)及ascii字符。排列格式为横置横排。用户通过字符内码,利用本手册提供的方法计算出该字符点阵在芯片中的地址,可

43、从该地址连续读出字符点阵信息。图7 字库芯片gt23l32s4w8.1.2 字库芯片的调用程序此程序调用一次,就缓存一个汉字的点阵数据,本程序采用一般读取方式(read data bytes ),需要用指令码来执行每一次操作(程序流程图如图8):首先把片选信号(cs#)变为低,紧跟着的是1 个字节的命令字(03 h)和 3 个字节的地址和通过串行数据输入引脚(si)移位输入,每一位在串行时钟(sclk)上升沿被锁存。 然后该地址的字节数据通过串行数据输出引脚(so)移位输出,每一位在串行时钟(sclk)下降沿被移出。读取字节数据后,则把片选信号(cs#)变为高,结束本次操作。 如果片选信号(c

44、s#)继续保持为底,则下一个地址的字节数据继续通过串行数据输出引脚(so)移位输出。初始化获取汉字内码计算汉字地址送入读取汉字命令字读出汉字点阵数据送缓存单元返回图8 字库芯片程序调用字库芯片调用程序如下:/* 函数名称: ziku* 功能描述: 字库芯片的调用程序* 输出: data hz_3232*/int8u ziku(int8u data hz_3232)unsigned char i,j,k; lsb=neilow; /汉字内码低八位 msb=neihigh; /汉字内码高八位 baseadd=0x2c9d0; /15x16点阵汉字在字库中的首地址 if(msb =0xa1 & ms

45、b =0xa1) address =( (msb - 0xa1) * 94 + (lsb - 0xa1)*24+ baseadd; else if(msb =0xb0 & msb =0xa1) address = (msb - 0xb0) * 94 + (lsb - 0xa1)+ 846)*24+ baseadd; / 计算出汉字地址 ce=0; /片选端为零,开始传送数据 for(i=0;i6;i+) sclk_01=0; _nop_(); si=0; sclk_01=1; sclk_01=0; _nop_(); si=1; sclk_01=1; sclk_01=0; _nop_(); si

46、=1; sclk_01=1;/输入命令字03for(j=0;j24;j+) sclk_01=0; _nop_(); si=address_23; sclk_01=1; address=address1;/输入三字节地址 for(k=0;i32;i+)/读出字库点阵数据送缓存单元 sclk_01=0; _nop_(); hz_087=so; sclk_01=1; sclk_01=0; _nop_(); hz_086=so; sclk_01=1; sclk_01=0; _nop_(); hz_085=so; sclk_01=1; sclk_01=0; _nop_(); hz_084=so; scl

47、k_01=1; sclk_01=0; _nop_(); hz_083=so; sclk_01=1; sclk_01=0; _nop_(); hz_082=so; sclk_01=1; sclk_01=0; _nop_(); hz_081=so; sclk_01=1; sclk_01=0; _nop_(); hz_080=so; sclk_01=1; hz_32k=hz_08; k+; 8.2led显示屏的控制程序led是利用汉字操作系统的字库文件,按照 二进制方式打开字库文件,根据区位码确定每个汉字在字库中的位置,从中把欲显示的汉字字模取出。字模信息中字节的每一位表 示汉字点阵中的一个点的属性

48、。若为 1 则表示该点显示。若为0则该点不显示,因此在读取了汉字的字模信息后,还要将其每个字节处理成8个二进制位组成的“ 0 ”和“ 1 ” ,以便对字模的每个字节每一位逐点进行判断处理,由此产生一个汉字图形。9 结束语经过几个月的努力,我们设计的基于gsm模块的无线led显示屏基本上达到了预期的设计要求。后期我们将不断的对程序和硬件进行完善,使系统功能不断的提升。在信息化社会中,远程信息传递在我们的生活中占据了越来越重要的地位。gsm模块以其准确、低廉、实时的特点为人们获得某种信息提供便利,同时led显示又是沟通的重要窗口,二者结合显示可应用的领域十分广泛,如交通、天气预报、广告、通知、工农

49、业生产、商业信息等,本设计采用的模块市场上容易获得,处理系统使用stc的单片机使电路简单可靠。纵观现有led显示屏的行情,可以看出,该系统实用性强,具有广阔的市场前景。致谢这次毕业设计是在老师的精心指导和大力支持下完成的。在课题选定、理论基础和方案的论证上,老师为我们做了认真的分析和耐心的讲解,从理论指导到实际操作徐老师也给我提供了极大的帮助。至此论文定稿之际,对老师表示衷心的感谢! 感谢老师能在繁忙的教学之中抽出时间为我提供耐心的指导,帮我们解决在设计过程中遇到的种种问题。这次的毕业设计是由我们两个人共同完成的,正是我们的团结合作、坚持不懈才能取得现在的结果。所以在这里还要感谢同学的鼎力帮助,他给我的软件设计提出了不少建议,使我思路开阔,程序也因此更加完善。在这里一并向他表示感谢!最后,再次向各位领导、各位老师致以衷心的感谢!参考文献1 潘琢金,施国君.c8051fxxx高速soc单片机原理及应用m.北京:北京航空航天大学出版社,2002.52 中兴通讯gsm无线模块mz28用户手册eb/ol/down/soft/52012.htm,2006-08-16/2006-10-043 siemens. tc35i terminal. eb/olhttp:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论