《毕业设计论文基于GPRS通信的LED显示屏.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于GPRS通信的LED显示屏.doc(35页珍藏版)》请在三一办公上搜索。
1、泉 州 师 范 学 院毕业论文(设计)题 目 基于GPRS通信的LED显示屏 The display of LED base on GPRS communication 物信 学 院 电子信息科学与技术 专 业 07 级 1 班学生姓名 学 号 070303009 指导教师 职 称 副教授 完成日期 2011年4月10日 教务处目录1.绪论31.1 本文主要研究的内容31.2 GPRS特点32. 短信系统关键技术32.1 AT指令32.2 短信通信关键技术43. 系统结构设计64. 整体电路的各硬件电路的设计64.1 GPRS与单片机接口电路设计64.2 单片机C8051F410外围电路的设计
2、64.3 LED点阵屏单元板的设计原理分析74.4 点阵屏主要芯片简介84.4.1 双向总线发送/接收芯片74HC24584.4.2 译码器74HC13884.4.3 8位寄存器74HC59584.4.4 功率芯片APM495394.5 GT21L16S2W字库芯片94.6 北京博创科技GPRS扩展板简介105.软件设计115.1 利用字库字库芯片提取点阵代码的方法115.2 GPRS模块调试与软件设计125.2.1 GPRS模块调试125.2.1 GPRS模块与单片机通信软件设计135.3 LED点阵屏软件设计146总结与展望157.致谢158.参考文献17基于GPRS通信的LED显示屏物信
3、学院 电子信息科学与技术 指导教师 副教授【摘 要】 针对 C8051F410为控制器的点阵LED显示屏控制系统,采用 GPRSGSM通信标准,通过GPRS模块串行接口接收无线模块的控制命令及显示数据,经处理后控制LED显示屏的扫描显示。本文给出了该系统的设计方案,以及软硬件的详细设计过程。【关键词】C8051F410单片机;LED显示屏;GPRS;远程控制; 1.绪论1.1本文主要研究的内容 本LED点阵屏可显示字符、图案等信息,具有可靠性高、使用寿命长、环境适应能力强、性能价格比高等特点,因此在广告、信息显示领域得到了广泛的应用。这也带来了一些管理和维护这些显示信息的问题。能多点控制和便携
4、式可移动显示控制的控制主机能给LED信息管理带来极大的方便。本文讨论的技术就是一种克服了以下困难的显示控制方案。 1.1.1 信息管理的问题 LED显示屏的内容需要即时适时地更新。而LED显示屏跟管理者的距离比较远,或者显示屏安装在较高、或者更改比较频繁的特殊的位置,或者是在公共交通这种实时移动的显示设备上等。显示内容更新显然不能通过常规的连接电脑用下载设备下载信息到到显示屏。这时就需要一种可靠,无线式的更新方式。本文讨论的GPRS方式就是一种低成本的传送方式。显示屏更新或者显示方式(左移、右移、上移、下移)的控制参数的设置的过程只需要普通具有GPRS功能的手机通过发送短信的方式发出信息指令和
5、控制指令,显示终端就可以依照指令灵活地更改。这样不仅能降低管理成本,还能大大地提高 LED 显示系统的工作效率。 1.12 多点同时发布信息的问题 当LED显示屏需要在不同地点显示相同内容的时候,本文设计的这种无线信息传输方案可以完成多点同步数据更新的功能。这在传统的下载更新方式是不可能完成的。比如举行体育赛事时体育场里,四周有显示比分(广告信息)的若干个LED显示屏。这时在不仅省去布线的情况下,还可以实现低成本的数据同步更新。甚至在不同的城市,只要有GPRS网络覆盖,也可以同步实时的手机发出的相同的显示内容与控制参数。这样就大大拓展了LED显示系统的应用地域限制,也提高和系统的利用率。 所以
6、,对于上述存在的问题本文提出了一种基于GPRS通信的无线远程控制的LED显示屏的软硬件设计方案。利用手机更新点阵屏的数据与显示方式,亮度移动速度。 1.2 GPRS的特点GPRS(General Packet Radio Service)是通用分组无线业务的缩写,是介于第二代和第三代网络之间的一种技术,因为它是一个混合体,采用TDMA方式传输语音,采用分组的方式传输数据,通常称为25G。GPRS具有如下一些突出的优点,如资源利用率高、传输速率高、接入时间短支持IP协议和X25协议、无线接人、方便快捷、网络覆盖面广等1。数据中心和每一个显示屏保持实时连接。而GPRS技术能很好地满足数据传输的需要
7、。GPRS网络传送速率理论上可达171.2kbit/s,目前GPRS实际数据传输速率在40Kbps左右,完全能满足本显示屏数据传输速率的需求。2. 短信系统一些关键技术2.1 AT指令AT命令集是调制解调器通信接口的工业标准,是调制解调器可以识别并执行的命令。诺基亚、爱立信、摩托罗拉和惠普共同为GSM 研制了一整套AT指令集,形成了GSM07.05 以GSM07.07 技术规范,其中包括对SMS 的控制。PDU模式正是基于 AT 指令集的。表2.1调试时常用AT指令AT指令功能回答AT回车握手OKATE简化显示OKAT+CMGF 选择短消息信息格式,0-PDU;1-文本AT+CLCC来电显示O
8、K来电话时串口输出RINGAT+CNMI=1,1,2设置收到短消息提示OK +CMTI:“SM”,4 4表示手机内短消息数量ATD05133082087;拨打05133082087电话AT+CMGR=X回车 读取第X条短消息AT+CMGD=X回车删除第X条短消息AT+CMGL列出SIM卡中的短消息PDU/text:0/R EC UNREAD:未读;1/REC READ:已读;2/STO UNSENT:待发;3/STO SENT:已发;4/ALL:全部 AT+CSCA?短消息中心地址 AT+CMGL列出SIM卡中的短消息PDU/text:0/R EC UNREAD:未读;1/REC READ:已
9、读;2/STO UNSENT:待发;3/STO SENT:已发;4/ALL:全部的 2.2 短信通信的关键技术对短消息的控制共有3种实现途径: Block Mode、基于A T 命令的 Text Mode 和基于A T 命令的 PDU Mode。使用Block Mode 需要手机生产厂家提供驱动支持。Text Mode 比较简单,但这种模式只能发送 ASCII 码,不能发送中文的 Unicode码。PDU 模式是发送或接收手机 SMS 信息的一种方法,短信息正文经过十六进制编码后被传送。目前,PDU 已取代Block Mode,因此主要探讨PDU 模式2。在PDU模式中,有三种编码方式来对发送
10、的内容进行编码,它们是 7-bit、8-bit 和 UCS2 编码。7-bit编码用于发送普通的 ASCII 字符,它将一串7-bit 的字符(最高位为 0)编码成 8-bit 的数据。8-bit 编码通常用于发送数据消息,比如图片和铃声等3;而 UCS2 编码用于发送 Unicode 字符。Unicode 是一种所有的字符都使用两个字节编码的编码模式。 Unicode 带来的好处是突破 ASCII 码字符数的限制,支持全球多种语言字符集。所以采用 UCS2 编码后,每个汉字或英文字母占2个字节,TP-UD字段最大可以容纳 70个字符,这就是我们常说的每条短信最多容纳 70个汉字。所以在这三种
11、编码方式下,可以发送的短消息的最大字符数分别是 160、140和704。接收短信息的 PDU 编码包括以下内容:短信息中心(SMSC)号码、短信息首字节、发送者号码信息、协议标示符、数据编码方式、短信息时间戳、短信息长度和内容。其中 SMSC 号码和发送者号码是以十进制半八位字节编码,短信息内容是以十六进制七位字节或 Unicode 编码,其他信息是以十六进制八位字节编码。一条接收到的中文短信息的PDU解码5见表2.2。表2.2 SMS-DEL IV ER PDUPDU字符串:0891683108701705F0040D91683179684193F20008705050320583000C4
12、F60597DFF0C9 A6C61673002字节含义 八位字节 描述 Address of the SMSC 08 短消息中心号码长度 91 短消息中心号码类型(91表示国际号码格式) 683108701705F0 以十进制的半八位字节表示的短信息中心号码,由于号码长度是奇数11,所以在最后一位补上F形成正确的格式。这里的实际号码是:8613800771500 First Octet 04 短消息的首字节 TP OA 6D 以十六进制数表示的发送者号码的长度 91 发送者号码的地址类型(91表示国际号码格式) 683179684193F2 以十进制的半八位字节表示的发送者号码,由于号码长度
13、是奇数11,所以在最后一位补上F形成正确的格式。这里的实际号码是:8613978614392 TP PID 00 TP-PID协议标示符 TP DCS 08 TP-DCS数据编码方式,这里设置的是Unicode解码 TP SCTS 70505032058300 TP-SCTS以半八位字节表示的短消息时间戳。这里的时间是:2007-05-05 23:50:38 TP UDL OC TP-UDL短信息内容的长度,由于在TP、DCS中制定了UCS 2编码,所以这里的长度是八位字节数。如果是七位字节编码,这将是把七位字节编码的字符转换成八位字节编码的字节数。 TP UD 4F60597DFF0C9 A
14、6C61673002 TP-UD短信息内容,这里的实际内容是:你好,马慧。 例如接收:SMSC 号码是 + 8613800472500,对方号码是 13804722468 ,消息内容是“你好 !”。手机接收到的PDU串可以是:08 91 68 31 08 40 27 05 F0 84 0D 91 68 31 08 74 22 64 F8 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 216-73. 系统结构设计主控模块采用C8051F410作为处理核心,完成的是整个LED显示系统的协调和数据处理。它通过串口负责从GPRS通信模块读取待显示的汉字代码解
15、码,通过字库将其转换为字模,送入LED点阵单元板,从中担任数据通信及处理和定时送显示的任务。 LED点整屏块采用两块1632点阵单元板做字符显示屏。由于点阵屏本身自带功率放大行驱动等硬件,所以只需单片机定时扫描即可显示字符。 4.整体电路的各硬件电路的设计4.1 GPRS与单片机接口电路设计 图4.1.1 GPRS模块的串口电路 图4.1.2 单片机串口电路单片机与GPRS模块通过串口进行通信,GPRS模块上的使用的是MAX3232,而单片机上使用过的是MAX232,两者的差别主要是1.MAX232电压供电为5V,max3232是5v或3.3V电压供电。2. MAX232功耗较大,供电电压5V
16、时,耗电5mA;MAX3232功耗较小,供电电压5V或3.3V时,耗电 0.3mA。3. MAX232外接4个1uF电容;MAX3232外接4个0.1uF电容。4. MAX232一般民用产品应用;MAX3232一般军用。单片机与GPRS上的串口采用一公一母,对接即可通信。当要利用串口调试助手对GPRS进行调试时只要用一条串口线一段连接电脑一段连接GPRS模块的串口就能发送AT指令进行各种功能调试。4.2 单片机C8051F410外围电路的设计C8051F410单片机是美国Silcon Lab公司推出的高性能8位微处理器,FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现
17、场更新8051固件。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以节省功耗。C8051F410内部有一个串行端口UART0,UART0是一个异步、全双工串口,UART0有两个相关的特殊功能寄存器:串行控制寄存器(SCON0)和串行数据缓冲器(SBUF0)8。 C8051F410最小系统电路如图为C8051F410最小系统的周围电路。在此电路中,。电源从VREGIN引脚输入到REG0的电压可高达5.25V。REG0的输出可以用软件选择为2.1V或2.5V,从引脚6为内部稳压器转出电源,引脚1为I/O口电源这各个I/O提供工作电源,P1.2为外部VREF输入第二功能脚,在设计电路中
18、,这几处设置退耦电容,大大减小负载波动对电源的影响。电路中C2接口调试电路,引脚C2CK为C2调试接口的时钟信号,引脚C2D为C2调试接口的双向数据信号,引出C2CK和C2D以供芯片下载程序。TXD和RXD分别为UART的TX引脚和RX引脚。4.3 LED点阵屏单元板的设计原理分析 点阵单元板原理图 单元板的列控制主要是74HC595,每块单元板上有16片,每片分别控制4行8列的点阵小单元,接LED的负极。行驱动采用的是AMP4953,每块单元板有4片,每片分别驱动4行.行驱动的控制是由译码器74LS138完成,每次使单元板有4行亮,有4种状态。即完成了16行的控制,使能信号采用的是选通74H
19、C138工作,控制信号OE经过反相之后连接74HC138,此时是高电平有效,这样能有效的减少快速扫描时的干扰。单元板引脚接口说明: CLK时钟信号:提供给移位寄存器的移位脉冲,每一个脉冲将引起数据移入或移出一位。数据口上的数据必须与时钟信号协调才能正常传送数据,数据信号的频率必须是时钟信号的频率的1/2倍。在任何情况下,当时钟信号有异常时,会使整板显示杂乱无章。 STB锁存信号:将移位寄存器内的数据送到锁存器,并将其数据内容通过驱动电路点亮LED显示出来。但由于驱动电路受EN使能信号控 制,其点亮的前提必须是使能为开启状态。锁存信号也须要与时钟信号协调才能显示出完整的图象。在任何情况下,当锁存
20、信号有异常时,会使整板显示杂乱无章。 OE使能信号:连接74HC138整屏亮度控制信号,也用于显示屏消隐。只要调整它的占空比就可以控制亮度的变化。当使能信号出现异常时,整屏将会出现不亮、暗亮或拖尾等现象。 RI数据信号:提供显示图象所需要的数据。必须与时钟信号协调才能将数据传送到任何一个显示点。一般在显示屏中红绿蓝的数据信号分离开来,若某数据信号短路到正极或负极时,则对应的该颜色将会出现全亮或不亮,当数据信号被悬空时对应的颜色显示情况不定。 ABCD行信号:只有在动态扫描显示时才存在,ABCD其实是二进制数,A是最低位营,如果用二进制表示ABCD信号控制最大范围是16行(1111),1/4扫描
21、中只要AB信号就可以了,因为AB信号的表示范围是4行(11)。当行控制信号出现异常时,将会出现显示错位、高亮或图像重叠等现象94.4点阵屏用到的主要芯片功能介绍4.4.1 双向总线发送/接收芯片74HC245我们单片机出来的信号驱动能力有限。而点阵屏往往是往往是由多块串接在一起的,在信号传递过程中需要将它的功率进行放大。芯片引脚图第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。 第29脚“A”信号输入输出端,A1=B1、A8=B8,A1 74HC245引脚图 与B1是一组,如果DIR=“1”G=“0
22、”则A1输入B1输出,其它类同。如果DIR=“0”G=“0”则B1输入A1输出,其它类同。 第1118脚“B”信号输入输出端,功能与“A”端一样,不再描述。第19脚G,使能端,若该脚为“1”A/B端的信号将不导通, 245内部结构图只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。 第10脚GND,电源地。第20脚VCC,电源正极。4.4.2 译码器74HC138的作用:八位二进制译码器74HC138的作用是用来选择显示行,在16*32单元板中一个74HC138可以选择16行中的四行,所以单元板/模块上有1块74HC138,这样就可以在16行中选择4行显示。芯片引脚图 第8脚GND,电
23、源地。 第15脚VCC,电源正极 第13脚A、B、C,二进制输入脚。 第46脚片选信号控制,只有在4、5脚为“0”6脚为“1”时,才会被选通,输出受A、B、C信号控制。其它任何组合方式将不被选通,且Y0Y7输出全为“1”。通过控制选通脚来级联,使之扩展到十六位。 4.4.3 8位移位74HC595:LED驱动芯片,8位移位锁存器,用于驱动显示列,每片74HC595可以驱动8列,多片74HC595串接在一起,串行列数据信号RI(DATA)、锁存信号STB、串行时钟信号CLK都在这个芯片上 第8脚GND,电源地。 第16脚VCC,电源正极 第14脚DATA,串行数据输入口,显示数据由此进入,必须有
24、时钟信号的配合才能移入。 第13脚EN,使能口,当该引脚上为“1”时QAQH口全部为 74hc595引脚图“1”,为“0”时QAQH的输出由输入的数据控制。第12脚STB,锁存口,当输入的数据在传入寄存器后,只有供给一个锁存信号才能将移入的数据送QAQH口输出。 第11脚CLK,时钟口,每一个时钟信号将移入一位数据到寄存器。 第10脚SCLR,复位口,只要有复位信号,寄存器内移入的数据将清空,显示屏不用该脚,一般接VCC。 第9脚DOUT,串行数据输出端,将数据传到下一个。 第15、17脚,并行输出口也就是驱动输出口,驱动LED。 4.4.4 功率芯片4953的作用:行驱动管,功率管,每一显示
25、行需要的电流是比较大的,要使用行驱动管,每片4953可以驱动2个显示行。 其内部是两个CMOS管,1、3脚VCC,2、4脚控制脚,2脚控制7、8脚的输出,4脚控制5、6脚的输出,只有当2、4脚为“0”时,7、8、5、6才会输出,否则输出为高阻状态。 4593引脚图4.5 GT21L16S2W字库芯片 图4.5.1主机与SPI接口电路示意图 图4.5.2字库芯片芯片引脚 GT21L16S2W是一款内含多种点阵代码的汉字库芯片,支持GB2312国标简体汉字(含有国家信标委合法授权)、ASCII字符及GB2312与Unicode编码互转表。排列格式为横置横排。计算出该字符点阵在芯片中的地址,就可从该
26、地址连续读出字符点阵信息。 1. CS# 片选输入; 2. SO 串行数据输出; 4. GND 地; 5. SPI串行数据输入; 6 .SCLK 串行时钟输入 ;7. HOLD# 总线挂起 ; 8. VCC 电源(+ 3.3V);15X16 点汉字的信息需要 32 个字节(BYTE 0 BYTE 31 )来表示。该15X16 点汉字的点阵数据是 横置横排的,其具体排列结构如下图:3.5.3汉字点阵排列格式每个汉字在芯片中是以汉字点阵字模的形式存储的,每个点用一个二进制位表示,存 1 的点,当显示时可以在屏幕上显示亮点,存 0 的点,则在屏幕上不显示。点阵排列格式为横置横排:即一个字节的高位 表
27、示左面的点,低位表示右面的点,排满一行的点后再排下一行。这样把点阵信息用来直接在显示器上按上述规则显示,则将出现对应的汉字。4.6博创科技GPRS扩展板介绍本设计采用的模块是北京博创科技UP-TECH GPRS MODULE模块,GPRS 扩展板采用 SIMCOM 公司的SIM300 GPRS 模块,并配以相关电路而构成。SIM300具有较小的体积即插即用。模块中完善的三频GSM/GPRS解决方案,使用工业标准界面,性能更加稳定。并且提供了多种接口包括用于ARM开发时的直插式和9针串口模式。SIM300 GPRS 模块的默认波特率是 115200。AT 命令集大部分和 SIM100 模 块兼容
28、。SIM100-E 提供标准的 RS-232 串行接口,用户可以通过串行口使用 AT 命令完成对模块的操作。串行口支持以下通信速率:300,1200,2400,4800,9600,19200,38400,57600,115200(起始默认) 当模块上电启动并报出RDY 后,用户才可以和模块进行通信,用户可以首先使用模块默认 速率 115200 与模块通信,并可通过 AT+IPR=命令自由切换至其它通信速率。在应用 设计中,当MCU 需要通过串口与模块进行通讯时,可以只用三个引脚:TXD,RXD 和GND。本扩展板上采用 MAX3232 芯片完成GPRS 模块的TTL 电平到 RS232 电平的
29、转换10。 GPRS模块模式选择当GPRS模块要与单片机通信时需在板上“SIM300 MODULE UART SELECT”上选择“RS232 DB9 PORT UP3000/TO PC”模式,用0欧电阻焊接RJ7跟RJ8。同时焊接母口DB9串口跟MAX3232电平转换芯片,板上如果有焊接16C550(可编程串行接口芯片)需去掉。因为会使其输出的MODEM信号错误控制SIM300的UART接口而无法通过RS3232通信。5软件部分5.1利用字库字库芯片提取点阵的方法首先把片选信号(CS#)变为低,紧跟着的是1 个字节的命令字(03 h)和3 个字节的地址和通 过串行数据输入引脚(SI)移位输入
30、,每一位在串行时钟(SCLK)上升沿被锁存。 然后该地址的字节数据通过串行数据输出引脚(SO)移位输出,每一位在串行时钟(SCLK)下降沿被移出。读取字节数据后,则把片选信号(CS#)变为高,结束本次操作。 如果片选信号 (CS#)继续保持为底,则下一个地址的字节数据继续通过串行数据输出引脚(SO)移位输出11。 图5.1.1 SPI方式读取点阵时序图5.1.2 点阵数据一般读取时序图从UCS2编码通过软件读取点阵代码时,首先将16位UNICODE编码经过地址计算程序算出在点阵芯片的首地址(Unicode 到GB2312 内码转换表的地址范围为67D70 7278F,软件设计时如果没有在地址范
31、围则表示输入的UCS2编码出错)。在将得到的2字节地址位通过SPI接口读出2字节的GB2312编码。再将GB2312编码送入地址计算程序算出32位点阵信息的首地址(15X16 点阵地址范围000003B7BF,超出范围则判断出错)。再次通过SPI接口读出32位点阵信息。5.2 GPRS模块调试与软件设计5.2.1 GPRS模块调试首先把SIM卡插到模块的卡槽,在给GPRS上电(不能上电后在插卡,因为本扩展板是用阻容充电和施密特触发器整形获得上电后约1.5秒低电平延时用来启动SIMCOM300)。如果出现大约75ms 亮 / 3s 灭,则表明网络已注册成功。如果出现亮灭时间一样则主要原因是未插入
32、SIM卡,或则找不到网络(可能是天线、信号弱等问题)。 在与单片机通信之前可首先使用串口调试助手做如下调试,因为以下设置只要设置一次模块就会自动保存设置的信息不用每次都有单片机设置。设置波特率,初始时的波特率为11250,改为9600 发送 AT 返回 OK 发送 AT+APR=9600 返回 OK波特率设置完成设置本地的短信中心号码发送 AT 返回 OK发送 at+cmgf=1 返回 OK发送 at+csca=+8613800595500/本地短消息中心号码返回 OK短信中心号码设置完成。可实现收发短信功能。5.2.2 GPRS模块与单片机通信软件设计发送AT指令读取数据 ASCLL编码转十
33、进制 取核心数据存RAM十进制转十六进制第一字节与定密码相同否主程序是十六进制数据送FLASH存储 删除短信内容准备下次接收 UCS2解码主要流程图 单片机开机是就启动串口中断,当有收到短信或者电话彩信等是GPRS模块就会发送提示信息这是就会进入串口中断,单片机利用串口读取信息,读取数据完成之后标志位置1,进入数据处理,发送AT+CMGR=1r;读取第一条短信。在进行数据辨别,如果是电话大入则串口读取的数据为“RING”,而如果为短信时就会读取“+CMGL: 1 OK”。而收到彩信时没有消息头只是一连串的代码。所以根据这一特征就可设一判断来去除干扰。因为编码传输的格式都是相同的,所以判断如果是
34、短信时则读取相应的信息字节代码,而舍去无用的信息。因为接受到的是一位一位的ASCLL代码所以,还要对其进行代码进制转换。转换成十六进制的信息才能利用字库进行汉字编码转换跟点阵代码提取。完成之后将信息存储在FLASH存储器中。5.3 LED显示屏软件设计采用1/4扫描方式,当AB为00时1、5、9、13行驱动选通。当AB 为01时2、6、10、14行驱动选通。当AB为10时3、7、11行驱动选通。当AB为11时3、7、11行驱动选通。在软件设计时先将的数据通过74HC595送到对应的行数,在选通对应的行数,依次循环就可在整个显示屏上显示出完整的图文信息。本设计采用的16X32点阵单元板,根据硬件
35、电路74hc595的分布,可将单元板分为64个字节。每个字节分别对应8个LED灯。每个74HC595连接四个字节的点整即4X8点阵数据从图5.3.2中33字节对应的595从右往左送入数据。5.3.1LED单元板接口示意图 0 1 32 33 第1行 第一个74HC5952 3 34 35 4 5 36 37 6 7 38 39 8 9 40 41 第5行第二个74HC59510 11 42 43 12 13 44 45 14 15 46 47 .16 17 48 49 第9行第三个74HC59518 19 50 51 20 21 52 53 22 23 54 55 24 25 56 57 第1
36、3行第四个74HC59526 27 58 59 28 29 60 61 30 31 62 63 5.3.2点阵控制分布图根据分析编写了下面的程序:for(num=0;num4;num+) uchar i; OE=0; /关使能信号即关闭译码器74HC138 i=24; /数据从右往左送入所以最后一个595的数据要先送 send_8BYT(); / num=0时,将对应字节的点阵数据写入24 、25、16、17、 8、9 、0、1字节对应的595,num累加时字节数对应加一 i=56; send_8BYT(); / num=0时,将对应字节的点阵数据写入56 、57、48、49、40、41、32
37、、33 、字节对应的595芯片, num累加时字节数对应加一 k+; P2=num; /行选03,每次列显示送完后在选通行驱动 STB=1; /输出74HC595锁存器中的数据,下降沿 STB=0; OE=1; /开使能信号,启动译码器工作选通相应行驱动 Delay(); /控制OE高电平的时间即调整OE的占空比来调节显示屏的亮度 void send_8BYT() uchartemp; temp=i; /送奇数字节数据 for(a=0; a4; a+ ) /送出四个字节数据给74HC595 WriteByte(tablenum+i+k); i-=8; /减8为将数据写入前一个74HC595 i
38、=temp+1; /送偶数字节数据 for(a=0; a4; a+ ) /送出四个字节数据给74HC595 WriteByte(tablenum+i+k); i-=8; /减8为将数据写入前一个74HC595 软件中要注意的是OE信号控制时,须在数据送入时置低等数据送完之后再置高,才能使点阵屏的显示亮度均匀。因为如果一直将OE置高时在送数据给74hc595时亮度会有所变化。导致每个字节8个LED之间会亮度不均。或者OE直接接脉宽调制信号时,会使整屏点阵屏时暗时亮一直在闪动,因为用定时器定时刷屏时STB锁存信号与OE信号不同步就会时有的数据显示的时间比较长有的数据显示的比较短,这就使字节与字节之
39、间亮度产生不同了。要扩展板的数量时只要变量在上述函数中变量“i”累加就可以了,例如如有两块点阵单元板时“i”的值就要在56加两次32送入send_8BYT();就可以了。本程序可扩展性较高可根据板的数量简单的修改程序即可。在LED显示屏动态移位显示方式下,显示屏的显示内容每隔一定时间循环左移、右移、上移、下移一列或一行,动态移位显示的效果是由一幅幅不同内容的屏幕画面组成。在软件上只要改变显示缓冲区的内容即左移、右移、上移或者下移等一行(一列)之后延时一定的时间等待定时器定时时间到送屏显,即可实现动态移位显示的效果。但是显示缓冲区所有数据左移一列需要一定时间,不可能在两次定时中断间隔内实现这个过
40、程。试验发现,设置两个显示缓冲区,可以很好地解决这一问题,这两个显示缓冲区一个用于保存当前屏幕显示的数据,另一 个用于对当前数据左移右移、上移、下移一列或一行,达到左移时间间隔后,切换当前显示缓冲区到已经左移、右移、上移、下移一列或一行的缓冲区,然后对另一缓冲区综合性左移一列的操作在左移之前,把当前显示缓冲区的内容复制到要进行左移的缓冲区内,保证这两个缓冲区数据的一致性。就能实现显示屏的动态移位显示。5.4 总程序流程图 6 总结与展望本次毕业设计是针对指导老师提供的硬件模块博创科技GPRS扩展板。来实现短信收发的功能而进行软件的设计,此次设计基本上达到了预期的目的,实现了其基本的短信收发功能。但在设计中为了减小成本省去了GPRS模块向手机发短信的功能,另外由于此次设计实现的功能简单,还有许多功能可以进行在此基础上进行扩展。比如可以扩展传输的内容,把单一的文字数字字母向多媒体扩展,传输图像,声音