《基于STC89C54单片机的汉字点阵显示屏的设计毕业设计.doc》由会员分享,可在线阅读,更多相关《基于STC89C54单片机的汉字点阵显示屏的设计毕业设计.doc(30页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)题 目:基于STC89C54单片机的汉字点阵显示屏的设计系 别: 年级专业: 学生姓名: 学 号: 指导教师: 完成时间: 摘 要在现代化的社会里,因为LED具有功耗低、寿命长、性能好的优点,由单片机控制LED来实现文字、图像信息显示的应用也越来越广泛,其使用价值也越来越受重视。本设计基于STC89C54单片机来实现汉字显示的功能,介绍了汉字点阵显示系统的设计过程。选用了4块8*8的LED点阵模块来构成一个16*16的点阵显示屏,它主要由单片机STC89C54的P1口和P2口来控制其行选,采用时8位串入并出芯片74HC595来控制其列选。由集成8个NPN达林顿管的ULN2803
2、来提供驱动电流。因为ULN2803有反相功能,所以在发送显示信息时,我们通过给模块要求亮的行置1,而给相应的列来置1,从而使相应的二极管导通,于是字便被显示出来了,此后再对字进行扫描显示,便会产生动态效果。此外,本设计增加语音播报功能,使该系统性能得到显著提升。关键词:单片机;74HC595;ULN2803AbstractIn modern society, because the LED has low power consumption, long life, performance advantages, controlled by single chip LED text, image
3、 information display applications are increasingly being used, its value in use is also growing attention.This design based STC89C54 microcontroller to achieve the function of the system of Chinese characters cycle through the character dot matrix display system design process, selection of four 8 x
4、 8 LED dot matrix module to form a 16 * 16 screen, it mainly consists ofmicrocontroller STC89C54 port P1 and P2 port to control the line selected, again using the 8 for the string into and out of the chip 74HC595 to control the column selected. Integrated 8 Darlington ULN2803 to drive current.ULN280
5、3 inverting function, so send display information through the different points of the requirements of the bright line of modules set to the appropriate column to set, so that the corresponding diode conduction, so the word willdisplayed, after which the word scan, there will be a dynamic effect.Keyw
6、ords: SCM; 74HC595; ULN2803目 录摘 要IAbstractII第一章 系统设计方案11.1 系统方案的确定1第二章 硬件设计22.1 主控芯片22.1.1 STC89C54单片机22.1.2 单片机信号引脚22.1.451单片机最小系统32.1.5 中断控制42.2 I/O扩展芯片62.3 驱动芯片72.4汉字显示点阵屏92.4.1 点阵屏模块92.4.2 8*8 点阵工作原理说明92.5 电源电路102.6 单片机的时钟电路102.7 单片机的复位电路112.8 原理框图112.9 整体硬件设计电路12第三章 软件设计133.1 点阵屏主程序流程图133.2装载函数
7、流程图133.3显示函数流程图14第四章 系统调试154.1 硬件调试154.2 软件调试154.2.1 程序跳转错15结束语16参考文献17附录118附录219附录3 实物图片23致 谢24第一章 系统设计方案1.1 系统方案的确定LED点阵显示系统的总体框图如图1-1所示,硬件电路大体上可以分单片机及其外围电路、显示驱动电路、I/O口扩展电路、语音播报电路四部分。本设计实现16*16单色汉字循环显示、右移滚动显示、无线控制和语音播报功能。硬件部分采用4块8*8点阵屏级联的方式实现,点阵屏的行列各为16管脚,考虑到单片机I/O口资源比较紧张,需要扩展I/O口,故采用8位74HC595串行输入
8、并行输出芯片来扩展I/O口。由集成8个NPN型达林顿管的ULN2803来提供驱动电流。语音播报模块采用WT588D语音芯片,配合其编程软件,可以把语音下载到指定地址的FLASH中,通过单片机给语音模块控制信号,实现在显示汉字的同时,朗读显示的内容。图1-1 点阵显示系统的总体框图主控芯片STC89C543根控制线I/O扩展串入并出74HC59516*16 LED点阵显示屏16根线行驱动ULN2803WT588D语音播报模块5V电源4根线整个系统以STC89C54为控制芯片,P1和P2口为行扫描控制端,两列上拉排阻增强单片机I/O口的驱动能力,利用ULN2803来满足LED屏的驱动电流。P0口为
9、芯片74HC595的输入,且2片74HC595级联后为列扫描控制。系统提供12MHz的时钟电路和按键控制的复位电路。通过软件程序调用不同的代码来显示字符或文字。本设计采用动态扫描方式逐列轮流点亮LED点阵屏。对于1616的点阵来说,显示一帧图像需要发送16次行、列字型码。首先发送第一列的字型码,使其处于有效、可以被点亮,而其他列处于无效的的状态,然后发送相对应的行值,这样第一列的LED灯根据字型码可以亮灭,接着为了消除阴影,发送使LED灯熄灭的行字型码,是所有的LED灯熄灭。依此循环发送行列值,可以显示图像。采用扫描方式显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储
10、在单片机的ROM中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。软件部分编程采用基于Windows XP系统的Keil C。此软件界面美观,操作方便,易于程序的编写。最后通过STC-ISP编程软件将正确的程序写入STC89C54芯片中,通过硬件电路显示。第二章 硬件设计2.1 主控芯片2.1.1 STC89C54单片机本设计采用STC89C54单片机,该
11、单片机拥有16KB的可编程的闪存(Flash programmable and erasable read only memory)、1280字节RAM。片上闪存允许100000次编程烧写,在系统开发时可以十分容易地进行程序修改,即使程序错误也不会成为废品。由于在单片机集成电路上包括8位CPU和闪存,32个并行I/O接口,以及定时器等部件使STC89C54成为强大的控制器,它为很多单片机控制系统提供一种高效灵活的解决方案。另外STC89C54单片机出厂时已经完全加密,无法解密。并且利用内部集成ISP功能,外接一个MAX232芯片,通过串口可以方便下载程序。签于以上理由,最终选择STC89C54
12、单片机为主控芯片。2.1.2 单片机信号引脚51系列单片机8031、8051及89C51/89S51均有40Pin封装的双列直插DIP封装。图2-1是它们的引脚配置:40个引脚中,正电源和地线两根,4组8位共32个I/O口,中断口线与P3口线复用。下面对这些引脚的功能加以解释说明:Pin20:接地引脚。Pin40:正电源脚,工作时,接+5V电源。Pin19:时钟XTAL1脚,片内振荡电路的输入端。Pin18:时钟XTAL2脚,片内振荡电路的输出端。8051的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。另外
13、一种是外部时钟输入方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。图2-1 STC89C54芯片图输入输出(I/O)引脚P0、 P1、P2、P3。in39-Pin32为P0.0-P0.7输入输出脚。 Pin1-Pin8为P1.0-P1.7输入输出脚。 Pin21-Pin28为P2.0-P2.7输入输出脚。 Pin10-Pin17为P3.0-P3.7输入输出脚。 Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。 8051的复位方式可以是自动复位,也可以是手动复位。该设计采用手动复位。此外,R
14、ESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源, 以保证单片机内部RAM的数据不丢失。 Pin30:ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。如果单片机是EPROM,在编程其间, 将用于输入编程脉冲。Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线
15、,ST89C54单片机,内置有16kB的程序存储器,当EA为高电平时,读取内部程序存储器指令数据,如果EA为低电平,则不管地址大小,一律读取外部程序存储器指令。2.1.4 51单片机最小系统STC89C54由于拥有达到16K的内部程序存储器和1280字节的RAM已经满足了一般的设计需求,所以只需要建立单片机最小系统,即可满足本设计的控制部分的要求。硬件连接如图2-2所示:51单片机的RST为复位信号端,高电平有效。当维持低电平时单片机将正常读指令处理。当复位时PC指向0000H。当刚刚接通单片机电源时,由于电源的冲击,将通过电容流过一定的电流,在电阻上产生一定的正电压,RST高电平使得单片机复
16、位,待电源稳定了,电容相当于断路,使得RST引脚接地,为低电平,单片机进入正常工作。但用户要求复位时,按下S2按键,VCC绕过电容流过10K电阻,向地拉电流,RST引脚处于高电平,单片机复位,PC指向0000H地址。图2-2 STC89C54最小系统2.1.5 中断控制STC89C54的中断控制是指MCS-51提供给用户的中断控制手段,实际上就是一些特殊功能寄存器。与中断有关的特殊寄存器有中断允许控制寄存器IE和中断优先级控制寄存器IP。在MCS-51单片机中有5个中断源。允许中断称“中断开放”,不允许中断称“中断屏蔽”。因此,当对所运行的程序不希望有某个中断请求打断它时,可以对该中断加以屏蔽
17、。本设计的程序中有此应用。STC89C54对中断请求源的开放或屏蔽是由中断允许寄存器IE控制的。IE的格式如表2-1所示:表2-1 STC89C54 IE寄存器 IE AFHAEH ADH ACH ABH AAHA9H A8H(A8H) EA ES ET1 EX1 ET0 EX0 中断允许寄存器IE对中断的开放和关闭实现两级控制。所谓两级控制就是有一个总的开关中断控制位EA(IE.7),当EA=0时,关闭所有的中断申请,即任何中断申请都不接受;当EA=1时,CPU开放中断,但5个中断源还要由IE的低5位的各对应控制位的状态进行中断允许控制,IE中各位的含义如下: EA:中断允许总控制位。EA=
18、0,屏蔽所有中断请求;EA=1,CPU开放中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。 ES:串行口中断允许位。ES=0,禁止串行口中断;ES=1,允许串行口中断。 ET1:定时器/计数器T1的溢出中断允许位,ET1=0,禁止T1中断;ET1=1,允许T1中断。 EX1:外部中断INT1中断允许位。EX1=0,禁止INT1中断;EX=1,允许INT1中断。 ET0:定时器/计数器T0的溢出中断允许位。ET0=0,禁止T0中断;ET0=1,允许T0中断。 EX0:外部中断INT0中断允许位。EX0=0,禁止INT0中断;EX0=1,允许INT1中断。特殊功能寄存
19、器TMOD为定时器的方式控制寄存器,寄存器中每位的定义如图2-3所示。高4位用于定时器1,低4位用于定时器0。图2-3 TMOD定时器方式寄存器表2-2 工作方式选择其中:M1、M0 用来确定所选的工作方式,如表2-2所示。C/T 定时器方式或计数器方式选择位。C/T=1 时,为计数器方式;C/T=0 时,为定时器方式。GATE 定时器/计数器运行控制位,用来确定对应的外部中断请求引脚(INT0,INT1)是否参与T0或T1的操作控制。当GATE=0时,只要定时器控制寄存器TCON中的TR0(或TR1)被置1时,T0(或T1)被允许开始计数(TCON各位含义见后面叙述);当GATE=1时,不仅
20、要TCON中TR0或TR1置位;还需要P3口的INT0或INTl引脚为高电平;才允许计数。特殊功能寄存器 TCON用于控制定时器的操作及对定时器中断的控制。其各位定义如图2-4所示。其中D0D3位与外部中断有关。图2-4 TCON 寄存器TR0、TR1:定时器T0、T1的运行控制位。该位置1或清0用来实现启动计数或停止计数。TF0、TF1:定时器T0、T1的溢出中断标志位。当T0计数溢出时由硬件自动置1;在CPU中断处理时由硬件清为0;TMOD和TCON寄存器在复位时其每一位均清零。本设计中中断寄存器和定时器配合使用,精确定时1ms。使用定时器中断模式之前,要对定时器进行初始化,即要确定定时器
21、的工作模式、初值、开中断和打开定时器。2.2 I/O扩展芯片图2-5 74HC595逻辑表本设计使 用74HC595来扩展并行I/O口,节约单片机资源。其逻辑电路图如2-5所示。74HC595 内含8 位串入、串/并出移位寄存器和8位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入 (SCLK和 SLCK) , 都是上升沿有效。当 SCLK从低到高电平跳变时, 串行输入数据 (SDA) 移入寄存器; 当SLCK从低到高电平跳变时, 寄存器的数据置入锁存器。清除端 (CLR) 的低电平只对移位寄存器复位 (QS为低电平) , 而对锁存器无影响。当输出允许控制 (EN) 为高电平时, 并行输出
22、(Q0Q7) 为高阻态, 而串行输出 (QS) 不受影响。74HC595 最多需要 5 根控制线, 即 SDA、SCLK、SLCK、CLR和 EN。图2-6 74HC595扩展I/O口电路 .- -. -. . . . ( .,- - - _/ ;-:- _-_ _U_n_. ooo_ | |_!_|_!_|_!_|_!_| | c(_ .(_ .(_ .( /, | |_|_|_|_| | ,_|,L_,|_|/;_()()=()() (o)(o) (o)(o)-(o)(o) 95本设计的I/O扩展部分的电路图如2-6所示。其中 CLR 可以直接接到高电平, 用软件来实现寄存器清零; EN
23、直接接到低电平,不需要软件改变亮度;把其余三根线和单片机的 I/ O口相接, 即可实现单片机对LED的控制。数据从SDA 口送入 74HC595 , 在每个 SCLK的上升沿, SDA口上的数据移入寄存器, 在 SCLK的第 9个上升沿, 数据开始从 QS 移出。如果把第一个74HC595的QS和第二个74HC595 的 SDA 相接, 数据即移入第二个74HC595中, 照此一个一个接下去, 可接任意多个。数据全部送完后, 给 SLCK一个上升沿, 寄存器中的数据即置入锁存器。此时如果 EN 为低电平, 数据即从并口Q0Q7 输出, 把Q0Q7 与LED的8 段相接, LED就可以实现显示了
24、。2.3 驱动芯片ULN2803属于高电压大电流达林顿晶体管系列,该芯片中的八个NPN达林顿管来驱动低逻辑电平数字电路和大电流高电压要求的灯,继电器,打印机和其它类似负载间的接口的理想器件。广泛应用于计算机、工业和消费类的产品中、所有器件的集电极开路输出和用于瞬变抑制的续流钳位二极管。ULN2803的设计与标准TTL兼容。其内部逻辑如图2-7所示。图2-7 ULN2803内部框图 该驱动芯片最大可以提供500mA的驱动电流,每个LED灯需要5-10mA的驱动电流,每行有16个LED灯,大约需要160mA的驱动电流,使用ULN2803可以满足设计要求。本设计驱动电路连接图2-8所示:图2-8 U
25、LN2803驱动电路2.4 WT588D语音模块本设计采用广州唯创科技有限公司的集单片机和语音电路于一体的可编辑语音芯片WT588D语音模块/芯片做为语音核心电路,实现语音播报功能。WT588D 系列语音单片机功能多、音质好、应用范围广、性能稳定,弥补了以往各类语音芯片应用领域狭小的缺陷。WT588D语音模块/芯片工作电压为DC2.8V5.5V,支持WAV、MP3、WMA等格式音频,有MP3 控制模式、按键控制模式(10 种按键触发控制方式)、按键组合控制模式、 并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制控制端口扩展输出模式,丰富的使用模式为开发人员的应用提供了很大便利条
26、件。本设计采用上升沿按键模式。该语音芯片支持 6K22KHz 采样率的音频加载,几乎可以将加载的音频音质完整无损的通过喇叭播放出来。WT588D 系列语音单片机能通过配套软件 WT588D voiceChip 轻而易举的做到语音组合播放、插入完美的陶冶静音。有220 个可控制的语音地址位,每个地址位能加载128 段语音可组合语音。WT588D 系列语音单片机模块内置SPI-FLASH 存储器,WT588D 系列语音单片机芯片可根据实 际用法外置 SPI-FLASH 存储器,只需更换 SPI-FLASH 的内容就可实现不同的控制模式、语音组合的切换。WT588D 系列语音单片机支持 SPI-FL
27、ASH 内容在线下载,选用WT588D模块还是芯片,模块本身带有最小系统应用电路,只需连接好音频输出,以及控制端,通电即可工作,应用较方便。WT588D语音芯片体积小,适合应用在要求电路板体积小的电路上。WT588D采用数码形式压缩音频,音域广,播放语音时无底噪音,声音还原度好,能与MP3相媲美。工业性能好,能确保WT588D在多种复杂的环境下正常的进行工作。通过配套的电脑操作软件,就能对WT588D完成所有功能的设置,WT588D软件人性化界面操作,功能编辑简单透彻。图2-9 语音模块原理图语音模块的硬件原理图如图2-9所示。本设计使用按键上升沿触发方式,当单片机收到播放声音信号时,单片机的
28、I/O口发送低电平,给语音模块的按键接口,也就是语音模块接收到单片机发送的低电平,由此信号触发语音模块发送指定的声音。2.5汉字显示点阵屏2.5.1 点阵屏模块本设计为4块8*8的单色点阵屏拼接而成。其中每块8*8单色点阵屏如图2-10所示。本点阵模块显示颜色为红色,点亮一个LED的电压为1.5V,电流为5-10mA。图2-10 8*8单色点阵屏图2-11 8*8点阵LED结构2.5.2 8*8 点阵工作原理说明从图2-11可以看出, 8*8 点阵共需要 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置 0 电平,某一行置 1电平,则相应的二极管就亮;因此
29、要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置 0 ,而行则采用扫描的方法来实现。 一根横柱:对应的行置 1 ,而列则采用扫描的方法来实现。2.6 电源电路该电路直接可以将输入的交流电源转化成+5V的直流电源。该整流桥能够通过的最大电流为2A;稳压管W7805能够将输入10V的电压降低为+5V,其最大工作电流为1.5A,在它的输入端并联一个0.33微法的电容,输出端并联一个0.1微法的电容,可以保证它正常工作;发光二极管串接一个10K的限流电阻作为电源工作指示灯。图2-12 电源电路2.7 单片机的时钟电路图2-14
30、单片机复位电路图2-13 单片机晶振电路MCS-51片内有一个高增益反相放大器,其输入端(XTAL1)和输出端(XTAL2)用于外接定时元件构成自激振荡电路。定时元件是由石英晶体和微调电容组成的并联谐振电路。电容C1和C2对频率有微调作用,电容容量的选择范围为5pF30pF.振荡频率的选择范围为1.2MHz12MHz。在本方案选择12MHZ石英晶体和20pF电容组成的并联谐振电路作为单片机的时钟电路。根据该电路可以知道单片机的指令周期为1微秒。单片机的时钟电路如图2-13所示。2.8 单片机的复位电路RST/VPD端的外部复位电路有两种工作方式:上电自动复位和按键手动复位。根据单片机可靠复位要
31、求,即要求RST/VPD端保持2个机器周期以上的高电平,本系统采用按键手动复位,相当于RST端直接接高电平,复位电路如图2-14所示: 2.9 原理框图图2-15电路为1块88点阵显示电路连接图。本设计利用一块8*8点阵来体会和掌握点阵屏的显示汉字的原理,为16*16点阵屏做理论依据和技术支持。 (1).把“单片机系统”区域中的 P1 端口用 8 芯排芯连接到“点阵模块”区域中的“ DR1 DR8 ”端口上; (2).把“单片机系统”区域中的 P3 端口用 8 芯排芯连接到“点阵模块”区域中的“ DC1 DC8 ”端口上; 图2-15 原理框图如果要显示大的图象可多个点阵拼在一起,只须将点阵的
32、行和行相串联,列和列相串联。用74HC595来控制单个行就可以了。(多个点阵屏的连接)多个点阵显示时,常将所有位的行选线并联在一起,由一个8位IO口控制,而列分别由另一个74HC595控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本设计将介绍一种利用单片机的一个并行IO口实现多个点阵显示的简单方法,图2-1所示是该电路的硬件原理图。其中,74HC595是8位并行输出门控串行输入移位寄存器。显示时,其显示数据以串行方式从STC89C54的P0.2口输出送往移位寄存器74HC595的SDA端,单片机的P0.1和P0.0输出74HC595的正确时序信号,然后将变成的并
33、行数据从输出端Q0Q7输出,以控制点阵的列。由STC89C54的P1P2口输出高低电平,以对行控制。2.10 整体硬件设计电路图2-16为设计的整体硬件电路图。本设计采用4块8*8单色点阵屏级联成一个16*16的点阵屏,来完成显示汉字的功能。以STC89C54为主控芯片,ULN2803为驱动芯片,控制行。74HC595为8位串入并出芯片,扩展I/O口,控制列。另外,还有单片机的最小系统等基本电路。为了提高单片机I/O口的驱动能力,本设计在P0口增加了10K的上拉电阻。图2-16 整体硬件电路图第三章 软件设计 3.1 点阵屏主程序流程图 初始化定时器1开中断、开定时器开始装载函数调用显示函数结
34、束 图3-1 主程序流程图本设计实现了多个汉字的循环滚动显示,程序流程图如图3-1所示。软件部分主要实现初始化包括各个寄存器的赋初值,清除74HC595控制线和数据线数据,给定时器1赋初值。主程序调用了两个主要的子函数:装载字型码函数和显示函数。装载函数实现在字型码表中把将要显示的字型码存放到32个字节的缓冲区中的功能。显示函数完成发送相对应的行列字型码的工作。3.2装载函数流程图装载函数的流程图如图3-2所示。装载函数实现把将要显示的字型码装载到一个32字节的缓冲区中,以备显示程序发送字型码。首先判断是否要装载数据,判断的依据在于定时器是否溢出(定时器1定时1ms,然后通过一个变量计数50次
35、溢出,总延时50ms),当到达设定的时间,通过一定的算法,获得装载数据的初始指针。依次装载16组数据,完成函数功能。具体算法:因为每32个字型码是一帧数据(一幅图像),每帧有16列,假定显示2个字符,字型码为64个8位二进制数据。则需要显示的总列数为48列,而移动的列数范围为0,31通过移动的列数来获得在字型码数组中显示的指针。依次装载数据结束开始判断是否装载数据获得显示指针图3-2 装载函数流程图图3-3 显示函数流程图结束开始发送列值发送行值判断是否发送完16次延时熄灭3.3显示函数流程图74HC595是8位串入并出的I/O扩展芯片。595发送列码,循环16次送完一帧列值,使列循环点亮。在
36、发送列值的同时发送相对应的存放在缓冲区的行值,使一帧图像显示。接着延时一段时间后,控制P1口和P2口的高低电平,使行的电压处于高电平状态,从而使整个点阵屏全灭,循环滚动显示。第四章 系统调试当完成前面所有工作后,进入最后环节系统调试。虽然前面的工作非常重要,但系统调试也是在整个工作中起着举足重轻的作用。通过它,我们可以查出硬件设计和软件设计中存在的错误及可能出现的不协调问题,以便修改设计。4.1 硬件调试硬件调试主要是电路线路的调试,检查所用的元器件型号是否正常。在此次调试中点阵屏是重点,因为这次用的是4块8*8的点阵屏,而不是16*16的点阵屏。4块点阵屏拼接起来的,左右2块点阵屏的行相互焊
37、接起来,上下2块点阵屏的列相互焊接起来,比较复杂。存在虚焊或不小心焊错的情况。在显示中发现有一列没有点亮,(所用元器件正常情下)经检查:.点阵屏的某一列虚焊 .列控制芯片74HC595的一端脚无输出信号,原因是面包板的一插孔存在断路现象,换插孔后,输出正常。4.2 软件调试本设计在制作的过程中遇到了很多问题,观测到了很多实验现象。通过上百次的调试,烧写程序,观看实验结果,认真逐一排错,最后才实现设计功能。软件的调试是通过对用户程序的编译,连接,执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程软件调试的一般方法是先独立后联机、先分块后组合、先单步后连续。在软件调试过程中通常会出现如下
38、的情况。4.2.1 程序跳转错这种错误是程序运行不到指定的地方或发生死循环,通常是用错变量或变量初值设置不正确等。具体现象是只显示第一个字,而不显示以后的字节。通过软件仿真发现字型码的显示指针数值存在误差,修改算法,确保缓冲区数据的正确性,来实现循环显示的功能。 4.2.2 显示汉字太闪烁 刚开始实现单字显示后,在设计循环显示时,发现汉字显示的太闪烁,突兀感太强,整体效果不流畅,有种说不出来的感觉。因为本设计采用动态扫描循环显示,在增加整帧的延时时间,使其显示的时间延长,相当于在熄灭的时间不变的情况下,显示时间和总时间均增加。反复调整时间,也不能达到预期效果。最后,采用同一个汉字显示60次后在
39、显示下一个汉字的方式,增加了显示时间,使显示自然,效果较好。4.2.3 显示汉字有重影通过编写附录1中的测试程序,发现点阵屏全亮(除去3个坏点外),说明硬件电路基本正确。编写简单的汉子循环显示程序时,发现单独显示一个程序时,不错,字迹清晰,美观。然而在换字(显示下一字符)后,部分行列有重影现象,具体说就是在显示第二个字的时候,有部分第一个字符亮的电平还接着亮,和第二个字符的字型码重叠显示,构成阴影效果。更改换字速度和延时时间,均不能达到消除重影的目的。后来在发送一个字型码后,延时一段时间,发送使整个屏全灭的行码,在发送下一个字符。根据此编程思想,解决了汉字重影显示的问题。4.2.4 增加语音模
40、块,调试有问题在设计的后期阶段,为了增加本设计的亮点,增加了语音播报功能。刚开始采用的是单片机三线式控制语音播报模块,实现同时触发语音播报和汉字两个功能。然而在根据WT588D语音芯片的时序,编写了控制播报函数,在主程序相应的位置根据播报函数,发送不同的地址码,实现语音播报功能。然而在整机调试过程中,发现,可以实现语音播报功能,然而整个汉字屏的产生了闪烁,由于设计是在滚动模式下有语音播报功能,所以不能采取在汉字循环显示模式下增加单个汉字显示的次数解决问题的办法。分析具体原因,发现根据语音芯片的时序,可知在发送一个地址码时,即完成一次调用播报函数,大概需要20ms的时间。本函数的占用的时间太长是
41、根本原因。最后更改语音模块的播放模式,采用按键控制播放模式(经过实际验证本模式不需要太长的时间就能触发语音播放)。用单片机的一个I/O端口发送高低电平给语音模块的按键输入端口。实现由单片机控制在点阵屏显示的同时,给语音模块发送播报信号。4.2.5不能实现汉字循环模式和滚动模式的切换在完成点阵屏汉字循环模式和滚动模式的程序后,发现单独使用任一模式,都能达到预期效果,然而在改写为根据按键选择显示模式后,却只显示汉字滚动模式,而不能实现汉字循环模式。刚开始一直认为是硬件问题,是没有把按键值送给单片机,更改按键电路,增加一个10K的上拉电阻,结果不变。分析错误原因,查找程序,发现在调用滚动模式时,有一
42、个内嵌的while(1)死循环,使程序一直处于滚动模式。将该处死循环该为判断按键是否有效的判断语句,使在按键无效时,点阵屏工作在滚动模式,在按键有效时,能停止滚动模式的工作,根据按键的选择值执行不同的显示模式。结束语本次毕业设计是利用8位单片机开发系统, 设计16*16汉字显示点阵屏系统,循环滚动显示老师,您辛苦了。 该设计方法已多次应用于学生单片机实验的显示电路和多种仪器显示系统中,在日常生活中经常见。 将该显示程序调入其它主程序中,即可完成显示功能。通过本次设计,发现自己的编程思想还不成熟,有些子程序编写的并不规范,可移植性不好。另外,本设计给人的视觉效果不好,有一种突兀的感觉,有待改正,
43、整体功能较简单,争取以后能开发出上位机软件。参考文献1 张志良编著.单片机原理及控制技术.北京:机械工业出版社,20062 陈明萤编著.8051单片机课程设计实训教材.北京:清华大学出版社,20043 张义,陈敌北编著,例说8051.北京:人民邮电出版社, 20064 魏泽鼎编著.单片机应用技术与实例.北京:电子工业出版社,2004 5 孙育才编著.单片微型计算机及其应用.南京:东南大学出版社,20046 沈德金, 陈粤初编著.单片机接口电路与应用程序实例.北京:航天航空大学出版社,1990. 7 李朝青编著.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998附录1 测
44、试程序以下是汉字点阵屏显示系统的测试程序,主要实现点阵屏的全亮和全灭,来检测点阵屏硬件设计的正确与否。检查点阵屏是否存在坏灯。SLCK BIT P0.0SCLK BIT P0.1SDA BIT P0.2 ORG 0000HSJMP STARTORG 0030HSTART:MOV R1,#16CLR SDACLR SCLKCLR SLCKSETB SDAD3:CLR SCLKNOPSETB SCLKDJNZ R1,D3SETB SLCK MOV P2,#0FFHMOV P2,#0FFHACALL DELAY_1SAJMP STARTDELAY_1S:MOV R6,#100D1:MOV R5,#40D2:MOV R4,#123NOPDJNZ R4