LED点阵汉字显示屏doc.docx
- 文档编号:9948150
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:10
- 大小:25.98KB
LED点阵汉字显示屏doc.docx
《LED点阵汉字显示屏doc.docx》由会员分享,可在线阅读,更多相关《LED点阵汉字显示屏doc.docx(10页珍藏版)》请在冰豆网上搜索。
LED点阵汉字显示屏doc
LED点阵汉字显示屏
LED点阵汉字显示屏设计文档苏州大学飞思卡尔DSPMCU研发中心2006年1月25日-2006年4月10日
1LED点阵汉字显示屏》开发备忘录时间内容完成情况2006年4月8日完成PC方高端程序的
候,接收线和地线接错,以后要细心2006年3月18日编写小灯闪烁程序,并且完成最小系统的调试一定要保证软件正确,然后再去测硬件2006年3月15日完成单片机方软件的编写(JL8)要注意JL8的编译器要加中断向量缓冲区2006年3月10日做第一个测试模块,按行扫描各个LED,看是否有损坏
√2006年3月9日整理资料√2006年1月25日讨论《LED点阵显示屏》的设计方案√
第1章概述LED点阵显示屏是通过PC机将要显示的汉字字模提取出来,并发送给单片机、然后显示在点阵屏上,主要适用于室内外汉字显示.LED点阵显示屏按照显示的内容可以分为图文显示屏,图像显示屏和视频显示屏.与图像显示屏相比、图文显示屏的特点就在于无论是单色还是彩色显示屏都没有颜色上的灰度差别、因此图文显示屏也就体现不出色彩的丰富性,而视频显示屏不仅能够显示运动,清晰和全彩色的图像,还能够播放电视和计算机信号.虽然这三者有一些区别、但它们最基础的显示控制原理都是相似的.
第2章硬件设计
2.1主要器件介绍LED点阵条屏是由12个88的LED点阵块组成,形成1648矩形点阵,以摩托罗拉的08系列单片机M68HC908JL8为控制核心.显示屏的其他主要硬件有:
①带锁存输出的8位移位寄存器74HC595,作为LED的列线驱动输入;②四六译码器74LS154,作为LED行线的译码选择;③三极管TIP127,连接四六译码器的十六个输出端,作为开关使用,驱动LED的行线④芯片MAX232起到与PC机进行通讯的作用具体的连接方式见附图.
2.2主要器件详细连接说明:
①MOTOLOLA的JL8芯片相关器件连接的接脚如下:
PA0-PA3连接4-16译码器的输入口A,B,C,D;PB0-PB3连接74HC595的输入口SI,SCK,RCK;PD6-PD7作串口通信使用连接RxD,TxD
②四六译码器74LS154的16个输出端连接16个TIP127的三极管的基极B,发射极E连接5V电源,集电极C连接到三个汉字点阵的16个行线控制端.
③点阵的48列数据线驱动由6片74HC595级联组成,前一片74HC595的QH引脚连接下一片的SI引脚,各片的引脚分别并联.
2.3LED点阵块88的LED点阵为单色行共阳模块,单点的工作电压为正向(Vf)=1.8v,正向电流(IF)
=8-10mA.静态点亮器件时(64点全亮)总电流为640mA,总电压为1.8v,总功率为1.15W.动态时取决于扫描频率(18或116秒),单点瞬间电流可达80-160mA.
1616点阵静态时161610mA,动态时单点电流80-160mA.
接线方式:
当某一行线打高时,某一列线为低时,其行列交叉的点就被点亮;某一列线为高时,其行列交叉的点为暗;当某一行线打低时,无论列线如何,对应这一行的点全部暗.上下
1控制第五行显示接高9控制第一行显示接高
2控制第七行显示接高10控制第四列显示接低
3控制第二列显示接低11控制第六列显示接低
4控制第三列显示接低12控制第四行显示接高
5控制第八行显示接高13控制第一列显示接低
6控制第五列显示接低14控制第二行显示接高
7控制第六行显示接高15控制第七列显示接低
8控制第三行显示接高16控制第八列显示接低IRQ1【1脚】
PTA0【2脚】,PTA1【6脚】,PTA2【8脚】,PTA3【9脚】接四六译码器的A,B,C,D四个输入脚(两片3-8译码器的A,B,C和第一片的E1与第二片的E3),用来选择LED的行线PTA4【23脚】PTA5【27脚】
PTA6【5脚】:
已经接晶振,不可用.与OSC1共同接晶振,并与晶振并联相接一10M电阻,电阻两端分别接20pF电容到地.
PTB0【21脚】:
接74HC595的SI脚.
PTB1【20脚】:
接74HC595的SCK脚.
PTB2【18脚】:
接74HC595的RCK脚.PTB3【17脚】PTB4【15脚】PTB5【12脚】PTB6【11脚】PTB7【10脚】
PTD6,PTD7串行口发送和接受脚.PTD0【16脚】
PTD1【19脚】PTD2【24脚】PTD3【22脚】PTD4【26脚】PTD5【25脚】
PTD6【14脚】:
(O)串行口发送脚TXD,接MAX232的11脚.
PTD7【13脚】:
(I)串行口接收脚RXD,接MAX232的12脚.
(5)其他
OSC1【4脚】:
同5脚.
Vss【3脚】:
电源地.
5
Vdd【7脚】:
同Vcc.
RST【28脚】:
复位脚.过10K电阻接VCC,过0.1uF的电容C2接地;复位按钮与51欧姆电阻串连并将它们并联接到电容C2两端.
2.5移位寄存器74HC59574HC595是带锁存输出的8位移位寄存器,其管脚见下图,其中SI是串行数据的输入端;
VCC,GND分别为电源和地;RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟,SCLR是移位寄存器的输入清除,QH是串入数据的输出、G是对输入数据的输出使能控制,QA~QH串入数据的并行输出.从SI口输入的数据在移位寄存器的SCK脚上升沿的作用下输入到74HC595中、在RCK脚的上升沿作用下将输入的数据锁存在74HC595中、当G为低电平时时,数据并行输出.SCLR为移位寄存器的输入清除端.
74HC595与JL8的连接:
SI【14脚】,SCK【11脚】,RCK【12脚】分别接到JL8的B0【21脚】,B1【20脚】和B2【18脚】上.
其他脚连接:
G【13脚】接地,使其始终输出;SCLR【10脚】接5V,使输入数据永不清除;QH【9脚】是连接下一片74HC595的SI脚;QA,QB到QH分别连接到LED点阵的1至8列的列线脚上,是第一列【13脚】,第二列【3脚】,
第三列【4脚】,第四列【10脚】,第五列【6脚】,第六列【11脚】,第七列【15脚】,第八列【16脚】.
2.6四六译码器74LS154
64-16线译码器,其管脚如图所示、A,B,C,D为译码的输入端,值的区间从0000到1111,Y1~Y15是对应A,B,C,D四个输入引脚的输出脚,其中选中的线用输出低电平,没有选中的输出高电平,1G,2G是使能端,只有输入相应D低电平才能使译码器正常工作.
74LS154与JL8的连接:
A【23脚】,B【22脚】,C【21脚】,D【20脚】分别接到JL8的A0【2脚】,A1【6脚】,A2【8脚】和A3【9脚】上.
其他脚连接:
G1【18脚】,G2【19脚】接地,使芯片工作;Y1【1脚】~Y15【17脚】连接到电阻上;其中GND【12脚】,VCC【24脚】.
2.7三极管TIP127三极管TIP127的基极B连接到译码器的输出端的电阻上,发射极E接5V,集电极C接到LED的分别连接到LED点阵的行线脚上.各个三极管分别连接到LED的第一行【9脚】,第二行【14脚】,第三行【8脚】,第四行【12脚】,第五行【1脚】,第六行【7脚】,第七行【2脚】,
第八行【3脚】.电气特性如下图:
第4章软件设计
4.1单片机方的程序设计单片机在LED点阵汉字显示系统中主要负责数据的接收,存储和扫描显示LED点阵屏三大主要功能.
4.1.1主程序设计刚开机时主程序主要完成整个硬件系统的初始化,包括对CONFIG的初始化,堆栈初始化,IO口的定义和初始化,串行口的定义和设置,擦写程序的初始化设置和默认显示时各个参数的设置.主程序从上电一开始显示的是原来设置好的汉字,然后根据接收的数据,调用相应子程序显示、程序流程如图3-7所示.
4.1.2串行通信子程序设计
1,单片机的串行通信简介M68HC08JL8单片机串行通讯接口(SerialCommunicationInterface,SCI)是异步通信接口,硬件接线上M68HC08JL8的复用脚分别连接到MAX232的引脚R1IN和R1OUT上,通过MAX232就能将其电平转换成标准RS-232电平与PC机进行串行异步通信.与M68HC05系列MCU的SCI系统相比、MC68HC908JL8的SCI系统功能更加强大,如具有硬件奇偶校验、噪声检测等功能.另外,MC68HC908JL8的SCI系统是一个通用异步接收发送器,通过串行通信协议(如RS-232,RS-485等协议)同主机(PC机、终端等)系统通信.在一般的应用中、CPU简单的把数据写入并行数据寄存器即可实现发送一个格式化的串行字符,SCI系统完成发送数据的所以细节工作,包括附加起始位和停止位以符合串行格式.发送器有一个两字节的发送队列(即所谓的双缓冲),这样CPU就有更多的时间
8准备其他字节了.SCI的接收器自动探测一个字节的起始位、并通过采样接收数据.接收串行数据并转换成并行数据的所有工作均由SCI系统完成,不需要CPU的干预.接收到数据后,CPU简单的从数据接收寄存器读取数据即可.正确使用SCI的前提是熟悉SCI系统7个寄存器和SCBR)的使用方法.现将最常用的寄存器介绍如下:
(1)波特率寄存器(SCBR)该寄存器用来选择SCI系统的波特率.波特率由MCU总线时钟分频而来,且发送器和接收器具有相同的波特率和数据格式.SCBR的格式如下:
0019通过设置预分频位SCP1SCP2和波特率选择位SCR2SCR1SCR0来决定波特率的大小,公式
为:
波特率=fBUS(64×PD×BD),fBUS为总线频率.
(2)串行通信控制寄存器1(SCC1)
该寄存器是用来初始化数据长度,输出格式,选择唤醒方式,是否校验等、格式如下:
0013(3)串行通信控制寄存器2(SCC2)该寄存器是SCI系统的主控制寄存器.这个寄存器可以允许和禁止发送器或接收器,允许和禁止系统中断、唤醒功能和送中止码功能和ILIE位是局部中断控制,决定SCI系统是查询状态标志还是发出硬件中断请求,其格式如下:
0014(4)串行通信控制寄存器3(SCC3)该寄存器的功能是设置接收器多种溢出中断、用查询方式可以不对该寄存器进行初始
化,其格式如下:
0015(5)串行通信状态寄存器1(SCS1)
该寄存器是用来标志发送缓冲区、接收缓冲区和接收器的各种状态.其格式如下:
LOOPSENSCITXINVMWAKEILTYPENPTYSCTIETCIESCRIEILIETERERWUSBKR8T8DMAREDMATEORIENEIEFEIEPEIE
0016(6)串行通信状态寄存器2(SCS2)
该寄存器中的BKF和RPF分别表示终止码标志位和正在接收标志位、其格式如下:
0017(7)串行通信数据寄存器(SCDR)SCDR是SCI系统最常用的寄存器,地址为0018.该寄存器具有双重功能,读出时是接收寄存器,写入时是发送寄存器.根据以上介绍、单片机中的串口初始化设置如下:
串行口初始化LDA%D6(ENSCI)=1,允许SCI.其它位为0,STASCC1;即正常码输出、8位数据,无校验等LDA%D3(TE)=1,允许发送器;D2(RE)=1,允许接收器.
STASCC2;D5(SCRIE)=1,中断方式接收数据STASCC3;暂定为全零
LDA%例如取PD=1(即SCBR;BD=2(即;则波特率=9600串行口初始化结束
2,串口通信程序编制每当向PC机方应用程序里输入新显示内容并发送给单片机时,单片机就产生串行中断、接收待显示的点阵数据.单片机接收数据则采用)查询接收的工作方式.进入中断后,首先关闭中断、防止接收数据出错,然后将收到的显示信息数据存入变量,接收到的点阵数据在反馈给PC机确认后依次写入指定FLASH空间内、同时根据标记位判断数据接收是否全部结束,最后开中断返回主程序.
程序流程如图3-8所示.SCTETCSCRFIDLEORNFFEPEBKFRPF上电复位IO口定义及初始化默认显示方式的设置系统初始化串口的初始化设置擦写子程序初始化打开中断根据参数调用显示子程序图3-7主程序流程关中断是接收到从PC机发来的数接收点阵数据调用擦写FLASH的子程序图3-8串行中断程序流程中断返回更改点阵显示起始地址接收点阵显示类型信息点阵数据是否接收结束否
11
4.1.3串行移动的子程序设计这是一个通用子程序,在显示子程序中都要被调用,功能是移位寄存器74HC595接收单片机发出的点阵行数据,逐位移动到对应位置后再进行锁存和输出工作,同时对四六译码器进行开关工作,控制屏幕的显示、流程图如图3-9所示.
4.1.4显示子程序设计静止显示是所有显示方式中最简单的一种.在发送点阵数据给单片机时,根据已经制作好的显示屏的结构特征、即一屏能显示3个汉字,将汉字每3个分为一组,按组发送.而单片机接收汉字时是将一组汉字按行的顺序存储后再按组依次存储下去,其存储的结构如图3-10所示.显示时是将按组顺序存储的点阵数据,按行扫描依次取出、逐行点亮LED.在一屏汉字显示完毕后,循环显示一段时间后,点阵地址偏移96个字节,接着显示下一屏数据,其流程图如图3-11所示.图3-9串行传送数据子程序压栈保护输出移位时钟8位发送完6字节发完开四十六译码器并选中对应行移一位数据输出退栈子程序返回关四十六译码器输出锁存时钟
12图3.11静止显示子程序调用串行移动数据子程序点阵地址偏移6个字节6行是否全部扫完四六译码器选择下一行选中显示屏第一行点阵地址向后偏移96个字节整屏刷新次数计数器减1整屏刷新次数计数器是否等于0文字显示是否结束
第一组3个汉字的
第一行点阵数据
第二行点阵数据
第十六行点阵数据
第一组十六行点阵数据
第二组3个汉字的
第二N组行点阵数据图3-10静止显示时FLASH中汉字字模的存储结构
13
4.2PC机方主控软件的设计
主控软件主要进行两个方面的设计:
一个是对汉字字库的提取显示;另一个是串口通过主控计算机对显示屏的控制显示功能主要是通过计算机的串口实现
4.2.1汉字字库的提取
1,汉字的表示及编码原理计算机用编码的方式来处理和使用字符,英文在计算机机内是用一个ASCII码来表示、而中文汉字则由两个ASCII码表示.1981年我国正式发布国家标准-《信息交换用汉字编码字符集-基本集》[GB在这个标准中共收录简化汉字及符号,字母、日文假名等共7445个图形字符,其中汉字占6763个.另外,GB2312规定对任意一个图形字符都采用两个字节表示、每个字节均采用七位编码表示、GB2312将汉字分为94个区、每个区用一个区码表示;每个区又对应有94个汉字,用位码加以表示、因此也称为区位码.01-09区为符号,数字区、16-87区为汉字区、10-15区、88-94区是有待进一步标准化的空白区.
GB2312还将收录的汉字分成两级:
第一级是常用汉字计3755个,置于16-55区、按汉语拼音字母笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区、按部首笔画顺序排列,故而GB2312最多能表示6763个汉字.为了解决区位码与西文字符相混淆的问题,就规定汉字在计算机中用内码表示、内码为两个字节,而且为了保证中西文兼容、即与ASCII码的使用不发生冲突、所以汉字的两个字节的最高位均为1.所以汉字内码与区位码之间的关系公式为:
机内码高位=区码A0H;机内码低位=位码A0H.只要通过某个汉字的内码就可得到该汉字的区位码、也就得到了该汉字的字模.在软件设计中选用了UCDOS5.0汉字系统中的16×16点阵字库Hzk16作为提取汉字字模的标准字库,其中每个汉字占有32个字节的空间,汉字在字库中位置的
计算公式为:
Location=[(机内码高位-HA1)×94(机内码低位-HA1)]×32.
2,提取汉字的软件设计及实现汉字点阵的提取程序是用VB实现的.其中以何种方式从字库文件中读取这32个字节也是一个关键问题.由于二进制(Binary)方式访问文件可以直接查看文件中指定的字节,而且二进制方式也是唯一支持用户到文件的任何位置读写任意长度数据的方法,因而以二进制方式打开汉字字库文件是最适合的.而且程序也支持西文字符的显示、显示时也让其占用一个汉字的空间,不过它的点阵16x8的,所以不足部分就补零数据,流程图如图3-15所示.
14
4.2.1串口通信的简介与软件设计
1,串口通信简介串行通讯端口在系统控制范畴中一直占有极重要的地位、不仅没有因为时代的进步而淘汰,反而在规格上愈来愈向其极限挑战,而且它具有连接设备种类多,实际操作简单,价格便宜等许多优点.现在计算机上的串行通讯端口(RS-232)是必要配备,通常有COM1与COM2两个信道,一般的计算机将COM1以9Pin的公头接出.RS-232的讯号传输模式如图3-16所示.串行通讯的方式可以分为同步式及异步式两种.同步式在通讯的两端使用同步讯号作为通讯的依据;而异步式则使用起始位(StartBit)及停止位(StopBit)作为通讯的判断.而RS-232是美国电子工业协会正式公布的,也是在异步串行通信中应用传送端接收端讯号电压接地端接地端图3-16RS232讯号传输模式图图3-15汉字点阵的提取判定输入字符是否汉字打开HZK16和ASC16文件转换为机内码计算出区位码计算出所处位置将连续32个字节存入数组判定是否全部识别结束转换成对应显示类型所需的点阵数组转换为ASCII码取出连续16个字节并补充16个字节的零数据存入数组
15最广的标准总线.该标准适用于DCE和DTE间的串行二进制通信,最高数据传输速率可达
19.2kbps,最长传送电缆可达15米.无论是9针还是25针的标准,对于一般的双向通信,只需使用串行输入RxD,串行输出TxD和地线GND.在RS-232中任何一条信号线的电压均为负逻辑关系,即逻辑1-5-15V;逻辑0,515V.噪声容限为2V,即要求接收器能使别低至3V的信号作为逻辑0,高到-3V的信号作为逻辑1,其与TTL和CMOS电平是不同的.因为在接口电路和计算机接口芯片中大都为TTL或CMOS电平,所以在通信时,必须进行电平转换,以便与RS-232标准的电平匹配、MAX232芯片可以完成电平转换工作.现在一般以异步传输较多,采用9针接头,定义如下:
引脚号意义
1CD载波侦测
2RXD接收数据线
3TXD发送数据线
4DTR数据终端准备就绪
5GND地线
6DSR数据准备就绪
7RTS请求发送线
8CTS清除发送
9RI振铃指示
2,VB下的具体实现Windows的操作系统与DOS是迥然不同的,Windows采用了全新的对象化观念,把所有的程序都对象化.VB的串行通信对象是将RS-232的低阶动作予以封装、使用者以高阶的Basic语法就可与外界通讯,而并不需要了解其它有关的低阶动作,其串行组件为MsComm.
由于MsComm属性众多,现对其重要属性说明如下:
CommPort:
设定或传回通讯连接端口的代号,程序必须指定所要使用的串行端口号,Windows系统会使用指定的通讯端口与外接通讯,要注意的是MsComm控件的最大值为16,否则会报出错信息.
Settings:
设定初始化参数,以字符串形式设定或传回波特率,奇偶校验、数据位、停止位参数四个参数,其格式为为波特率,P为奇偶校验、D为数据位数,S为停止位数.value的缺省值是:
9600,N,8,1
16
PortOpen:
设定或传回通讯连接端口的状态、在使用串行端口之前必须先打开端口,使用完毕之后也必须关掉端口.
Input:
返回并删除输入缓冲区的数据,是一种FIFO机制.
InputLen:
指定串行口读入的字符串长度.
Output:
将字符串写入传输缓冲区.
HandShaking:
指定通讯双方采用的握手协议.
Rthreshold:
设定或返回引发接收事件的字符数,默认值为0,即无论缓冲区有多少字符均不引发接收事件.
InBufferCount:
返回在接收缓冲区的字符数,可以设定为0用来清除接收缓冲区.
InputMode:
设定或返回Input属性取回的数据类型
串口初始化程序如下:
If=TrueThen==9600,N,8,1定义传输格式=数据格式-二进制=0收到数引发OnComm事件=0一次读缓冲区全部数据=True打开串行口=0在其后的程序设计中、要将不同含义的数据,包括显示类型,点阵数据等直接发送到单片机、但是由于单片机所能接收数据的缓冲空间有限,所以要分批发送、而且要对单片机反馈数据进行校验、防止传输出错.程序流程图如3-16所示.图3-17与单片机通讯流程否判定反馈数据是否正确发送显示类型数据发送部分点阵数据否数据是否全部发送完毕发送传输数据结束标志总结在LED点阵汉字显示屏的设计过程中、学到了很多东西,基本了解了整个嵌入式开发的流程.例如,在进行整个设计之前、应该先根据需求分析,对单片机进行选型,然后对各个硬件模块进行搭试.在画PCB电路板的时候,要注意基本的布板原则.在焊接电路板的时候,该从最基本的最小系统开始,分模块,逐个进行焊接测试.在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了.在用VB进行高端开发的时候,要充分利用VB的调试功能.当然,在设计的过程中也存在着失误和不足.例如,在进行PCB布板的时候,滤波电容不够靠近芯片的电源脚和地脚.USB的接收线和地线接错,导致要割线.在进行搭试点阵块的时候,因为电压过高,导致点阵块损坏.这次设计开发,本人受益非浅、在以后的开发过程中一定吸取教训.
附录1LED点阵显示屏目录结构一览表内容路径备注设计文档\02点阵显示\01文档\LED点阵显示屏设计文档包括各个时间的备份Led参考资料\02点阵显示\02参考\编译器\02参考\mc68hc908jl8在线编程系统\JL8_1开发工具MC68HC908LJL8资料\02点阵显示\02参考\芯片手册\MC68HC908LJL8芯片手册JL8监控程序\02点阵显示\02参考\JL8监控程序\Jl8_monitorLED点阵显示的设计参考\02点阵显示\02参考\设计备份最小系统测试程序\02点阵显示\03设计\01硬件设计\测试程序\03测试芯片是否工作点亮一盏灯串口通信测试程序\02点阵显示\03设计\01硬件设计\测试程序\02测试串口是否工作发送接受字节电路图及PCB\02点阵显示\03设计\01硬件设计\PCB版点阵测试程序\02点阵显示\03设计\01硬件设计\测试程序\01点阵测试单片机方程序\02点阵显示\03设计\02软件设计\单片机方程序PC机方程序\02点阵显示\03设计\02软件设计\PC方程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED点阵汉字显示屏 doc LED 点阵 汉字 显示屏
![提示](https://static.bdocx.com/images/bang_tan.gif)