毕业设计 led显示系统设计(终稿)_第1页
毕业设计 led显示系统设计(终稿)_第2页
毕业设计 led显示系统设计(终稿)_第3页
毕业设计 led显示系统设计(终稿)_第4页
毕业设计 led显示系统设计(终稿)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

西安电力高等专科学校计算机工程_系_2010届毕业设计(论文)题目LED显示系统设计学号姓名专业计算机控制技术专业班级44071指导教师完成时间2010年6月日目录摘要2第一章LED点阵显示的背景和控制技术状况211LED点阵显示的背景312LED显示的控制技术状况3第二章开发环境简介421单片机的发展422STC89C52的硬件结构5221STC89C52芯片引脚介绍5222STC89C52单片机的存储器结构6223STC89C52单片机的输入/输出端口8224STC89C52单片机的复位电路1123VC60简介1224KEILC51简介12第三章点阵汉字编码和汉字显示原理1631汉字字模1632汉字显示原理17第四章LED显示系统硬件设计1841列扫描模块1842硬件设计19第五章LED显示系统软件的设计2251设计流程2352软件程序实现23第六章程序下载调试32设计总结35参考文献36摘要随着电子信息技术和智能化的不断深入,人们的生活、工作等各个方面发生了巨大的变化。近些年,单片机的开发应用已成为高科技和工程领域的一项重要内容。因为它具有集成度高、体积小、功耗低、控制功能强、速度快、抗干扰能力强、易于开发等诸多优点。因此,从导弹的导航装置到飞机上各种仪表的控制;从计算机的网络通讯与数据传输到工业自动化过程的实时控制和数据处理;以及我们生活中广泛使用的各种智能IC卡、电子宠物等都离不开单片机。在发达国家单片机技术开发应用发展很快,并取得了明显的经济效益和社会效益。在我国,单片机的应有进展也很快,特别是在工业控制、通信、智能化仪器、仪表、产品自动化、分布式控制系统中已取得了可喜的成果。近几年来我国LED显示的相关技术也取得了较快和较大的发展,早期时曾因LED材料器件的限制,LED显示屏的应用领域没有广泛展开,另一方面,显示屏控制技术基本上是通信控制方式,客观上影响了显示效果。所以导致早期的LED显示屏在国内很少,产品以红、绿双基色为主,控制方式为通信控制,灰度等级为单点四级调灰,产品的成本比较高。后来LED显示屏迅速发展,进入九十年代,全球信息产业高速增长,信息技术各个领域不断突破,LED显示屏在LED材料和控制技术方面也不断出现新的成果。蓝色LED镜片研制成功,全彩色LED显示屏进入市场电子计算机及微电子领域的技术发展,在显示屏控制技术领域出现了视频控制技术,显示屏的动态显示效果大大提高。这个阶段,LED显示屏在我国发展迅速,LED显示屏产业成为新兴的高科技产业。今天,LED显示屏应用领域更为广阔。第一章LED点阵显示的背景和控制技术状况11LED点阵显示的背景在当今现代信息化高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费多媒体类渗透。随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统的电视机成为人们享受和多媒体内容的中心。与传统显示设备相比,这种未来的巨大需求让大屏幕显示技术成为众人目光的焦点(1)、LED显示屏色彩丰富,显示方式变化多样(图形、文字、三维、二维动画、电视画面等)、亮度高、寿命长,是信息传播设施化的产品。(2)、LED显示屏是集光电子技术、微电子技术、计算机技术、信息处理技术于一体的高技术产品。可用来显示文字、计算机屏幕同步的图像。它以其超大画面、超强视觉、灵活多变的显示方式等独具一格的优势成为目前国际上使用最广泛的显示系统。(3)、LED显示屏广泛应用在金融证券、银行利率、商业广告、文化娱乐等方面,有巨大的社会效益和丰厚的经济效益。LED点阵显示屏的发展历史背景,其发展主要经历了三个阶段(1)、1990年以前LED显示屏的成长时期。一方面,收LED灯材料的限制,LED显示屏的应用领域没有广泛展开;另一方面,显示屏控制技术基本上是通讯控制方式,客观上影响了显示效果。这一时期的LED在国外应用较广,产品以红、绿双色为主,控制方式为通讯控制方式,灰度等级为4级调灰,成本较高。(2)、1990年1995年,这一段时LED迅速发展的时期,进入90年代,全球信息产业高速增长,信息技术各个领域不断突破,LED显示屏在LED材料和控制技术方面也不断出现新成果。蓝色LED晶研制成功、全色彩LED进入市场。电子计算机和微电子技术的发展,在显示屏控制领域出现了视频控制技术,显示屏灰度等级实现16级灰度和64级灰度调灰,显示屏的动态显示效果大大提高,产品设计领域更加广泛,特别是1993年的证券股票业的发展更引发了LED显示屏市场的大幅增长,LED显示屏在平板显示领域的主流产品局面基本形成。LED技术产业成为新兴的高科技产业。(3)、1995年以来,LED显示屏的发展进入一个总体稳步提高产业格局调整完善的时期。进入新世纪,光电子产业得到广泛重视。中国加入WTO、北京申奥成功等成为LED显示产业发展的契机。12LED显示屏控制技术的情况显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测与远程控制技术等。121串行传输与并行传输技术LED显示屏的数据传输方式主要有串行和并行两种。目前普遍采用串行控制技术。显示屏每个单元内部的不同驱动电路和各级联单元之间,每个时钟仅传送一位数据。采用这种方式的驱动IC种类较多,不同显示单元之间的连线较少,可减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比。122动态扫描与静态锁存技术LED显示屏控制系统实现显示信息的刷新技术有动态扫描和静态锁存两种方式。根据共用一行驱动寄存器的发光二极管像素数目,分为1/4,1/16扫描等。室外显示屏基本上采用静态锁存技术,即每一个发光二极管都对应有一个驱动寄存器,无需分时工作,从而保证了每一个发光二极管的亮度占空比为100。动态扫描法可以大大减少控制器的I/O口,因此应用较广。第二章STC89C52单片机简介21单片机的发展单片机是单片微型计算机(SINGLECHIPMICROCOMPUTER)的简称。单片机是把微型计算机的各个功能部件(中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时/计数器以及串行通信接口)集成在一块芯片上,构成一个完整的计算机。其发展经过了以下几个阶段(1)、1971年INTEL公司首次推出4位机。(2)、1976年INTEL公司推出8位机。(3)、1980年INTER公司推出MCS51单片机,其后INTER、PHILIPS、SIEMENS、ATMEL等公司相继推出名目繁多的单片机。(4)、1983年INTER公司推出16位机。(5)、20世纪末32位单片机已进入使用阶段。22STC89C52的硬件结构221STC89C52芯片引脚介绍STC89C52是一种低功耗、高性能CMOS8位微控制器,其基本特征如下1)、8位CPU,含片内振荡器。2)、4KB的程序存储器ROM3)、128B的数据存储器RAM4、64KB的外部程序存储器寻址能力。5)、64KB外部数据存储器寻址能力。6)、32根输入输出(I/O)线。7)、2个16位定时、计数器。8)、1个全双工异步串行口。9)、21个特殊功能寄存器。10)、5个中断源、2个优先级。11)、具有位寻址功能。其内部主要由片内RAM1288、片内ROM4K8、串行口、定时器、P0P3组成的I/O端口以及由运算器和控制器组成的中央处理器组成。其中,中央处理器(CPU)、存储器(ROM和RAM)和输入输出端口这三部分则由内部总线紧密的联系在一起。可以看出,单片机的组成与一般微型计算机是相同的。以下是单片机的外部引脚及其功能40个引脚按其功能可分为以下三部分1)、电源及时钟引脚VCC(40脚)接5V电源;VSS(20脚)接地。XTAL1(19脚)接外部晶体的一个脚。在单片机内部,它是一个反相放大器的输入端。这个放大器构成了片内振荡器。当采用外接晶体振荡器时,此引脚应接地。XTAL2(18脚)接外部晶体的另一端,在单片机内部接反相放大器的输出端。若采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接入内部时钟发生器的输入端。2)、控制引脚RST/VPD(9脚)当振荡器运行时,在此引脚外加上两个机器周期的高电平将使单片机复位(RST)。掉电期间,此引脚可接上备用电源(VPD),以保持内部RAM的数据。ALE/PROG30脚党访问单片机外部存储器时,ALE(地址锁存允许)输出脉冲的负跳沿用于16位地址的低8位的锁存信号。即使不访问外部锁存器,ALE仍然有正脉冲信号输出,此频率约为时钟振荡频率的1/6。PSEN(29脚)此脚的输出是单片机访问外部程序存储器的读选通信号。再由外部程序存储器取指令(或常数)期间,每个机器周期PSEN两次有效。但在此期间,每当访问外部数据存储器时(即从程序存储器取来的指令是MOVX类指令),这两次有效的PSEN信号将不出现。EA/VPP(31脚)当EA端保持高电平时,单片机访问内部程序存储器,当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。222STC89C52单片机的存储器结构STC89C52的存储器可划分为五类1)、程序存储器用于存放编好的程序和表格常数。在MCS51指令系统中,同外部程序存储器打交道的指令仅有两条MOVCA,ADPTRMOVCA,APC2、内部数据存储器MCS51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即数据存储器空间(低128单元);特殊功能寄存器空间(高128单元);这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面我们就来详细的与大家讲解一下低128单元片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。从上图中我们可以看到,8051单片机片内RAM共有256个单元(00HFFH),这256个单元共分为两部分。其一是地址从00H7FH单元(共128个字节)为用户数据RAM。从80HFFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从图1中可清楚地看出它们的结构分布。A、通用寄存器区(00H1FH)在00H1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0R7,那么在程序中怎么区分和使用它们呢聪明的INTEL工程师们又安排了一个寄存器程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如下表所示。惹程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU在复位后,选中第0组工作寄存器。B、位寻址区(20H2FH)片内RAM的20H2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H7FH。C、用户RAM区(30H7FH)在片内RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区了,地址单元为30H7FH。D、特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带号的可位寻址。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPUPSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS51共有P0P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能。223STC89C52单片机的输入/输出端口8051有4组8位I/O口P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这几个口线P0口和P2口图为P0口和P2口其中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,另外还有一个数据输出的驱动和控制电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。如下图P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8AB15,P0口由ALE选通作为地址总线的低8位输出口AB0AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为21664K,所以8051最大可外接64KB的程序存储器和数据存储器。P1口右图为P1口其中一位的电路图,P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q非0,T2截止,内上拉电阻将电位拉至“1“,此时该口输出为1,当0写入锁存器,Q非1,T2导通,输出则为0。作为输入口时,锁存器置1,Q非0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口。需要说明的是,作为输入口使用时,有两种情况,其一是首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读修改写操作,象JBC逻辑判断、CPL取反、INC递增、DEC递减、ANL与逻辑和ORL逻辑或指令均属于这类操作。其二是读P1口线状态时,打开三态门G2,将外部状态读入CPU。P3口的电路如下图所示,P3口为准双向口,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以说明。P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。我们着重讨论P3口的第二功能,P3口的第二功能各管脚定义如下P30串行输入口RXDP31串行输出口TXDP32外中断0INT0P33外中断1INT1P34定时/计数器0的外部输入口T0P35定时/计数器1的外部输入口T1P36外部数据存储器写选通WRP37外部数据存储器读选通RD对于第二功能为输出引脚,当作I/O口使用时,第二功能信号线应保持高电平,与非门开通,以维持从锁存器到输出口数据输出通路畅通无阻。而当作第二功能口线使用时,该位的锁存器置高电平,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功能信号即从这个缓冲器的输出端取得。而作为I/O口线输入端时,取自三态缓冲器的输出端。这样,不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线均应置“1”。P3口。224STC89C52单片机的复位电路单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期24个振荡周期以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有手动按钮复位和上电复位1、手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。2、上电复位AT89C51的上电复位电路只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1F。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着VCC对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,VCC的上升时间约为10MS,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHZ,起振时间为1MS;晶振频率为1MHZ,起振时间则为10MS。在图2的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“L”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。3、积分型上电复位常用的上电或开关复位电路上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。23VC60简介VC60是MICROSOFT公司推出的一个基于WINDOWS系统平台、可视化的集成开发环境,它的源程序按C语言的要求编写,并加入了微软提供的功能强大的MFCMICROSOFTFOUNDATIONCLASS类库。MFC中封装了大部分WINDOWSAPI函数和WINDOWS控件,它包含的功能涉及到整个WINDOWS操作系统。MFC不仅给用户提供了WINDOWS图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准WINDOWS应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。24KEILC51简介KEILC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。UVISION2集成开发环境1)、项目管理工程PROJECT是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的UVISION2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。UVISION2包含一个器件数据库DEVICEDATABASE,可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含片上存储器和外围设备的信息,扩展数据指针EXTRADATAPOINTER或者加速器MATHACCELERATOR的特性。UVISION2可以为片外存储器产生必要的连接选项确定起始地址和规模。2)、集成功能UVISION2的强大功能有助于用户按期完工。A集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。B文件寻找功能在特定文件中执行全局文件搜索。C工具菜单允许在V2集成开发环境下启动用户功能。D可配置SVCS接口提供对版本控制系统的入口。EPCLINT接口对应用程序代码进行深层语法分析。FINFINEON的EASYCASE接口集成块集代码产生。GINFINEON的DAVE功能协助用户的CPU和外部程序。DAVE工程可被直接输入UVISION2编辑器和调试器1)、源代码编辑器UVISION2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。2)、断点UVISION2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。在属性框ATTRIBUTESCOLUMN中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。3)、调试函数语言UVISION2中,你可以编写或使用类似C的数语言进行调试。A内部函数如PRINTF,MEMSET,RAND及其它功能的函数。B信号函数模拟产生CPU的模拟信号和脉冲信号SIMULATEANALOGANDDIGITALINPUTSTOCPU。C用户函数扩展指令范围,合并重复动作。4)、变量和存储器用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整A当前函数的局部变量B用户在两个不同WATCH窗口页面上的自定义变量C堆栈调用CALLSTACK页面上的调用记录(树)CALLTREED不同格式的四个存储区C51编译器KEILC51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。1)、存储器和特殊功能寄存器的存取C51编译器可以实现对8051系列所有资源的操作。SFR的存取由SFR和SBIT两个关键字来提供。变量可旋转到任一个地址空间。用关键字AT还能把变量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户在原有64KROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。2)、中断功能C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。3)、灵活的指针C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需12字节,因此,指针存取非常迅速。测试程序UVISION2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能DDE界面和SHIFT语言支持自动程序测试1)、和外设模拟装置UVISION2为8051及衍生产品提供了高速模拟功能和片上扩展口在对话框内可直接观察和修改值,也可以用预装的CLIKE宏指令书写符号函数来提供动态输入。2)、目标监控器UVISION2含一个可配置的监控器,可测试目标器件上的软件体。监控器用UVISION2的调试器直接工作,可支持代码区。它要求目标系统具备6字节堆栈空间,6KB的代码和256字节XDATARAM。3)、MCB517/251启动工具包在开始一项8051工程时,MCB启动工具会对你有很大帮助。每一个启动工具包括一套2K字节的开发工具和许多可快速运行的举例程序。用户可在检测8051性能的同时,查看开发工具的可行性。MCB517AC板含高性能INFINEONC517A单片机,它提供标准8052外围设备和A/D转换器,PWM,搜索比较,8位数据指针,一个高速运算单元。同时包含对81C90CAN控制器和代码区的支持。第三章点阵汉字编码和汉字显示原理31汉字字模我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。一般我们把它拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的P00P07口。方向为P00到P07,显示汉字“大”时,P05点亮,由上往下排列,为P00灭,P01灭,P02灭P03灭,P04灭,P05亮,P06灭,P07灭。即二进制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汉字库里,汉字的代码是横向取得的,所以在编写汉字提取程序时要将所要显示的汉字通过矩阵转置编程转换成与硬件电路图相符的代码,即转换成以以上方法取出来的字模代码。因此可以得到“大“的扫描代码如下大DB0X04,0X00,0X04,0X02,0X04,0X02,0X04,0X04DB0X04,0X08,0X04,0X30,0X05,0XC0,0XFE,0X00DB0X05,0X80,0X04,0X60,0X04,0X10,0X04,0X08DB0X04,0X04,0X0C,0X06,0X04,0X04,0X00,0X0011111111111111111111111111111111111111111由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。32字模提取原理使用汉字的点阵显示,需要提取汉字字模。汉字的点阵字模是从点阵字库文件中提取出来的。例如常用的1616点阵HZKL6文件,1212点阵HZKL2文件等等,下面以HZKL6文件为例,分析取得汉字点阵字模的方法。HZKL6文件是按照GB231280标准,也就是通常所说的国标码或区位码的标准排列的。国标码分为94个区,每个区94个位,所以也称为区位码。其中OL09区为符号、数字区,1687区为汉字区。而1015区、8894区是空白区域。在计算机处理汉字和ASCII字符时,使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称为汉字的内码。其中第一个字节的值为区号加上3220H,第二个字节的值为位号加上3220H。为了与ASCII符区别开,表示汉字的两个字节的最高位都是1,也就是两个字节的值都又加上了12880H。这样,通过汉字的内码,就可以计算出汉字的区位码。它与区位码的关系为高字节一160区码,低字节一160位码再由区位码获得汉字字模。根据区号和位号可以得到汉字字模在文件中的位置起始地址位置94区码一1位码一1一个点阵字模的字节数使用16“16点阵。字模中每一点使用一个二进制位BIT表示,如果是1,则说明此处有点,若是0,则说明没有。这样,一个1616点阵的汉字总共需要16“16832个字节表示。字模的表示顺序为先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16“16个点,例如上面的“大“字就是这样提取出来的。第四章LED显示系统硬件设计41列扫描模块本设计的列扫描驱动电路采用74HC154芯片实现。本芯片是一个有24个引脚的416译码器。该译码器采用先进的CMOS技术,并适合内存地址译码和数据路由应用。它抗噪声能力强,低功耗,并与低电压TTL电路兼容。其管脚图如下引脚说明如下1111317输出端。(OUTPUTSACTIVELOW)12GND电源地(GROUND0V)1819使能输入端ENABLEINPUTSACTIVELOW2023地址输入端ADDRESSINPUTS24VCC电源正POSITIVESUPPLYVOLTAGE其输入、输出对应表如下其中H高电平(HIGHVOLTAGELEVEL)L低电平(LOWVOLTAGELEVEL)X任意电平(DONTCARE)只要控制端G1、G2任意一个为高电平,A、B、C、D任意电平输入都无效。42硬件设计本产品采用以STC89C52单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路74HCL54、1616LED点阵5部分组成,如图1所示。其中,AT89C51是一种带4KB闪烁可编程可擦除只读存储器FALSHPROGRAMMABLEANDERASABLEREADONLYMEMORY,FPEROM的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一5L指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1000次写擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C5L的18,19脚的时钟端XTAIL及XTAL2以及12MHZ晶振X、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K组成,分别接至AT89C51的RST复位输入端。LED点阵显示屏采用1616共256个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把行列总线接在单片机的I0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入89S51单片机,则需要使用32条I0口,这样会造成I0口资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由416线译码器74HCL54来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO口资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用47K排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的通电后由于电阻R,电容C1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C、C3、X以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线高电平驱动,同时在P11,P12,P13,P14接口输出列选扫描信号低电平驱动,从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。其硬件线路图和实物连接图如下实物连接图在实物连线图中,P1口的P10P14接列选信号,其中P10接译码器的G2信号、P11、P12、P13、P14分别接译码器的A、B、C、D端。P0、P2口控制行选信号。由USB口转串口提供电源。第五章LED显示系统软件的设计51设计流程图主程序的流程图如下图所示开始设1帧显示时间设片选信号及其数字指针查汉字上部数据及其显示查汉字下部数据及其显示延时100MS关显示并调整指针是否显示完汉字1帧时间是否到结束NNYY52软件程序实现1)、在汉字库中提取汉字程序/1616点阵汉字库转LED点阵/INCLUDEINCLUDEUNSIGNEDCHARS9,B3VOIDCHANGE2_16INTI0,J0,K1,RESULT0FORI7I0IIFSI1RESULT1KMAT2IJK1ELSEMAT2IJKJ1FORK0KKMAT2IJK71ELSEMAT2IJK7/对1616点阵数组转置/FORI0I0IIPRINTF“C“,BIIFPRINTFF,“C“,BIIPRINTF“,0X“FPRINTFF,“,0X“K0SKMAT3IJKIFJ16FORII1II0IIPRINTF“C“,BIIFPRINTFF,“C“,BIIIFI140/每输出8个16进制数换一行/PRINTF“H“PRINTF“N“FPRINTFF,“N“ELSEPRINTF“,0X“FPRINTFF,“,0X“K0/在显示器上显示转置后汉字点阵PRINTF“N“FPRINTFF,“N“FORI0I16IFORJ0J16JPRINTF“C“,MAT3IJFPRINTFF,“C“,MAT3IJPRINTF“N“FPRINTFF,“N“FCLOSEFPRINTF“继续进行吗(Y/N)“IFGETCHARN|GETCHARNBREAKRETURN12)、用汇编实现控制点阵的程序ORG0000HAJMPLOOPORG0030HHZSEQU0E0H控制汉字个数的变量LOOPMOVA,0FFH开机初始化,清除画面MOVP0,A清除P0口ANLP2,00H清除P2口MOVR2,200D100MSMOVR3,250延时100毫秒DJNZR3,DJNZR2,D100MSMOV20H,00H取码指针的初值L100MOVR1,60每个字的停留时间L16MOVR6,16每个字16个码MOVR4,00H扫描指针清零MOVR0,20H取码指针存入R0L3MOVA,R4扫描指针存入AMOVDPTR,TABLE1MOVCA,ADPTRMOVP1,A扫描输出INCR4扫描指针加1,扫描下一个MOVA,R0取码指针存入AMOVDPTR,TABLE2取数据表的上半部分的代码MOVCA,ADPTRMOVP0,A输出到P0INCR0取码指针加1,取下一个码。MOVA,R0MOVDPTR,TABLE2取数据表下半部份的代码MOVCA,ADPTRMOVP2,A输出到P2口INCR0MOVR3,02扫描1毫秒DELAY2MOVR5,248DJNZR5,DJNZR3,DELAY2MOVA,0FFH清除屏幕MOVP0,AANLP2,00HDJNZR6,L3一个字16个码是否完成DJNZR1,L16每个字的停留时间是否到了MOV20H,R0取码指针存入20HCJNER0,HZS,L100N个字3232N个码是否完成LCALLZUOYI调用左移子程序LCALLYOUYIJMPLOOP反复循环/左移子程序/ZUOYIMOVR7,00HMOVA,0FFH开机初始化,清除画面MOVP0,A清除P0口ANLP2,00H清除P2口MOVR2,200D100MS1MOVR3,250延时100毫秒DJNZR3,DJNZR2,D100MS1MOV20H,00H取码指针的初值L1001MOVR1,40每个字的停留时间L161MOVR6,16每个字16个码MOVR4,00H扫描指针清零MOVR0,20H取码指针存入R0L31MOVA,R4扫描指针存入AMOVDPTR,TABLE1MOVCA,ADPTRMOVP1,A扫描输出INCR4扫描指针加1,扫描下一个MOVA,R0取码指针存入AMOVDPTR,TABLE2取数据表的上半部分的代码MOVCA,ADPTRMOVP0,A输出到P0INCR0取码指针加1,取下一个码。MOVA,R0MOVDPTR,TABLE2取数据表下半部份的代码MOVCA,ADPTRMOVP2,A输出到P2口INCR0MOVR3,02扫描1毫秒DELAY21MOVR5,248DJNZR5,DJNZR3,DELAY21MOVA,0FFH清除屏幕MOVP0,AANLP2,00HDJNZR6,L31一个字16个码是否完成DJNZR1,L161每个字的停留时间是否到了INCR7INCR7MOV20H,R7取码指针存入20HCJNER0,HZS,L1001N个字3232N个码是否完成/右移子程序/YOUYIMOVR7,HZSMOVA,0FFH开机初始化,清除画面MOVP0,A清除P0口ANLP2,00H清除P2口MOVR2,200D100MS2MOVR3,250延时100毫秒DJNZR3,DJNZR2,D100MS2MOV20H,00H取码指针的初值L1002MOVR1,40每个字的停留时间L162MOVR6,16每个字16个码MOVR4,00H扫描指针清零MOVR0,20H取码指针存入R0L32MOVA,R4扫描指针存入AMOVDPTR,TABLE1MOVCA,ADPTRMOVP1,A扫描输出INCR4扫描指针加1,扫描下一个MOVA,R0取码指针存入AMOVDPTR,TABLE2取数据表的上半部分的代码MOVCA,ADPTRMOVP0,A输出到P0INCR0取码指针加1,取下一个码。MOVA,R0MOVDPTR,TABLE2取数据表下半部份的代码MOVCA,ADPTRMOVP2,A输出到P2口INCR0MOVR3,02扫描1毫秒DELAY22MOVR5,248DJNZR5,DJNZR3,DELAY22MOVA,0FFH清除屏幕MOVP0,AANLP2,00HDJNZR6,L32一个字16个码是否完成DJNZR1,L162每个字的停留时间是否到了DECR7DECR7MOV20H,R7取码指针存入20HCJNER0,00H,L1002N个字3232N个码是否完成TABLE1DB0XE0,0XE2,0XE4,0XE6,0XE8,0XEA,0XEC,0XEEDB0XF0,0XF2,0XF4,0XF6,0XF8,0XFA,0XFC,0XFE列扫描字码TABLE2书DB0X00,0X80,0X10,0X80,0X10,0X80,0X10,0X80DB0X10,0X80,0X10,0X80,0XFF,0XFF,0X10,0X80DB0X10,0X80,0X10,0X80,0X1F,0X84,0X40,0X82DB0X20,0X84,0X30,0XF8,0X00,0X00,0X00,0X00山DB0X00,0X00,0X0F,0XFE,0X00,0X04,0X00,0X04DB0X00,0X04,0X00,0X04,0X00,0X04,0XFF,0XFCDB0X00,0X04,0X00,0X04,0X00,0X04,0X00,0X04DB0X00,0X04,0X0F,0XFE,0X00,0X00,0X00,0X00有DB0X

温馨提示

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

评论

0/150

提交评论