ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:194.91KB ,
资源ID:11742193      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11742193.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的点阵汉字显示附C语言程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的点阵汉字显示附C语言程序.docx

1、基于单片机的点阵汉字显示附C语言程序 湖南科技大学测控技术与仪器专业单 片 机 课 程 设 计 题 目 基于单片机的点阵汉字显示设计姓 名 学 号 指导教师 成 绩 _湖南科技大学机电工程学院二一五年十二月制摘要LED显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。作为一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更能给人一种美的享受。LED显示屏是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等各种信息。本设计是基于STC89C51单片机的16*16点阵式显

2、示屏,该LED显示屏能实现16*16个汉字,简单的显示图像,然后一直循环着显示下去。该设计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意不要超过负载能力。本次设计的作品体积小、功能多、方便实用、花费小,电路具有结构简单、操作方便、精度高、应用广泛的特点。关键词:LED,STC89C51单片机,显示屏摘要i第一章系统功能要求 11.1系统设计要求 1第二章方案论证 1 2.1 方案论证 1第三章系统硬件电路设计 13.1 STC89C51芯片的介绍 13.1.1 系统单片机选型 13.1.2 STC89C51引脚功能介绍 2 3.1.374LS595的总体特点和工作原

3、理3.2 LED点阵介绍23.2.1LED点阵23.3系统各硬件电路介绍 33.3.1系统电源电路设计介绍33.3.2复位电路33.3.3晶振电路43.4系统的总的原理图4第四章 系统程序设计 54.1基于PROTEUS的电路仿真54.2用PROTEUS绘制原理 54.3PROTEUS对单片机内核的仿真 6第五章 调试及性能分析 65.1系统的调试6参考文献7附录7第一章 设计要求1.1 系统设计要求1.以STC89C51系列的单片机为核心器件;组成一个点阵式汉字显示屏。2.显示屏由一块16x16 LED点阵显示器组成;可以依次显示13个汉字。3.通过编程能够随时对汉字进行修改、调整。第二章

4、方案论证2.1 方案论证以设计方案为指导思想选择合适的器件来实现这一思想,选择器件时要从功能和电气特性两方面来选择和论证。经过对比选择选定STC89C51单片机为核心控制器件,由74LS138作为字位电路器件,三极管2N5551和2N5401为驱动电路器件。论文列出了详细的器件参数和在系统中的连接使用方法。第三章 系统硬件电路设计3.1 AT89S51芯片的介绍(1)系统单片机选型单片机选择在整个系统中有着至关重要的作用,这里要选择一款低成本、高运算速度、内存大等特点的单片机,经过不断的查找资料,最后我们选择了STC89C51作为主控芯片。STC89C51是一个低功耗,高性能CMOS 8位单片

5、机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次以上的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。STC89C51芯片具有以下特性:指令与8051完全兼容;8KB片内Flash程序存储器;时钟频率为033MHz;128字节片内随机读写存储器(RAM);32个可编程输入/输出引脚;2个16位定时/计数器;2个外

6、部中断,1个串口中断,3个定时器中断AT89S51有32个可编程IO,1个VCC接口,1个GND接口,1个复位引脚接口,还有2个晶振接口。(2)STC89C51引脚功能介绍1)VCC:供电电压。2)GND:接地。3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电

7、流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的

8、内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。7)P3口也可作为AT89C51的一些特殊功能口,如下表所示:8)口管脚 备选功能9)P3.0 RXD(串行输入口)10)P3.1 TXD(串行输出口)11)P3.2 /INT0(外部中断0)12)P3.3 /INT1(外部中断1)13)P3.4 T0(记时器0外部输入)14)P3.5 T1(记时器1外部输入)

9、15)P3.6 /WR(外部数据存储器写选通)16)P3.7 /RD(外部数据存储器读选通)17)P3口同时为闪烁编程和编程校验接收一些控制信号。18)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。19)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此

10、时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。20)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。21)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。22)XTAL1:反向

11、振荡放大器的输入及内部时钟工作电路的输入。23)XTAL2:来自反向振荡器的输出。(3)74LS595的总体特点和工作原理1)总体特点:74LS595是8位串行输入转并行输出移位寄存器,三态输出功能,具有数据存储寄存器,移位寄存器和存储器是分别的时钟。数据在SHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。2)工作原理 每当SHcp上升沿到来时, Ds引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会

12、向左移一位,同时Q7也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;然后当STcp上升沿到来时,移位寄存器的值将会被锁存到锁存器里,并从Q17引脚输出。74LS595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,点阵没有闪烁感。74HC595在5V供电的时候能够达到30MHz的时钟速度,每个并行输出端口均能承受20mA的灌电流和拉电流。这个特点保证了不用增加额外的扩流电路即可轻松的驱动LED。它输入端允许500nS的上升(下降)时间,对严重畸形的时钟脉冲仍能检测。这样就可以容纳较大的

13、传输线对地电容,使本设计的抗干扰能力增强。3.2 LED点阵介绍(1)LED点阵88单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。本设计是一种实用的汉字显示屏的制作,制作的是双色点阵。考虑到元器件的易购性,没有使用88的点阵发光二极管模块,而是直接使用了256个高亮度发光管,组成了16行16 列的发光点阵。实际使用时可以根据这个原理自行扩充显示的字数。对比下面的88单色点阵和88双色点阵可以看出,其实88双色点阵就是两块88单色点阵组合在一起的。要实现用两种颜色显示,只要在电路的设计中适当的连线就可以了。88单色点阵 LED 结构如下图3.1所示。图3.1 88单

14、色点阵 LED 结构3.3系统各硬件电路介绍(1)电源电路图3.2电源电路(2)复位电路图3.3复位电路图3.4为系统复位电路,为确保系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般单片机电路正常工作需要供电电源为5V5%,即4.755.25V。由于单片机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,单片机电路开始正常工作。这种复位电路的工作原理是:VCC上电时,C1充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C1充满,10K电阻上电流降为0,电

15、压也为0,使得单片机进入工作状态。工作期间,按下S1,C1放电。S1松手,C1又充电,在10K电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。(3)晶振电路图3.4晶振电路每个单片机系统里都有晶振,全称叫晶体震荡器,在单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快,如图,在晶振两边添加两个30pF(27-33pF)电容,使震荡更加稳定。震荡电路接在AT89S52单片机的18、19两个引脚上,给单片机提供震荡信号。3.4系统的总的原理图该系统主要由

16、单片机,电源,下载接口,晶振,三极管驱动,按键等组成。图3.5系统总原理图第四章 系统程序设计4.1基于PROTEUS的电路仿真Proteus 是英国 Labcenter electronics 公司开发的 EDA 工具软件。主要由原理布图的方法绘制电路并进行仿真的 ISIS 和 PCB 自动布线或人工布线电路仿真的 ARES 两个程序组成。Proteus 运行于 Windows 操作系统上, 可以动态实时仿真、分析 ( SPICE) 各种模拟器件和集成器件。针对微处理器及其外围电路,可以直接在基于原理图的虚拟原型上编程, 并实现软件代码级的调试, 配合其提供的仿真图表或虚拟仪器如示波器、逻辑

17、分析仪等可进行相应的测量与分析。借助Proteus的对CPU和外围电路强大的仿真能力以及丰富的资源库,可以有效地替代硬件仿真器进行先期的软硬件调试,等到仿真结果基本理想时再进行实际的硬件调试,这样的开发过程不仅高效,而且可以尽可能地减少损失,尤其对于解决实验室资源紧张的问题是一个很好的思路。4.2用PROTEUS 绘制原理图运行 Proteus 的 ISIS 程序后, 进入该仿真软件的主界面。主界面由菜单栏、工具栏、预览窗口、元件选择按钮、元件列表窗口、原理图绘制窗口和仿真进程控制按钮组成(如图1所示)。通过元件选择按钮 P (从库中选择元件命令) 命令, 在弹出的 Pick Devices

18、窗口中选择电路所需的元件, 放置元件并调整其相对位置, 对元件参数设置及元器件间连线, 完成单片机系统的硬件原理图绘制。4.3PROTEUS 对单片机内核的仿真在source 菜单的Define code generation tools 菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files 命令下,加入单片机硬件电路的对应程序(主要采用 Keil 进行程序编译)打开如图8所示的对话框。在 Program File 栏添加编译好的十六进制格式的程序文件8X8.hex,给AT89C51输入晶振频率,此处默认为12MHZ, 单击OK

19、 按钮完成程序添加工作, 下面就可以进行系统仿真了。Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况。因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义上讲Proteus仿真,基本接近与工程应用。第五章 调试及性能分析5.1系统的调试电路板实物做完以后,接下来的工作就是调试。这是理论指导实践最重要的一步。调试工作需要耐心与恒心。所以在调试过程中必须保持冷静的头脑,较强的电路分析能力。一个系统的调试需要软硬件结合调试。在软硬件结合调试的过程中所遇到的问题:(1)电子电路

20、的设计中对各种影响因素的考虑不够完全,比如在对过电压情况的处理中未作防范措施。(2)系统设计不够优化,有待改善。比如系统的超量程信号直接由单片机送入报警电路,没有设计保护电路再入单片机处理后送入报警电路。(3)没有扩展更多电路,如温度显示功能,通讯接口电路与上位机(PC机)进行通讯,上位机显示功能从而将大量的商品数据存于上位机,然后通过串口或并口通讯与电子称相连,达到远距离控制的目的。(4)对各种实用芯片价格了解不够,选择上任有欠缺,如所选的称重传感器价格较贵。参考文献1马维华.嵌入式系统原理及应用M.北京邮电大学出版社.2006年9月. 2粟梅,林旷.基于S3C44BOX的大型LED显示示系

21、统设计J.单片机与嵌入式系统的应用.2006年第2期 3霍利民,孙丽华.大型LED显示系统的设计与研制J.河北工业科技.1999年,总第56期第16卷. 4魏银库,陈建国,狄国伟.256级灰度LED点阵屏显示原理及基于FPGA的电路设计J.电子设计应用. 附录#include/头文件sbit shcp=P12;/数据输入时钟线 595的11脚sbit stcp=P11;/输出存储器锁存时钟线 595的12脚sbit ds=P10;/数据线 595的14脚sbit s1=P31;/按下暂停再暂按继续sbit s2=P32;/按下方向取反bit fx;/方向切换unsigned char alt;

22、/数据移动定时时间unsigned int net;/控制显示的字符unsigned int zong=244;/总字符 (所有的字数+1)*32 字数指的是汉字,字母、数字两个算一个数字unsigned char code tab=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x04,0x10,0x2

23、4,0x20,0x24,0x40,0x24,0xFC,0x24,0xA2,0xFD,0x22,0x26,0x22,0x24,0x42,0x2C,0x42,0x14,0x42,0x24,0x82,0x44,0x1E,0x04,0x00,0x04,0x00,0x00,0x00,/*老,0*/0x00,0x00,0x3F,0xE1,0x00,0x02,0x00,0x0C,0xFF,0xF0,0x00,0x00,0x40,0x00,0x47,0xF8,0x44,0x00,0x44,0x00,0x7F,0xFF,0x44,0x10,0x44,0x08,0x47,0xF0,0x40,0x00,0x00,0

24、x00,/*师,1*/0x04,0x02,0x08,0x0C,0x10,0x00,0x3F,0xEE,0xC4,0x01,0x08,0x81,0x11,0x11,0xE6,0x4D,0x20,0x21,0x2F,0xC1,0x20,0x01,0x24,0x07,0x2A,0x00,0x31,0x88,0x00,0x06,0x00,0x00,/*您,2*/0x02,0x00,0x02,0x20,0x22,0x20,0x22,0x20,0x2A,0x20,0x26,0x20,0xA2,0x20,0x63,0xFF,0x22,0x20,0x26,0x20,0x2A,0x20,0x22,0x20,0x

25、22,0x20,0x02,0x20,0x02,0x00,0x00,0x00,/*辛,3*/0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x3F,0xF9,0x22,0x21,0x22,0x21,0x22,0x2F,0xE2,0x21,0x22,0x21,0x22,0xF9,0x22,0x21,0x3F,0x21,0x00,0x21,0x00,0x21,0x00,0x00,0x00,/*苦,4*/0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x02,0x40,0x01,0x47,0xFE,0x44,0x0

26、0,0x48,0x00,0x50,0x00,0x60,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*了,5*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;void delay(unsigned int z)/延时子函数 unsigned char x; for(;z0;z-

27、) for(x=110;x0;x-);void writedata(unsigned char dat1,unsigned char dat2) /595显示子函数 unsigned char i; /CY存储移位之后的数据 CY进位标志位,单片机内部的寄存器 移位之后的数据就存在CY里面 for(i=0;i8;i+)/循环八次 dat1=dat11;/数据左移 ds=CY;/数据发送 shcp=1;/上升沿发生移位 shcp=0; for(i=0;i8;i+)/循环八次 dat2=dat21;/数据左移 ds=CY;/数据发送 shcp=1;/上升沿发生移位 shcp=0; stcp=0;

28、stcp=1;/上升沿将数据送到输出锁存器 stcp=0; void xianshi() /显示 char i,aa; for(i=0;i30)aa=0;/循环16次 清零 void main() /主函数 TMOD=0x01;/定时器0 模式1 16位定时模式 TH0=(65536-10000)/256;/定时10.000ms TL0=(65536-10000)%256; ET0=1;/使能定时器0 EA=1;/开启总中断 TR0=1;/开始计数 while(1) /无限循环 xianshi(); /显示 if(s1=0)/检测按键 delay(30);/延时消除按键抖动 if(s1=0) TR0=TR0;/按下暂停 暂按继续 while(s1=0)xianshi();/等待按键松手 if(s2=0)/检测按键 delay(30);/延时消除按键抖动 if(s2=0) fx=fx;/方向取反 while(s2=0)xianshi();/等待按键松手 void timer0() interrup

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1