单片机LED点阵汉字显示应用设计方案.doc_第1页
单片机LED点阵汉字显示应用设计方案.doc_第2页
单片机LED点阵汉字显示应用设计方案.doc_第3页
单片机LED点阵汉字显示应用设计方案.doc_第4页
单片机LED点阵汉字显示应用设计方案.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

单片机LED点阵汉字显示应用设计方案1.1 引言近几年,LED显示屏的发展非常迅速,大街小巷到处充斥的LED的广告流动字幕。这与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。LED显示屏采用了低电压扫描驱动,具有耗电省、使用寿命长、成本低、亮度高、视角大、可视距离远、防水、规格品种多等优点,可以满足各种不同应用场景的需求,发展前景非常广阔,被公认为最具增长潜力也是发展最快的的LED应用市场。随着北京奥运会、上海世博会、广州亚运会等重大赛会的举办,体育场馆、车站、机场、医院、银行、商业场所、公共广场、居民社区的大面积应用,LED显示屏的市场应用空间不断扩大。LED显示最早的设计方案为点阵模块方案,由室内伪彩点阵屏发展而来。它的优势是原材料成本较低,且生产加工工艺简单,质量稳定。缺点是色彩一致性差,马赛克现象较严重,显示效果较差。1.2 LED显示屏的特点组合型led点阵显示器以发光二极体为图素,它用高亮度led芯片进行阵列组合后,再透过环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。 点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。led点阵有44、48、57、58、 88、1616、2424、4040等多种;根据图素的数目分为等,双原色、三原色等,根据图素顏色的不同所显示的文字、图像等内容的顏色也不同,单原色点阵只能显示固定色彩如红、绿、黄等单色,双原色和三原色点阵显示内容的顏色由图素内不同顏色发光二极体点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极体的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。几种led点阵显示器的内部电路结构和外型规格,其他型号点阵的结构与引脚可试验获得,led点阵显示器单块使用时,既可代替数码管显示数位,也可显示各种中西文字及符号,如5 x 7点阵显示器用于显示西文字母,58点阵显示器用于显示中西文,8 x 8点阵用于显示中文文字,也可用于图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。 由led点阵显示器的内部结构可知,器件宜采用动态扫描驱动方式工作,由于led管芯大多为高亮度型,因此某行或某列的单体 led驱动电流可选用窄脉冲,但其平均电流应限制在20ma内,多数点阵显示器的单体led的正向压降约在2v左右,但大亮点10的点阵显示器单体 led的正向压降约为6v。大屏幕显示系统一般是将由多个led点阵组成的小模组以搭积木的方式组合而成的,每一个小模组都有自己的独立的控制系统,组合在一起后只要引入一个总控制器控制各模组的命令和资料即可,这种方法既简单而且具有易展、易维修的特点。led点阵显示系统中各模组的显示方式有静态和动态显示两种。静态显示原理简单、控制方便,但硬体接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示幕的各行进行选通,同时又向各列送出表示图形或文字资讯的脉冲信号,反复以上操作,就可显示各种图形或文字资讯。1.3 LED显示屏产品的优势LED显示屏产品的优势:1. 高的换帧频率(不小于300hz)极大的提高了图像的稳定性。2. 高的灰度级,使常规真彩数据RGB各8位(256级数据)分别扩展为14位,并通过局部控制扫描的方式,将14位数据量完全转换为214=16384个亮度档次,从而实现16384级灰度。3. 通过人眼的视觉特性,根据白天及晚间环境光的变化,进行最高亮度及最低亮度值的改变(根据查色表)不伦差值如何改变,在该亮度范围内可实现16384级的灰度,从而极大的提高了图像显示的清晰度,红绿兰可独立进行任意校正,对显示屏进行手动或自动亮度调节100级软件调节、硬件16级亮度调节。4. 合理的结构、简单的组合,使显示屏体重量达到最低。5. 合理的工作电流,既不降低亮度,又提高了工作效率,使显示屏可在不用空调降温的条件下正常工作。6. 采用数据分块处理,各块同步并行通讯的方式,极大的提高通讯速度。7. 远程通讯使用千兆网高速数据通讯芯片,采用光电隔离技术,从而极大的提高了防静电防雷击的性能。8. 显示屏可通计算机网络系统进行远程控制。9. 具有先进的显示屏内温、湿度、烟雾监控,适时调节温湿度并有报警功能。1.4 设计任务及要求本次设计主要就是利用STC11F32单片机作为控制,由LED点阵作为显示器,配合其他的一些外围的电路来实现点阵式汉字,并进行一些功能扩充。主要内容为:1、 熟悉掌握STC系列单片机远离及编程;2、 设计单片机的最小系统电路;3、 设计LED广告屏电路4、 设计LED广告屏的功能程序5、 调试LED广告屏系统;2 系统设计及其硬件电路设计2.1总体系统设计任何设计都要有一个计划,一步一步地进行。电子设计更是如此,首先要确定要使用的电子元器件,画出基本的流程图,确定硬件电路,设计软件,仿真,焊接电路。整个设计从功能上应该可分为三个模块:中心控制模块、行列驱动模块、显示模块。中心模块就是由单片机控制的,是整个系统的核心,主要用来输出组成汉字的信号。行列驱动就是用来传输汉字的信号的,显示模块,即最直观的部分,就是显示功能。 单片机主控单元输出列信号和组成汉字的行信号 显示模块 图2-1 总体设计方案图2.1.1实现方法选取 数据传送方式的选择: 单片机的输出有并行输出和串行输出,并行输出虽然节省时间,但占用的位比较多,它的输出是并行的,所以就需要几位数据同时从几个端口输出。而串口虽然要一位一位输出,但其只需要一个端口就能输出多位的数据。虽然并行效率高,但占用的IO口太多,而本次设计需要的IO口远远超过了单片机的并行输出IO口,所以在信号输出的方式选择上要采用串口通信模式。 显示模块工作方式的选择: 图文显示一般有静态和动态显示两种方法,静态显示虽然设计简单,但其占用的管脚太多,如本设计中16*32的点阵共有512个发光二极管,显然单片机没有这么多的端口可供使用,但如果采用锁存器来扩展端口,按8位的锁存器来计算,16*32的点阵需要512/8=64个锁存器。这个数字也不实际,因为我们仅仅是16*32的点阵,而在实际应用中的显示屏往往要更多,这样在锁存器上花的成本就是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用动态显示的显示方法。动态扫描的意思简单地说就是逐列轮流点亮,这样扫描驱动电路就可以实现多列的同名行共用一套驱动器。就16*16的点阵来说,把所有同1列的发光管的阴极连在一起,把所有同1行的发光管的阳极连在一起,先送出对应第一列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定时间,然后熄灭;再送出第二列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;以此类推,第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。如下所示:每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字, 也可以显示在256像素范围内的任何图形。我们以显示汉字“大”为例,来说明其扫描原理:图2-2显示汉字“大”的点阵图形在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的P00-P07口。方向为P00到P07 ,显示汉字“大”时,P05点亮,由上往下排列,为P0.0 灭,P0.1 灭, P0.2 灭P0.3 灭, P0.4 灭, P0.5 亮,P0.6 灭,P0.7 灭。即二进制00000100,转换为16进制为 04H.。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从P27向P20方向扫描,从上图可以看到,这一列全部为不亮, 即为00000000,16进制则为00H。 然后单片机转向上半部第二列,仍为P05点亮,为00000100,即16进制04H.这一列完成后继续进行下半部分的扫描,P21点亮,为二进制00000010,即16进制02H.依照这个方法,继续进行下面的扫描,一共扫描32个8位, 可以得出汉字“大”的字模代码为:04H,00H,04H,02H,04H,02H,04H,04H04H,08H,04H,30H,05H,0C0H,0FEH,00H05H,80H,04H,60H,04H,10H,04H,08H04H,04H,0CH,06H,04H,04H,00H,00H由这个原理可以看出, 无论显示何种字体或图像, 都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。我们设计的是一块16*32的LED显示屏,如下图:但是显示原理也是通过STC11F单片机控制外围电路对整个屏幕进行扫描,用74HC138译码器和4953芯片作为行驱动对屏幕上的16行进行扫描控制,用74HC595作为列驱动对屏幕上的32列进行扫描控制,根据人眼的视觉暂留效果,完成汉字的显示。图2-216*32LED显示屏实物2.3 硬件电路设计2.3.1 显示电路 我们所设计的是一块16*32的LED显示屏,他是由16行32列一共512个LED发光二极管组合而成。我们把他的每一行由H1到H16来表示,每一列由L1到L32来表示,而每一列中,从上到下每四个二极管是一组,分别为L1、2L1、3L1、4L1,第二列就为L2、2L2、3L2、4L2以此类推。 图2-3 显示电路2.3.2 列驱动电路 列驱动电路包括16个74HC595,每一个74HC595的8个并行输出端连接着8组由四个二极管组成的L灯组。如:第一行第一个74HC595控制L1到L8这8个灯组,第二个74HC595控制着2L1到2L8这8个灯组。第二行第一个74HC595控制L9到L16这8个灯组,第二个74HC595控制2L9到2L16这8个灯组,以此类推。16个74HC595完成了对128个LED灯组的控制 图2-4 列驱动电路2.3.3 行驱动电路 行驱动电路包括1个74HC138和4个4953, 根据A和B的值的不同,分别会输出Y0、Y1、Y2、Y3四个不同数据,当A=0、B=0时,输出Y0;当A=1、B=0时,输出Y1;当A=0、B=1时,输出Y2;当A=1、B=1时,输出Y3。通过4953芯片,Y0控制1、5、9、13行,Y1控制2、6、10、14行,Y2控制3、7、11、15行,Y3控制4、8、12、16行。 (a)74hc138(b)4953图2-5 行驱动电路2.3.4 复位电路 复位是单片机的初始化操作,它的主要功能是把PC值初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化以外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境也需要按复位键以重新启动。复位方式有自动复位和手动复位两种。本系统采用手动复位方式复位。RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期以上。 图2-6 复位电路2.3.5 晶振电路晶振电路用于产生程序运行所需的时钟信号,时序是指令执行中各信号之间的先后关系。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应该在统一的时钟信号控制下按时序进行工作。在AT89C51单片机内部是带有时钟电路的,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件,即可构成一个稳定的自激振荡器。在AT89C51芯片内部有一个高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容就可以了。图2-7 晶振电路3. 主要器件简介3.1 STC11F32单片机简介 单片机就是一个微型电脑,它的内部也用和电脑功能类似的模块,比如中央处理器CPU、随机存储器RAM、只读存储器ROM、中断系统、定时器/计数器、I/O接口等半导体集成电路芯片,它主要是作为控制部分的核心部件。单片机是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机(比如家用PC)的主要区别。 单片机必须靠程序运行,并且可以修改。通过不同的程序实现不同的功能,尤其是一些特殊的功能,这是别的器件需要费很大力气才能做到的。因为单片机通过编写的程序可以实现高智能,高效率,以及高可靠性。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。 STC单片机是以51内核为主的系列单片机,STC单片机是由笙泉科技设计,国内宏晶公司贴牌生产的,这个芯片设计的时候就吸取其它51系列单片很容易被解密的教训,改进了加密机制。STC11系列单片机是宏晶科技设计生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成的FLASH寿命可达10万次,并且完全支持ISP和IAP功能。该系列针对不同功能、电压、封装等的型号规格非常齐全。所有的STC11/10xx系列单片机内部都固化了宏晶科技的ISP程序,不需要并行编程器,通过RS232串口就可以烧录用户程序。但一些系统为了程序保密或者采用其他诸如RS485通讯或其他通讯方式的需要,仍然需要自己编写ISP程序用于系统升级。在STC11/10xx系列单片机中以IAP打头的芯片型号,用户程序和数据FLASH是统一寻址,允许在用户程序中擦写FLASH,因此可以编写自己的ISP程序。 图3-1 STC11f32单片机引脚图STC11/10xx系列单片机特点:高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快812倍宽电压:5.54.1V/3.7V,3.6V2.4V/2.1V(STC11/10L系列)低功耗设计:空闲模式(可由任意一个中断唤醒)低功耗设计:掉电模式(可由任意一个外部中断唤醒,可支持下降沿/低电平和远程唤醒,STC11xx系列还可通过内部专用掉电唤醒定时器唤醒)工作频率:035MHz,相当于普通8051:0420MHz时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置1/2/4/8/12/16/32/48/60/62K字节片内Flash程序存储器,擦写次数10万次以上1280/512/256字节片内RAM数据存储器芯片内EEPROM功能,擦写次数10万次以上ISP / IAP,在系统可编程/在应用可编程,无需编程器/仿真器2个16位定时器,兼容普通8051的定时器T0/T11个独立波特率发生器(故无需T2做波特率发生器),缺省是T1做波特率发生器可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出时钟,BRT在P1.0输出时钟硬件看门狗(WDT)全双工异步串行口(UART),兼容普通8051,可当2个串口使用(串口可在P3与P1之间任意切换)先进的指令集结构,兼容普通8051指令集,有硬件乘法/除法指令通用I/O口(36/40个),复位后为: 准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,44/40管脚的IC建议整个芯片不要超过100mA,20/18/16管脚的IC建议整个芯片不要超过60MaSTC11/10xx系列主要性能:在系统可编程,无需编程器,无需仿真器,可远程升级。可送STC-ISP下载编程器,1万片/人/天。内部集成高可靠复位电路,复位脚设置为I/O口使用时,复位脚可浮空。速度快,1个时钟/机器周期,可用低频晶振,大幅降低EMI。输入输出口多,最多有40个I/O,复位脚如当I/O口使用,可省去外部复位电路。超强抗干扰,超强抗静电,整机可轻松过2万伏静电测试。超低功耗:掉电模式:外部中断唤醒功耗 0.1uA,支持下降沿/低电平和远程唤醒。STC11xx系列增加了掉电唤醒专用定时器,启动掉电唤醒定时器典型功耗2uA。适用于电池供电系统,如水表,气表,便携设备等.空闲模式: 典型功耗 1.3mA正常工作模式: 2mA - 7mA复位脚:烧录程序时如设置为I/O口,可当I/O口使用或浮空不用的I/O口:浮空即可使用LQFP44封装时,最多有40个I/O口使用PDIP40封装时,最多有36个I/O口3.2 74HC595简介 描述:74HC595是硅结构的一种CMOS器件, 兼容低电压的TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SHcp的上升沿输入,在STcp的上升沿进入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。 8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。特点:8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态。输出寄存器可以直接清除 100MHz的移位频率输出能力: 并行输出,总线驱动; 串行输出;标准中等规模集成电路 595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。 图3-2 74HC595引脚图引脚说明:Q0Q7 第15脚及1-7脚, 并行数据输出 GND 第8脚 地 Q7 第9脚 串行数据输出 MR 第10脚 主复位(低电平) SHCP 第11脚 移位寄存器时钟输入 STCP 第12脚 存储寄存器时钟输入 OE 第13脚 输出有效(低电平) DS 第14脚 串行数据输入VCC 第16脚 电源芯片时序图:图3-3时序图3.3 74LS138简介描述:74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其74LS138工作原理如下: 当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。 作用:利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。引脚及内部电路:图3-4 3线-8线译码器74LS138图3-5 74LS138内部电路译码器74LS138的功能表:图3-6 74LS138功能表无论从逻辑图还是功能表我们都可以看到74LS138的八个输出管脚,任何时刻要么全为高电平1芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。3.4 4953芯片介绍4953在led中的作用是行驱动,电流放大LED显示屏单元板,每一显示行需要的电流是比较大的,要使用行驱动管,每片4953可以驱动2个显示行其内部是两个CMOS管,1、3脚VCC,2、4脚控制脚,2脚控制7、8脚的输出,4脚控制5、6脚的输出,只有当2、4脚为“0”时,7、8、5、6才会输出,否则输出为高阻状态。4953行功率管一段和74hc138管脚相连,一端和单元板上二极管的正极相连接。在短路的情况下74hc4953很容易烧坏,有种烧焦的气味。单元板上每个模块的同一行不亮;同一行不亮可能是行驱动管TP127(或4953)损坏或虚焊或印刷电路断,或是从138输出到127(或4953)的基极B的信号没有过来。更换127(或4953)或虚焊补焊或飞线。图3-7 4953引脚图4 单片机串口通行介绍 本次设计的核心技术主要用到了单片机的串口通信技术,下面对单片机的串口通信技术做一介绍:4.1 STC11F系列单片机串行通信接口 STC11F系列单片机内部有一个功能强大的全双工串行异步通信接口,它既可以作为UART使用,能方便地构成双机或多机通信系统,也可以在外接移位寄存器后扩展并行I/O口。4.1.1串行口的结构与组成单片机的串行通信口结构主要由两个串行数据缓冲器(SBUF)、发送控制器、发送端口、接收控制器和接收端口等组成。串行口的工作方式和波特率由专用寄存器SCON和PCON控制。1、串行数据缓冲器(SUBF)STC11F系列单片机串行口有两个串行数据缓冲器,其中一个用来发送数据,一个用来接收,可以同时发送和接收。发送缓冲器只能写入,不能读出。同样,接收缓冲器只能读出,不能写入。两个缓冲器使用同一个符号SBUF,共用一个地址99H,根据读、写指令来确定访问其中的哪一个。发送数据时,执行一条将数据写入SBUF的传送指令,即可将要发送的数据按事先设置的方式和波特率从TXD端串行输出。一个数据发送完毕后,串行口能向CPU提出中断请求,发送下一个数据。接收数据时,当一帧数据从RXD端经过接收端口(移位寄存器)全部进入SBUF后,串行口发出中断请求,通知CPU接收这一数据。CPU执行一条读SBUF的指令,就能将接受的数据送入某个寄存器或是存储单元。与此同时的是接收端口接收下一帧数据。为了避免前后两帧数据重叠,接收器是双缓冲的。2、 串行口控制寄存器(SCON)SCON是用于控制单片机串行口的工作方式的,同时还包含了要发送和接收到的第9位数据及串行口中断标志位。此寄存器的字节地址为98H。各位的定义如下:SM0SM1SM2RENTB8RB8TIRI图4-1串行口8位SM0、SMl:串行口工作方式选择位,由软件设定,有四种方式: 00方式0;01方式1; 10方式2;11方式3。SM2:仅用于方式2和方式3的多机通信控制位,本设计没有涉及到多机通信,不再多做陈述。REN:串行接收允许位:0禁止接收;1允许接收。TB8:在方式2、3中,TB8是发送机要发送的第9位数据。RB8:在方式2、3中,RB8是接收机接收到的第9位数据,该数据正好来自发送机的TB8。TI:发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,由硬件自动置1。如要再发送,必须用软件再清零。本设计就用到了此功能。RI:接收中断标志位。接收前,必须用软件清零,接收过程中RI保持零电平,接收完一帧数据后,由片内硬件自动置1。如要再接收,必须用软件再清零。电源控制寄存器(PCON)PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:SMOD-GF1GF0PDIDLSMOD:该位与串口通信有关。SMOD=0; 串口方式1,2,3时,波特率正常。SMOD=1; 串口方式1,2,3时,波特率加倍。GF1,GF0:两个通用工作标志位,用户可以自由使用。PD:掉电模式设定位。PD=0 单片机处于正常工作状态。 PD=1 单片机进入掉电(Power Down)模式 ,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。IDL:空闲模式设定位。 IDL=0 单片机处于正常工作状态。 IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。 4.1.2 串行口的工作方式:SM0 SM1模 式功 能波 特 率0 00同步移位寄存器fosc/120 118位UART可变(T1溢出率)1 009位UART fosc/6或fosc/321 119位UART可变(T1溢出率)其中,fosc是振荡器的频率,UART为通用异步接收和发送器的英文缩写。下面对这4种工作模式作进一步介绍。(1)方式0当设定SM1、SM0为00时,串行口工作于方式0,它又叫同步移位寄存器输出方式。在方式0下,数据从 RXD(P3.0)端串行输出或输入,同步信号从TXD(P3.1)端输出,发送或接收的数据为8位,低位在前,高位在后,没有起始位和停止位。数据传输率固定为振荡器的频率1/12,也就是每一机器周期传送一位数据。方式0可以外接移位寄存器,将串行口扩展为并行口,也可以外接同步输入/输出设备。执行任何一条以SBUF为目的的寄存器指令,就开始发送。(2)方式1当设定SM1、SM0为01时,串行口工作于方式1。方式1为数据传输率可变的8位异步通信方式,由TXD发 送,RXD接收,一帧数据为10位,1位起始位(低电平),8位数据位(低位在前)和1位停止位(高电平)。数据传输率取决于定时器1或2的溢出速率 (1/溢出周期)和数据传输率是否加倍的选择位SMOD。对于有定时器/计数器2的单片机,当T2CON寄存器中RCLK和TCLK置位时,用定时器2作为接收和发送的数据传输率发生器,而RCLK=TCLK=0时,用定时器1作为接收和发送的数据传输率发生器。两者还可以交叉使用,即发送和接收采用不同的数据传输率。类似于模式0,发送过程是由执行任何一条以SBUF为目的的寄存器指令引起的。(3)方式2当设定SM0、SM1二位为10时,串行口工作于方式2,此时串行口被定义为9位异步通信接口。采用这种方式 可接收或发送 11 位数据,以 11 位为一帧,比方式 1 增加了一个数据位,其余相同。第 9 个数据即 D8 位用作奇偶校验或地址/数据选择,可以通过软件来控制它,再加特殊功能寄存器 SCON 中的 SM2 位的配合,可使 MCS-51 单片机串行口适用于多机通信。发送时,第9位数据为TB8,接收时,第9位数据送入RB8。方式 2 的数据传输率固定,只有两种选择,为振荡率的 1/64 或 1/32 ,可由 PCON 的最高位选择。(4)方式3当设定SM0、SM1二位为11时,串行口工作于方式3。方式3与方式2类似,唯一的区别是方式3的数据传输率是可变的。而帧格式与方式2一样为11位一帧。所以方式3也适合于多机通信。本设计只需要传送8位的数据,不需要标志位,74HC595是一个8位的寄存器,不需要标志位及校验位,所以运用的方式0。 5 软件和程序设计5.1 字模软件字体的组成全都是由字模组成的,一个基本显示单元要显示一个汉字,需要32个8进制的数,即字模。从左边开始,每列用两个字模,上下各一个,低位在上,16*64的LED点阵可以分为上半部分和下半部分,两个8*64的点阵。从左上边的第一列开始,每一列的字模是由8位的二进制数组成的,例如00001111就是下边的四个灯亮,换算成8进制就是0F,如果手动提取字模,会是一个比较麻烦的工作。有字模提取的软件可供使用。字模软件可以很方便地把需要的字模提取出来:图 5-1 字模提取软件 通过字模提取,可以得到“欢”的字模为:0xFF,0x7F,0xFF,0x7F,0x03,0x7F,0xFA,0x01,0x7A,0xFB,0xB5,0xB7,0xD7,0xBF,0xEF,0xBF,0xE7,0xBF,0xE7,0x9F,0xDB,0x5F,0xDB,0x6F0xBE,0xE7,0x79,0xF1,0xC7,0xFB,0xFF,0xFF,依次提取出需要的字模即可。5.2程序流程图根据功能要求,需要同时在极短的时间里完成对LED点阵屏幕上16行32列所有点的扫描,从行、列寄存器中输出相应的字模使16*32的LED显示屏上的所有为高电平的点亮起,那么根据人眼的视觉暂留效果,我们就可以看到屏幕上显示的两个汉字。我们所设计的程序是这样完成对屏幕的所有点的扫描,先扫描1、5、9、13行的前8列,然后扫描该四行的9到16列,之后扫描该四行的17到24列,之后是该四行的25到32列,完成之后进行一次显示。然后按照该顺序进行第2、6、10、14行的扫描和显示,之后是3、7、11、15行的扫描和显示,最后进行是4、8、12、16行的扫描和显示。这整个扫描显示过程都是在很短的时间内完成的,在我们看来显示屏上形成的是稳定的两个汉字。这样,设计出程序的主要流程图: 开始 系统初始化 调用显示程序 调整数据指针是否显示完 图 5-2 程序主流程图5.2 软件各子模块设计在本次的程序编写中,用到最多的语法就是for循环,下面简单介绍一下C语言中for循环的用法: 一般情况下for循环里包含3条语句,第一句是为循环变量赋初始值值,第二句是循环条件,第三句是给循环变量重新赋值,例如:for(i=0;inum;i+) / 这个循环的循环变量是i,i的初始值是0,循环条件是inum,i以自增的方式赋新值,也可以写出i+=10,即i=i+10。就拿上面这个例子来说,执行的过程是先给给i赋初值,再判断i是否小于num,若是则执行for循环里的语句,执行完之后再执行i+,然后再判断i是否小于num,若是则仍执行for循环里的语句,否则退出循环。5.2.1 写入74HC595程序的设计写入的每个8位字模和0x80与,然后向左移位之后再和0x80与,进行8次该循环,就可以将一个字模中的8位数据通过74HC595的DS串行输入端写入。程序如下:void write595(uchar dat)/数据串行送入595 uchar i; for(i=0;i8;i+) CLK=0; SER=dat&0x80; dat=1; CLK=1; 5.2.2 列驱动程序的设计 列驱动就是把字模从单片机中通过串口输出到寄存器,然后从寄存器输出到显示器上。我们先将字模中的第4行第1列(i+k-1=3、sign=0)的8位输出到寄存器,通过for循环依次输出字模中第1列的3、2、1行的三个8位。然后依次输出字模中的第2列的4、3、2、1行。之后通过最外面的for循环,完成对字模中第1列的8、7、6、5行和第2列的8、7、6、5行的输出。完成之后16个74HC595中都写好了8位数据,对16个74HC595全部给一个上升沿,就将这些寄存器中的数据一起输出到显示屏上。程序如下: void input(uchar sign)/送一帧数据,sign表示送的列数 uchar i,j,k,s; k=0; for(s=0;s0;i-) write595(tabi+k-1sign); for(j=4;j0;j-) write595(tabj+k-1sign+1); k+=4; RCLK=0; RCLK=1;5.2.3 行驱动程序设计行驱动是通过控制E1、E2的值的不同,我们在主程序中进行实现,当input(0)时,输出的是显示屏上第1、5、9、13行中的所有列,所以这时候令E1=0、E2=0,控制行驱动输出Y0,令1、5、9、13行全亮,所以就可以将这4行中的点的亮灭情况显示出来。之后input(2),同理来显示第2、6、10、14行的点的亮灭情况。然后依次input 4和6 ,来显示3、7、11、15行和4、8、12、16行。这一连串动作都在很短的时间内完成,所以我们看到屏幕上显示出稳定的两个汉字。程序如下:void main() while(1) input(0); /控制两个字的前两列 E1=0;E2=0; /控制1,5,9,13行亮 input(2); E1=1;E2=0; input(4); E1=0;E2=1; input(6); E1=1;E2=1; 结论这次设计以单片机为核心,实现了汉字的显示和流动。在最初选题的时候,就是因为这个设计的应用领域比较广,具有很大的实用价值。所以才决定做这个题目。当然,我做的这个汉字显示系统功能比较单一,显示内容比较少。和市场上运用的还有很大的差距,但原理基本是一样的。因为我在大四下学期由于工作需要,去了徐州实习,一直到4月下旬才开始做毕业设计。时间比较紧迫,而且实际设计的经验也比较缺乏,所以只是单纯的实现了汉字的显示。没有进一步的进行功能的扩展。这次设计让我学到了很多,对单片机的知识又加深了一层。对大学所学的知识有了一个很好的综合运用,动手能力和解决问题的能力也得到了加强。在这次设计中,我终于体会到了从零开始的不易和得到结果的喜悦。过程是不易的,但结果却是可人的,我终于得到了小小的收获。以前在C语言上总是停留在读程序和看程序上边,而这次却要自己编写程序,从中体会颇深。在编写过程中,总是出现一些平时忽略的语法上的小错误,虽然大的框架是对的,但就是一些地方不行,这还是实践少的缘故,但功夫不负有心人,结果还是令人欣慰的。总而言之,这次毕业设计让我获益匪浅。致谢首先,我要感谢学院给我提供了这个课题,让我有一个亲自设计的机会。其次,我特别要感谢我的指导老师曹卫锋老师给我提供的支持和帮助。由于我大四的下学期在徐州实习,还要麻烦曹老师有事时特意通知我。从北京回来后又对我的课题对我进行批注和辅导。在此,谢谢曹老师的悉心指导。另外,我要谢谢我在北京的项目经理王珂先生,在单片机方面,他无私的传授了我很多知识。并对我的课题提出来很多建议,还有比我早进公司的耿飚,在平时的工作中也教会了我很多C语言的知识,在此,谢谢你们。还有,我要谢谢我周围的同学们,我们在一起改程序,一

温馨提示

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

评论

0/150

提交评论