资源描述
南京炮兵学院
本科毕业论文(设计)
论文(设计)题目:LED显示屏
学 院:南京炮兵学院
专 业:计算机科学与技术_
班 级:计算机一班_
学 号:_____
学生姓名:_胡佳___
指引教师:_____
年 10月 26 日
南京炮兵学院毕业论文(设计)
诚信责任书
本人郑重声明:本人所呈交毕业论文(设计),是在导师指引下独立进行研究所完毕。毕业论文(设计)中凡引用她人已经刊登或未刊登成果、数据、观点等,均已明确注明出处。
特此声明。
论文(设计)作者签名: 胡佳
日 期: 11月26日
目录
中文摘要及核心词…………………………………………………...………V
Abstract & Keywords………………….………………………….………VI
第1章 前言……………………………………………………………….……1
1.1 LED电子显示屏概述………………………………………………1
1.2 LED电子显示屏分类……………………………………………1
1.3 LED显示屏应用示例……………………………………………2
1.4 设计任务…………………………………………………….………2
第2章 显示原理及控制方式分析…………………………………...………3
2.1 LED点阵模块构造…………………………………………………3
2.2 LED 动态显示原理 ……………………………………….………3
2.3 LED常用控制方式………………………………………………5
第3章 总体方案设计与分析………………………………………...………7
3.1 显示单元考虑…………………………………………….………7
3.2 滚屏实现……………………………………………………….…7
3.3 关于可扩展性………………………………………….……………7
3.4 微控制器考虑…………………………………….………………7
3.5 关于点阵数据存储方式……………….…………………………8
3.6 关于显示内容更新………………………….……………………8
3.7 总体电路构造及工作原理…………………………….……………9
3.7.1 硬件电路框图……………………………………….……………9
3.7.2 工作原理………………………………………….….…………10
第4章 硬件电路设计……………………………………………..…………12
4.1 显示单元电路设计………………………………………………….12
4.1.1 点阵LED模块选取………………….…..……………………13
4.1.2 列驱动电路设计……………………….……………...…………13
4.1.3 行驱动电路设计……………………….……….………..………15
4.1.4 行驱动电路元件参数计算……………….……….………………16
4.2 单片机控制系统电路设计………………….………………………17
4.2.1 单片机选型…………………………….. ……………………17
4.2.2 STC单片机在条屏运用中优越性……….………………………17
4.2.3 单片机系统电路设计…………………….………………………19
4.3 字库与单片机接口设计…………………….……………………20
4.3.1 字库芯片选型………………………………………...…………20
4.3.2 字库芯片用法………………………….…………………20
4.3.3 字库芯片电气特性………………………….…………………21
4.3.4 字库芯片与单片机接口设计……………...……………………23
4.3.5 字库芯片3.3V电源设计…………………………………………23
4.3.6 5V-3.3V电平转换电路设计……………..……………………24
4.4 与上位机通信电路设计………………….………………………25
4.4.1 通信合同选取…………………………………………………25
4.4.2 MAX232电平转换芯片特点……………………………………26
4.4.3 单片机与PC间通信接口电路设计………….……………………27
4.5 对于系统电源及通信电缆选取……….…………………………27
4.5.1 对于LED显示屏电源规定…………….………………………27
4.5.2 开关电源在条屏应用中优势……………...……………………28
第5章 单片机软件设计……………………………………..………………29
5.1 开发工具及语言…………………………………….………………29
5.2 单片机软件流程…………………………………….………………29
5.3 单片机软件中几种重要算法实现……………….………………30
5.3.1 显示缓存技术与映射关系 ……………………...………………30
5.3.2 LED点阵与显示缓冲区建立持续编址映射算法…………………30
5.3.3 实现动态显示算法…………………………….………………31
5.3.4 实现滚屏算法…………………………………………………31
5.4 下位机软件关于计算 ……………………….…………………32
5.4.1 UART异步串行口波特率计算……………………………………32
5.4.2 SPI同步串行口波特率计算 ……………………...………………33
5.4.3 中文内码与点阵地址换算………………………..……………33
5.5 片上E2PROM空间分派…………………………………………33
5.6 单片机与PC机间通信合同………………………..……………34
第6章 上位机软件设计……………………………………..………………35
6.1 上位机软件开发环境……………………………….………………35
6.2 上位机软件流程……………………………………….……………35
6.3 上位机软件界面设计………………………………….……………36
6.3.1 控件布局…………………………………………..……………36
6.3.2 MSCOMM控件属性……………………………....……………36
6.4 上位机软件核心算法实现…………………………….……………37
6.4.1 PC机串口操作………………………………..…………………37
6.4.2字符转为GB2312内码算法………………………...…….……38
6.5 上位机软件用法及运营环境…………………….……………39
6.5.1 控件功能及用法……………………………….……………39
6.5.2 运营环境………………………………………………..………40
第7章 PCB构造设计………………………………………………..………41
7.1 PCB设计平台………………………………………..……………41
7.2 元件布局及PCB整体构造工艺…………………………….……41
7.3 布线工艺与准则…………………………………………...………41
7.4 PCB实物照片……………………………………..………………43
第8章 使用阐明与测试成果……………………………….………………44
8.1 LED中文显示屏使用阐明………………………..………………44
8.1.1 使用环境……………………………………..…………………44
8.1.2 安装上位机软件…………………………………………………44
8.1.3 更改显示内容……………………………...……………………44
8.1.4 更换显示模式…………………………...………………………45
8.2 测试成果………………………………….…………………………45
8.2.1 软件测试……………………………..…………………………45
8.2.2 实际刷新率测试…………………………………………………46
8.2.3 实际移动速度测试…………………….…………………………46
8.2.4 电气指标测试……………………………………………………47
8.3 设计任务完毕状况……………………….…………………………48
第9章 总结………………………………………...…………………………49
参照文献…………………………………………...…………………………50
道谢……………………………………………………………………………50
附录……………………………………………………………………………51
附图1 并行驱动方式电路图……………..………………………………51
附图2 本设计完整电路图(串行传播方式)……..……………………52
附图3 PCB元件布局…………………………...………………………53
附图4 PCB顶层布线…………………………...………………………54
附图5 PCB底层布线………………………...…………………………55
附图6 元件清单………………………………..…………………………56
附图7 本设计作品照片………………………..…………………………57
附图8 本设计显示效果照片………………..……………………………58
清单1 单片机程序清单……………………..……………………………59
清单2上位机软件VB程序清单 ………...……。………………………79
点阵式LED中文广告屏设计与制作
摘要
本设计使用STC12C系列高速单片机作为主控制模块,运用简朴外围电路来驱动96×16点阵LED显示屏。运用STC12C系列高速单片机自身强大功能和内部E2PROM,可以很以便实现单片机与PC机间数据传播及存储,并能运用软件以便进行显示内容多样变化,另一方面点阵显示屏广泛应用于医院、机场、银行等公共场合,因此本设计具备很强现实应用性。
本LED显示屏可以以动态扫描方式同步显示六个16×16点阵中文,并能通过上位机软件修改显示内容和显示效果等等。采用IAP在应用可编程技术,把字符内码存储在空闲单片机程序存储器空间,使本LED显示系统能掉电存储1024个字符。设计中采用了SPI接口GB2312原则字库,支持所有国标字符和ASCII原则字符显示。由于采用串行传播方式,使本系统可扩展性得到提高,便于各种显示单元级联。
本文从LED显示原理入手,详细阐述了LED动态显示过程,以及硬件电路设计、计算和软件算法。
核心词 动态显示 Ddynamic Display
单 片 机 MCU
串行传播 Serial Data Transfer
点阵字库 Llattice Llibrary
The Design and Making of
Chinese Characters Lattice LED Display
Abstract
This design uses STC12C series MCU as a main controller,and depends on a simple external circuit to drive 96×16 the lattice LED display. By using its own powerful functions and capacity of internal E2PROM,it is easy to accomplish the MCU and PC and E2PROM for internal storage,data transmission equipment ,and it also can be used conveniently to show a variety of content changes. The other dot matrix display is widely used in hospitals,airports,banks and other public places. Therefore,the design has a strong practical application.
The LED Display dynamic scan can show the way at the same time six 16 × 16 dot matrix Chinese characters,and PC software can modify the content and effect shows,and so on. IAP used in the application of programmable technology,the characters within the code stored in the SCM free program memory space,so that the LED display system can store 1,024 brown-out characters. SPI used in the design of the interface standard GB2312 character,to support all the GB2312 standard ASCII characters and characters of the show. Because serial transmission used,so that the system can be enhanced scalability,for a number of display units of the cascade.
This article from the start LED display principle,elaborated on the LED display dynamic process,as well as hardware circuit design,computing and software algorithms.
Keywords Ddynamic Display 动态显示
MCU 单 片 机
Serial Data Transfer 串行传播
Llattice Llibrary 点阵字库
第1章 前言
1.1 LED电子显示屏概述
LED电子显示屏(Light Emitting Diode Panel)是由几百--几十万个半导体发光二极管构成像素点,按矩阵均匀排列构成。运用不同半导体材料可以制造不同色彩LED像素点。当前应用最广是红色、绿色、黄色。而蓝色和纯绿色LED开发已经达到了实用阶段。 LED显示屏是一种通过控制半导体发光二极管亮度方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息显示屏幕。
LED显示屏分为图文显示屏和条幅显示屏,均由LED矩阵块构成。图文显示屏可与计算机同步显示中文、英文文本和图形;而条幅显示屏则合用于小容量字符信息显示。LED显示屏由于其像素单元是积极发光,具备亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等长处。因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业公司管理和其他公共场合。
LED显示屏发展前景极为辽阔,当前正朝着更高亮度、更高气候耐受性、更高发光密度、更高发光均匀性,可靠性、全色化方向发展。
1.2 LED电子显示屏分类
按颜色分类
单基色显示屏:单一颜色(红色或绿色)。
双基色显示屏:红和绿双基色,256级灰度、可以显示65536种颜色。
全彩色显示屏:红、绿、蓝三基色,256级灰度全彩色显示屏可以显示一千六百多万种颜色。
按显示屏件分类
LED数码显示屏:显示屏件为7段码数码管,适于制作时钟屏、利率屏等,显示数字电子显示屏。
LED点阵图文显示屏:显示屏件是由许多均匀排列发光二极管构成点阵显示模块,适于播放文字、图像信息。
按使用场合分类
室内显示屏:发光点较小,普通Φ3mm--Φ8mm,显示面积普通零点几至十几平方米。
室外显示屏:面积普通几十平方米至几百平方米,亮度高,可在阳光下工作,具备防风、防雨、防水功能。
按发光点直径分类
室内屏:Φ3mm、Φ3.75mm、Φ5mm、
室外屏:Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm
室外屏发光基本单元为发光筒,发光筒原理是将一组红、绿、蓝发光二极管封在一种塑料筒内共同发光增强亮度。
1.3 LED显示屏应用示例
LED点阵单色图文动态条幅屏(下文中简称条屏),由于成本低廉、可靠性高、显示效果优良,因此成为点阵式LED中文广告屏中主流产品。
1.4 设计任务
本设计任务就是完毕一种可以随意扩展显示单元数目单色动态条幅屏。
任务规定:
(1) 能同步显示六个简体中文
(2) 能实现中文在屏幕上移动
第2章 显示原理及控制方式分析
2.1 LED点阵模块构造
八十年代以来浮现了组合型LED点阵显示屏模块,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。这种一体化封装点阵LED模块,具备高亮度、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。LED点阵规模常用有4×4、4×8、5×7、5×8、8×8、16×16等等。
依照像素颜色数目可分为单色、双基色、三基色等。像素颜色不同,所显示文字、图象等内容颜色也不同。单色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管点亮时间,则可实现256或更高档灰度显示,即可实现真彩色显示。
图2.1示出最常用8×8单色LED点阵显示屏内部电路构造和外型规格,其他型号点阵构造与引脚可实验获得。
图2.1 8×8单色LED模块内部电路
LED点阵显示屏单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5x7点阵显示屏用于显示西文字母.5×8点阵显示屏用于显示中西文,8x8点阵可以用于显示简朴中文文字,也可用于简朴图形显示。用多块点阵显示屏组合则可构成大屏幕显示屏,但此类实用装置常通过PC机或单片机控制驱动。
2.2 LED 动态显示原理
LED点阵显示系统中各模块显示方式: 有静态和动态显示两种。静态显示原理简朴、控制以便,但硬件接线复杂,在实际应用中普通采用动态显示方式,动态显示采用扫描方式工作,由峰值较大窄脉冲电压驱动,从上到下逐次不断地对显示屏各行进行选通,同步又向各列送出表达图形或文字信息列数据信号,重复循环以上操作,就可显示各种图形或文字信息。
点阵式LED中文广告屏绝大某些是采用动态扫描显示方式,这种显示方式巧妙地运用了人眼视觉暂留特性。将持续几帧画面高速循环显示,只要帧速率高于24帧/秒,人眼看起来就是一种完整,相对静止画面。最典型例子就是电影放映机。在电子领域中,由于这种动态扫描显示方式极大缩减了发光单元信号线数量,因而在LED显示技术中被广泛使用。
以8×8点阵模块为例,阐明一下其用法及控制过程。图2.1中,红色水平线Y0、Y1……Y7叫做行线,接内部发光二极管阳极,每一行8个LED阳极都接在本行行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1……X7叫做列线,接内部每列8个LED阴极,相邻两列线间绝缘。
在这种形式LED点阵模块中,若在某行线上施加高电平(用“1”表达),在某列线上施加低电平(用“0”表达)。则行线和列线交叉点处LED就会有电流流过而发光。例如,Y7为1,X0为0,则右下角LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。
现描述一下用动态扫描显示方式,显示字符“B”过程。其过程如图2.2
图2.2 用动态扫描显示字符“B”过程
假设X,Y为两个8位宽字节型数据,X每位相应LED模块8根列线X7-X0,同样Y每位相应LED模块8根行线Y7-Y0。在这个示例中,Y叫行扫描线,行扫描线在每个时刻只有一根线为“1”即有效行选通电平,X叫列数据线,其内容就是点阵化字模数据体现。下面用伪代码描述动态显示过程。
(1).Y=0x01,X=0xFF,如图 2.2第一帧;
(2).Y=0x02,X=0x87,如图 2.2第二帧;
(3).Y=0x04,X=0xBB,如图 2.2第三帧;
(4).Y=0x08,X=0xBB,如图 2.2第四帧;
(5).Y=0x10,X=0x87,如图 2.2第五帧;
(6).Y=0x20,X=0xBB,如图 2.2第六帧;
(7).Y=0x40,X=0xBB,如图 2.2第七帧;
(8).Y=0x80,X=0x87,如图 2.2第八帧;
(9).跳到第(1)步循环。
如果高速地进行(1)到(9)循环,且两个环节间间隔时间不大于1/24秒,由于视觉暂留。LED显示屏上将呈现出一种完整“B”字符。这就是动态扫描原理。只但是实际运用时候,列线和行线普通不止8位,还要依照列线和行线数量来决定是用行线或列线来做扫描线。例如0601条屏(每行6个中文,共1行),行线有16根,列线有96根。如果用列线来做扫描线,则每列LED在每96次循环扫描中只也许亮一次,则其发光视觉平均亮度为直流亮度1/96。如果用行线来做扫描线,则每16次循环,每行LED就能亮一次,其发光视觉平均亮度为直流状况下1/16。可见,用行线做扫描线,由于其发光周期占空比较大,其视觉亮度是用列线做扫描线6倍。因而发光效率比前者高。
在实际运用时候,还要在每两帧之间加上适当延时,以使人眼能清晰看见发光。在帧切换时候还要加入余辉消除解决。例如先将扫描线所有设立为无效电平,送下一行列数据后再选通扫描线,避免浮现尾影。
2.3 LED常用控制方式
当前常用是并行传播方式(见附录1.1),通过8位锁存器将8位总线上列数据进行锁存显示,各8位锁存器片选信号由译码器提供。此种方式长处是传播速度快,对微控制器(MCU)通信速度规定较低。但是这种方案最大缺陷是不便于随意扩展显示单元数目。每增长一种16×16点阵全角中文显示单元,就需要在之前电路上多增长两根地址线,这就规定在PCB布线时候要留有充分地址线冗余量。再一种缺陷是,每个单元PCB随着安放位置不同,布线构造也不相似,不利于厂家批量生产。并行传播需要芯片较多,因而市场上已经浮现用FPGA,CPLD等高密度可编程逻辑器件(PLD)来取代老式锁存器IC方案。成本有所下降,但可扩展性仍旧较差。因而,并行传播方式合用于显示单元数目拟定条屏。
随着广告屏显示内容多媒体化,对控制器传播速度,运算能力规定越来越高。因而控制器种类也在不断发展以适应规定,从最初8051单片机,到PIC单片机,又到FPGA,直到当前ARM解决器。不同功能档次广告屏相应着不同解决器。
一.以老式8051单片机为控制器LED显示屏。因受到单片机运算速度及通信速率限制,LED动态显示刷新率不也许做得太高。对显示效果和移动算法解决也比较吃力,在实际显示效果上有比较明显闪烁感。除此之外,老式8051单片机内部资源贫乏,仅128字节数据存储器,几K字节程序存储器,无E2PROM,SPI。这就需要对单片机扩展外设,无疑增长了硬件成本。因而,8051控制条屏只能用于显示内容及其简朴,不需要经常更改显示内容场合。
二.以PIC单片机为控制器LED显示屏。因PIC单片机是RISC架构工业专用单片机,解决指令速度有所增长,抗干扰能力先进,型号种类繁多。作为条屏控制器,可以明显改进显示效果,同步PIC单片机内部资源较丰富,可节约外部电路设计难度,同步减少了硬件成本。因而,以PIC单片机为控制器条屏当前仍是单色条屏市场主流。
三.以FPGA(复杂可编程逻辑门阵列)为控制器LED显示屏。FPGA以高速、并行著称。是近年来新兴可编程逻辑器件。用她作为LED显示屏控制器,可以高速解决色阶PWM信号、高速完毕动态扫描逻辑、高速完毕字符移动算法。因而被运用于双基色、三基色显示系统。但是其成本较高,开发难度较大。
四.以ARM(32位RISC架构高性能微解决器)为控制器LED显示屏。ARM有着极高指令效率,极高时钟频率。因而其运算能力非常强大,内部资源也十分丰富,极大简化了硬件设计难度,缩短了开发周期。在条屏运用中,能用ARM来实现花样繁多显示方式,以及高色阶,多像素全彩屏驱动。ARM与FPGA组合更是功能强大,除了海量存储技术,无线更新技术外,还能实时地显示视频信号。因而,以ARM为控制器显示屏常为视频全彩屏。
第3章 总体方案设计与分析
3.1 显示单元考虑
显示一种简体中文,至少需要16×16点阵来描述。为了在较远距离处获得清晰视觉效果,本设计采用4个8×8点阵,像素直径5mmLED模块拼接成16×16点阵LED阵列。这样每个16×16中文可以获得12×12cm显示尺寸,因而在50米处仍能清晰阅读。本设计规定整个屏幕能同步显示六个中文,则至少需要用24个8×8LED模块拼接成96×16矩阵。
3. 2 滚屏实现
字符位置在屏幕上实现移动,即术语“滚屏”。可以用硬件实现,但无疑增长了额外硬件成本及设计难度。因而本设计采用软件算法实现左滚屏、左暂停、定格显示等常用滚屏方式。用软件来完毕滚屏算法,其最大长处在于成本低廉,并且可维护性、可升级性大大增强。
3. 3 关于可扩展性
除了基本规定外,本设计还要实现显示单元数目随意扩展。在老式并行传播方式中,因受到列数据锁存器地址线数目制约,不能随意增添显示单元,且每个显示单元电路构造不同,PCB构造也不同,完全不符合模块化设计规定。因而摒弃了老式并行传播方式,而采用独特串行锁存技术,通过控制五根总线就能实现各显示单元之间列数据锁存。不但板间连接简朴,更是减少了PCB布局及布线难度。每个显示单元PCB都是完全同样,便于量产。
3.4 微控制器考虑
因本设计采用软件来实现滚屏,且传播方式为串行方式。因此对微控制器单元解决速度规定较高,可供选取有ARM7和高速8位单片机。ARM解决速度极快,但对于条屏应用,ARM内部资源挥霍严重,且成本较高。因而选取高速8位单片机作为控制器,常用高速8位单片机有AVR系列单片机,C8051F系列单片机,STC12C系列单片机。这几种单片机解决速度均能达到1MIPS/MHz(在时钟频率为1MHz时解决能力为每秒100万条指令),但AVR系列单片机极限时钟频率只能到16MHz,而C8051F系列SOC类似于ARM7,时钟速度可到100MHz,但会挥霍其内部丰富资源,并且价格昂贵,用在单色条屏控制中颇感挥霍。于是最佳选取为STC12C系列单片机,其最高时钟能到48MHz,且有较丰富接口及存储器资源,价格极其低廉,零售价仅为9元/片。大幅减少了产品成本。
3.5 关于点阵数据存储方式
当前使用最广泛技术是,通过上位机软件将待显示字符串转换为相应点阵字模数据,通过烧写方式将这些字模数据按一定顺序编址后存储在E2PROM中。在条屏显示过程中按规定方式取出E2PROM中字模数据进行解决。对于一种16×16点阵中文字模数据,需要持续32字节E2PROM空间来存储。照此计算,若有256个需要显示字符,则至少需要32B×256=8192字节(8KB)E2PROM存储空间。普通单片机内部没有集成这样大容量E2PROM。因而这种方案,需要在单片机外部扩展大容量E2PROM,增长硬件成本。上位机程序设计由于涉及到中文取模,取模算法难度较大。在多字下载时候传播时间也较长。诸多弊端使本设计放弃了老式方案。而本设计创新使用了专用点阵字库芯片,成本仅为8元,内含各种点阵规格GB2312、ASCII等原则字库。专用字库芯片采用微型SO-8封装,使用高速同步串行SPI接口进行读写操作,节约了控制器I/O。在本设计中,单片机内部小容量E2PROM,用于存储待显示中文GB2312原则机内码,每个全角字符内码占2字节,则在同样需要显示256个中文状况下,这种方案仅占用512字节E2PROM空间。
3.6 关于显示内容更新
当前惯用下载方式有串口下载、USB下载、无线下载等。考虑到本设计上、下位机进行一次通信时数据量不大(2KB以内),并且对通信速度及可靠性规定并不严格。因而本设计采用PC机串口来作为下载接口,PC机串口为RS-232C原则,其特点是共模传播,因而通信电缆可以是成本低廉普通双绞线,同轴屏蔽线等。PC机串口驱动程序编写较为简朴,不需要掌握复杂通信合同。
中文点阵数据采用现成字库芯片,需要通过中文机内码作地址来取出相应中文点阵字模数据。因而上位机软件任务就是:将待显示字符转换成相应原则机内码,并把操作者对下位机显示方式、速度等进行设立常数,通过RS232总线按一定通信合同一起发送到下位机。
3.7 总体电路构造及工作原理
3.7.1 硬件电路框图
通过前面对各种方案比较与分析,初步构建硬件系统框图如图3.1
图3.1 LED显示屏硬件框图
在图3.1中,X0、X1—Xn为显示单元。每个显示单元由一种16×16点阵LED模块和一种16位宽移位锁存器(串行—并行转换器)构成。所有显示单元16根行线均连接到公共行扫描驱动电路。而每个显示单元列数据则由16位移位锁存器并行输出口提供。
中央微解决器MCU负责与所有外围设备协调通信,以及各种算法解决。MCU用通用I/O口来驱动行扫描驱动电路。用通用I/O口模仿同步串行接口以实现和列数据锁存器(移位锁存器)之间单向通信。
MCU通过内部集成SPI接口和字库芯片进行双向通信。PC机(上位机)RS-232C电平通过转换后,通过UART接口与MCU进行双向通信。
电源则为各个模块提供稳定电压以及足够电流。
3.7.2 工作原理
单片机上电后就检测单片机P3.2脚(DownLoad)电平,如果按住LED显示屏上“DownLoad”键开机,则单片机P3.2脚被强制拉为低电平,显示屏被引导进入下载模式。这时单片机把UART异步串行口初始化为“方式一”工作,波特率为115200bps。之后不断检测从UART传入数据,如果持续接受到两字节数据与程序中商定两字节数据帧同步码(0xA0,0xFA)相似。则鉴定下载命令合法,真正进入下载流程。设立两字节同步码是为了减少误码干扰概率。
进入下载流程后,擦除持续从0x2600地址开始5个E2PROM扇区,每个扇区512字节。然后持续接受上位机发出7字节设立数据,并从E2PROM第一种扇区首地址0x2600开始依次存储。这样,第一种扇区就保存了上位机对下位机所有设立数据,涉及刷新率,移动速度,显示模式以及总共需要显示字符数等等。
保存好以上7字节设立数据后,紧接着持续地接受上位机发出不不不大于2048个内码数据,并依次保存在第二个E2PROM扇区中。由于第二到第五扇区是持续编址,因此第二扇区存满后会自动存储在第三扇区,以次类推。中文内码数据量由上位机拟定。当单片机接受到下载结束符0x8F时,执行软件复位,逼迫程序在AP区从头运营。这时若依然按住“DownLoad”键,则再一次进入下载模式。
如果开机时候不按下“DownLoad”键,则单片机程序被引导进入显示模式。进入显示模式后,一方面把单片机SPI接口初始化为“空闲低电平/上升沿驱动”模式,为读写字库芯片作准备。
在单片机内部扩展数据存储器(xdata区)中开辟192字节(1536位)动态显示缓冲区Display_Buffer和32字节字模数据缓存区Temp_Buffer,两个缓存区编址持续。Display_Buffer中一位与LED一种点阵一一相应。(详细相应关系见章节5.3.1——显示缓存技术与映射关系)通过这样映射解决,使字符在显示中移动算法变得简朴灵活,无论进行何种显示效果解决,只需要对Display_Buffer进行操作。
遵循构造化程序设计思路。把单片机在显示模式所有工作量分为如下三个任务:
一.扫描显示任务:扫描显示任务负责把Display_Buffer中数据依次发送到列驱动器74HC595,并按严格时序高电平选通十六根行扫描线(Y0—Y15),使每一列数据相应着一种行线状态。
二.移动解决任务:移动解决任务负责完毕显示字符逐点阵向左移动算法解决,这是最基本显示效果。其他大某些显示效果如左移六字暂停,全屏定格显示等都是以逐位左移为基本。对显示字符移动,实质上是对显示缓冲区Display_Buffer内数据移动。
该算法是将Display_Buffer和Temp_Buffer中数据首尾相接地左移一位,并不断把Temp_Buffer移入Display_Buffe。
三.字符更新任务:在单片机xdata区开辟了32字节字模数据缓存区Temp_Buffer。该缓存区与Display_Buffer编址持续。当调用字符更新任务时,程序从E2PROM内码区指定位置读取相邻两字节中文内码数据。并通过一定算法,把内码数据变换为该内码相应中文字模数据在字库芯片中地址。单片机通过SPI接口,向字库芯片发送读命令和地址,字库芯片返回持续32字节全角中文字模数据或16字节ASCII半角字模数据。这些字模数据就存储在32字节字模数据缓存区中。字模数据缓存区Temp_Buffer中数据可通过调用移动解决任务而逐位转移至动态显示缓冲区Display_Buffer中。
三个任务彼此独立,又互相联系。下面用实际C51程序来阐明一下如何实现简朴左移显示效果。
void Dis_Mode_1(void)//左移显示效果
{
unsigned char i,j,k;
unsigned int n;
unsigned int strings;
while(1)//所有显示效果都是无限循环
{
for(n=0;n< CNT;n+=2)// CNT是字符总数,每字符内码2字节,因此以2步进
{
strings =EEPROM_read (ADDR_GB2312+n); //从EEPROM中读取内码高字节
strings<<=8; //左移8位以合成16位数据
strings +=EEPROM_read (ADDR_GB2312+n+1);//从EEPROM中读取内码低字节
k=Load_Next_Charctor(strings);//调用更新字符任务,半角返回8全角返回16
for(i=0;i<k;i++)//按照字符类型拟定多少次移动可把Temp_Buffer所有移入Display_Buffe
{
for(j=0;j<Move_L_Speed;j++) // Move_L_Speed决定移动速度
LED_Scan(Refesh_Speed,Back_Ground);//调用扫描任务
Shift_Left_One_bit(); //调用移动解决任务
}
展开阅读全文