简单单片机汉字显示..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.课程设计目的 (1)
2.课程设计题目和要求 (1)
3.设计内容 (1)
3.1设计概述 (1)
3.2单元电路设计 (2)
3.2.1单片机选型 (2)
3.2.2 驱动单元 (5)
3.2.3 显示单元 (8)
4.系统的掉电,复位信号生成电路 (10)
5.电源 (11)
6.软件设计 (13)
7.设计总结 (16)
附录Ⅰ (18)
附录Ⅱ (27)
参考文献 (28)
1.课程设计目的
通过对课题的研究,更加深入,具体的复习所学的有关单片机的知识,从而实现学以致用的根本目标。在设计中,可以全面检查设计者的知识结构以及对知识的掌握情况,从而更好的促进设计者进行二次学习,巩固基础知识。通过设计,学生的动手能力得到提高,对单片机最小系统控制下的LED显示方式有了全面了解。本次设计主要应用的知识有:单片机I/O的应用,8位串行输入并行输出寄存器的应用以及LED汉字显示的扫描方式。
2.课程设计题目和要求
(1)课程设计题目:基于单片机的LED动态显示
(2)要求
○1用16×16 LED点阵显示,静态显示“同一个世界,同一个梦想”10个字。
○2硬件设计避免繁琐,达到所需功能即可。
○3软件设计采用模块化设计。
3.设计内容
3.1设计概述
本系统采用AT89C51单片机作控制器,整个电路主要由单片机控制及驱动显示电路、电源电路等部分组成。通常LED点阵显示应该准备用于存储点阵码的字库存储器,但是为了简化显示屏电路,降低成本,本系统在单片机部分不加字库存储器。而采用软件编程的方式生成字库,并通过扫描驱动的方式将字库中的信息反映到LED阵列的行和列上,从而实现字符的显示。工作前需要用过编程软件将要显示的字符以程序代码的形式生成字库并存入单片机的存储器中,以便系统工作时调用字库,完成显示。工作时,字库中的数据通过AT89 C51的P1.0管脚与P1.4管脚串行输出,数据传输到两组由两个74HC959级联而成的寄存器中。在数据的传输过程中P1.1管脚与P1.5管脚用来以输出脉冲的方式控制两组寄存器中数据的位移,P1.2管脚用来控制寄存器内数据的更新与输出,P1.3管脚用来将寄存器内的数据清零。采用扫描驱动时,两组寄存器内的数据以高低电平的形式同时输出,使得符合导通条件的LED导通发光,不断重复这样的发光过程并利用人眼的视觉惰性达到显示字符的目的(设计框图见图1)。
图1 LED显示系统设计框图
3.2单元电路设计
3.2.1单片机选型
单片机是微型计算机的一个重要分支,也是一种非常活跃且颇具有生命力的机种。它只需要与适当的软件及外部硬件相结合,便可构成一个单片机系统。基于单片机的系统设计简单,安装方便,适应性强,应用十分广泛。目前,随着科技的发展,C语言的运用越来越广,与汇编语言相比它具有编程灵活,移植性强等特点,因此C语言具有更好的适应性,所以C语言已被广泛应用于单片机的编程工作。鉴于以上因素,本系统选用支持C语言编程的AT89C51单片机作为核心部件。(如图2所示)
由于本次设计重点在于单片机的使用方法,对于单片机内部的结构知识要求相对较少,所以选择单片机型号时要注意所选单片机管脚的功能。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8 位单片机,片内含4KB的可反复擦写的只读程序存储器(单片机的可擦除只读存储器可以反复擦除1000次)和128KB的随机存储数据存储器,器件兼容MCS-51指令系统,片内置通用8 位中央处理器和Flash存储单元,32个I/0口线,两个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0H
静态逻辑操作。并支持多种软件可选的节电工作模式。空闲
z
方式时停止CPU的工作,但允许RAM,定时器/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作,直到下一个硬件复位。
图2 AT89C51芯片图及其电气原理图
AT89C51的P0口是一个8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能以吸收电流的方式驱动8 个TTL逻辑门电路,对端口写“1”时可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0接受指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。
其P1口是一个内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在Flash编程和程序校验期间,P1接受低8位地址。
P2口为一个带有内部上拉电阻的8位双向I/O口,P2的缓冲输出级可驱动4个TTL逻辑门电路门,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时(如执行MOV@DPTR指令时),P2口输出地址的高八位。在给出地址“1”时,它利用内部的上拉优势,输出电流。当对外部八位地址数据存储器进行读写时(如执行MOV@R1指令时),P2口输出其特殊功能寄存器的内容而且P2口线上的内容在整个访问期间保持不变。P2口在FLASH编程和校验时接收高八位地
址信号和控制信号。
P3口是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,例如P3.0 RXD(串行输入口),P3.1TXD(串行输出口),P3.2/INT0(外部中断0),P3.3/INT1(外部中断1),P3.4T0(记时器0外部输入),P3.5T1(记时器1外部输入),P3.6/WR(外部数据存储器写选通),P3.7/RD(外部数据存储器读选通),P3口同时为闪烁编程和编程校验接收一些控制信号。
除上述管脚外,AT89C51还有以下几个管脚:
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE 只有在执行MOVX,MOVC指令时ALE才起作用。此外,该引脚被略微拉高单片机执行外部程序时,应设置ALE无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。如果加密位LB1被编程,EA将内部锁定为RESET;当/EA端保持高电平时,此间访问内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
在熟悉各个管脚的功能后,就可以参照所学习过的8031单片机的使用方法进行系统的设计。系统工作时,P1.0管脚作为点阵数据引脚,其功能是将寄存器中的点阵码以串行通信的方式传送给控制行显示的两片位移寄存器