基于89C51的公交车汉字条屏设计.docx
《基于89C51的公交车汉字条屏设计.docx》由会员分享,可在线阅读,更多相关《基于89C51的公交车汉字条屏设计.docx(33页珍藏版)》请在冰点文库上搜索。
![基于89C51的公交车汉字条屏设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/26/92a7f04d-a2a0-4c6d-abcd-71ab13c6e038/92a7f04d-a2a0-4c6d-abcd-71ab13c6e0381.gif)
基于89C51的公交车汉字条屏设计
单片机系统
课程设计
成绩评定表
设计课题:
基于89C51的公交车汉字条屏设计
学院名称:
电气工程学院
专业班级:
自动1302
学生姓名:
张鹏涛
学号:
201323020219
指导教师:
王黎
设计地点:
31-505
设计时间:
2015-12-28~2016-01-08
指导教师意见:
成绩:
签名:
年月日
单片机系统
课程设计
课程设计名称:
基于89C51的公交车汉字条屏设计
专业班级:
自动1302
学生姓名:
张鹏涛
学号:
201323020219
指导教师:
王黎
课程设计地点:
31-505
课程设计时间:
2015-12-28~2016-01-08
单片机系统课程设计任务书
学生姓名
张鹏涛
专业班级
自动1302
学号
201323020219
题目
基于51单片机的公交车汉字条屏设计
课题性质
工程设计
课题来源
自拟
指导教师
王黎
主要内容
(参数)
1、利用89C51单片机设计一个公交车条屏汉字显示,实现功能如下:
2、通过单片机的I/O口来驱动74HC595点亮16*16LED灯。
3、能够动态向左移动显示。
4、具备复位功能。
任务要求
(进度)
第1-2天:
熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5-6天:
软件设计,编写程序。
第7-8天:
实验室调试。
第9-10天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3]阎石.数字电路技术基础(第五版).北京:
高等教育出版社,2006
审查意见
系(教研室)主任签字:
年月日
摘要:
单片微型计算机简称单片机。
1971年Intel公司的霍夫研制成功,世界上第一块4位微处理芯片Intel4004。
标志着第一代微处理器问世,微处理器和微机时代从此开始。
单片机一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
LED发光二极管是一种能够将电能转化为可见光的固态的半导体器件,它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理而采用电场发光。
本设计给出了一基于MCS-51系列单片机的16×16点阵LED显示屏的设计方案。
包括系统具体的硬件设计方案,软件流程图和部分C语言程序等方面。
在负载范围内,只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。
本设计主要以AT89C51单片机为核心采用串行传输、动态扫描技术来制作的一款拥有多功能的模块化16×16LED点阵的多功能显示屏。
关键词:
C51单片机LED点阵驱动电路
目录
第一章绪论…………………………………………………………………………..6
1.1单片机的发展史7
1.2单片机的发展趋势7
第二章8051单片机的体系结构…………………………...……………………….7
2.1单片机基本内部资源8
2.2存储组织10
2.3单片机系统外围电路12
第三章LED电路…………………………………………………………………...12
3.216×16点阵LED原理及应用14
3.3LED点阵的显示文字图形原理15
3.4动态滚动显示原理18
3.5驱动方式18
3.6行驱动电路图:
20
3.7列驱动电路图:
20
3.8单片机驱动74HC595引脚连接电路图:
20
第四章总体方案…………………………………………………………………....20
第五章仿真和调试……..…………………………………………………………..21
5.1Proteus的基本性能概述22
5.2Proteus仿真要求23
5.3Proteus仿真步骤23
5.4仿真问题与解决24
参考文献25
附录A公交车汉字条屏设计原理图26
附录B公交车汉字条屏设计PCB图(正面)26
附录C公交车汉字条屏设计PCB图(反面)27
附录D公交车汉字条屏设计仿真图27
附录E公交车汉字条屏设计调试图28
附录F公交车汉字条屏设计程序29
第一章绪论
1.1单片机的发展史
单片机诞生于20世纪70年代末,历了SCM、MCU、SOC三大阶段。
第一个阶段是SCM,单片微型计算机(ingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
创新模式获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上Intel公司功不可没。
第二个阶段是MCU,即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势。
将MCS-51从单片微型计算机迅速发展到微控制器。
因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
第三个阶段是SOC,即单片机嵌入式系统。
单片机的嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决。
因此,专用单片机的发展自然形成了SOC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
1.2单片机的发展趋势
CMOS化。
近年由于CHMOS技术的进步,大大地促进了单片机的CMOS化。
CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。
这也是今后以80C51取代8051为标准MCU芯片的原因。
因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。
CMOS电路的特点是低功耗、高密度、低速度、低价格。
采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。
随着技术和工艺水平的提高,又出现了HMOS高密度、高速度MOS和CHMOS工艺。
CHMOS和HMOS工艺的结合。
目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns。
它的综合优势已在于TTL电路。
因而,在单片机领域CMOS正在逐渐取代TTL电路。
低功耗化单片机的功耗已从毫瓦级,甚至1uA以下,使用电压在3~6V之间,完全适应电池工作。
低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性、高抗干扰能力以及产品的便携化。
低电压化几乎所有的单片机都有WAIT、STOP等省电运行方式。
允许使用的电压范围越来越宽,一般在3~6V范围内工作。
低电压供电的单片机电源下限已可达1~2V。
目前0.8V供电的单片机已经问世。
低噪声与高可靠性为提高单片机的抗电磁干扰能力使产品能适应恶劣的工作环境满足电磁兼容性方面更高标准的要求,各单片厂家在单片机内部电路中都采用了新的技术措施。
大容量化以往单片机内的ROM为1KB~4KBRAM为64~128B。
但在需要复杂控制的场合该存储容量是不够的,必须进行外接扩充。
为了适应这种领域的要求,须运用新的工艺,使片内存储器大容量化。
目前,单片机内ROM最大可达64KB,RAM最大为2KB。
第二章8051单片机的体系结构
51单片机系统内部结构由8位中央处理器、时钟模块、I/O端口、内部程序存储器、内部数据存储器、2个16为定时计数器、中断系统和一个串行通信模块组成。
如图2.1所示。
图2.1单片机内部结构图
51系列单片机内部模块的功能将要说明如下:
(1)中央处理器:
单片机的核心部件,执行预先设置好的程序代码
负责数据的计算和逻辑的控制。
(2)程序存储器:
存放程序代码。
(3)数据存储器:
存放程序执行过程中的数据。
(4)中断系统:
根据设置接收单片机的各中断事件,提交到处理器。
(5)时钟模块:
提供整个单片机所需要各个时钟信号。
(6)可编程串行口:
根据设置进行串行数据通信。
(7)16位定时计数器:
根据设置进行定时或计数工作。
(8)I/O端口:
与外部接口部件通信,进行数据交换。
2.1单片机基本内部资源
1.单片机内部资源基于51核的单片机的内部资源如下:
(1)32个I/O端口,4组8位,可以位寻址。
(2)2-3个16位定时计数器。
(3)两个外部中断。
(4)5个中断源,2个中断优先级。
(5)一个全双工的异步串行口。
(6)128Byte以上的RAM。
(7)独立的,可扩展至64KB的ROM。
8051单片机引脚图,如图2.2所示。
图2.2单片机引脚图
2.并行I/O口引脚(复用)
并行I/O口引脚(复用)如下:
(1)P0口——8位双向三态I/O口:
使用外存时,分时复用地址线(低8位)/
数据总线。
(2)P1口——8位(带上拉电阻)准双向I/O口。
(3)P2口——8位准双向I/O口:
访问外存时只输出地址高8位。
(4)P3口——8位准双向I/O口:
每个脚还具有第二功能,如表2.1所示。
表2.1单片机引脚控制功能表
3.控制引脚
控制引脚如下:
(1)RST:
复位信号,晶振工作后2个机器周期的高电平复位CPU。
(2)ALE:
地址锁存信号,用于访问外存时锁存低8位址,ALE为晶振6分频。
(3)PSEN:
外部程序存储器,从程序存储器中取指令或读取数据时,该信号有效。
(4)EA:
允许访问片内外程序的存储器控制端。
当EA=1从内部开始执行程序,当EA=0只访问外程序存储器。
4.电源及时钟引脚
电源及时钟引脚如下:
(1)X1:
接外部晶体此引脚接地,又是内部振荡器的输入端。
(2)X2:
接外部晶体的另一端,又是内部振荡器输出端。
(3)VCC,VSS:
电源和地。
+5V电源供电,使用TTL电平。
2.2存储组织
1.算术逻辑单元ALU
算术逻辑单元是8位,主要功能是完成算术/逻辑运算。
2.寄存器
(1)通用寄存器(8位):
4组,8个寄存器R0—R7,R0和R1可用于间接寻址。
(2)特殊功能寄存器(SFR):
共有21个。
①累加器A(Acc):
8051是累加器结构,所有的运算都是以累加器为一个源操作数和目的操作数。
②累加器B:
乘、除指令中的一个操作数,可以作为一般变量使用。
③程序状态字PSW:
8位寄存器,保存指令执行状态,其状态表如表2.2所示。
表2.28位寄存器执行状态表
Cy:
进(借)位标志,保存算术运算的进或借位,位操作的累加器。
AC:
辅助进位标志,运算结果从D3产生进位或借位时AC=1,主要用于BCD码调整。
F0:
用户标志,可以使用的位变量,可以随PSW被保存。
RS1,RS0:
寄存器组选择如表2.3所示。
表2.3寄存器组选择表
OV:
溢出标志位,有符号数运算结果超出允许范围OV=1,否则OV=0。
(双符
号位00+无溢;01+溢;10-溢;11-无溢。
)
P(奇偶标志位)每个机器周期根据累加器A中的内容的奇偶性由硬件置1复位,A中1的个数为奇P=1,否则P=0。
④堆栈及堆栈指针SP:
堆栈(存储区)按先进后出的原则读写数据,堆栈空间
用内部RAM(256),用于保护现场和恢复现场。
堆栈指针SP为8位寄存器,指示栈顶位置。
进栈:
SP+1,再压栈;出栈:
先出栈,再SP-1。
⑤数据指针寄存器DPTR:
16位寄存器,可以寻址64K地址空间。
⑥程序计数器PC(16位):
不属于SFR,但有联系,用于存放下一条的指令地址。
2.3单片机系统外围电路
单片机外围电路一般有两块:
时钟电路(如图2.3所示)和复位电路(如图2.4
所示)。
时钟电路由一个晶振和两个小电容组成,用来产生时钟频率。
复位电路由一个电阻、按键和一个电容组成,用来产生复位信号,使单片机上电
的时候复位。
图2.3时钟电路
AT89C51单片机芯片内部有一个反向放大器构成的振荡器,XTAL1和XTAL2
分别为振荡器电路的输入端和输出端,时钟可由内部和外部生成,XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
晶振频率选择12MHz,C1、C2的电容值30PF,电容的大小频率起微调的作用。
图2.4复位电路
单片机有多种复位电路,单片机复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分/合过程中引起的抖动而影响复位。
第三章LED电路
3.1LED简介
组合型LED点阵显示器以发光二极体为图素,它用高亮度LED晶粒进行阵列组合后,再透过环氧树脂和塑模封装而成。
具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。
点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。
LED点阵有4×4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多种,根据图素的数目分为,单色、双原色、三原色等。
根据图素顏色的不同所显示的文字、图像等内容的顏色也不同,单原色点阵只能显示固定色彩如红、绿、黄等单色,双原色和三原色点阵显示内容的顏色由图素内不同顏色发光二极体点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极体的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。
LED点阵显示系统中各模组的显示方式有静态和动态显示两种。
静态显示原理简单、控制方便,但硬体接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示幕的各行进行选通,同时又向各列送出表示图形或文字资讯的脉冲信号,反复以上操作,就可显示各种图形或文字资讯。
3.216×16点阵LED原理及应用
16×16LED点阵其实就是4块8×8点阵LED级联而成的。
图3.28*8点阵模块外观图
8×8点阵LED的工作原理。
图3.2为8×8点阵LED外观及引脚图,其等效电路如图3.3所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
图3.38*8点阵LED等效电路
图3.4四块8*8点阵LED级联成的16*16点阵
3.3LED点阵的显示文字图形原理
汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。
下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。
为了降低成本,手工焊接了16×16的LED点阵(和4快8*8点阵级联方式一样)显示屏,如图3.5所示。
在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。
LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起,共阴的接法,先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其点亮一定的时间,然后熄灭,再送出第2列的数据并锁存,然后选通第2列使其点亮相同的时间,然后熄灭,第16列之后,又重新燃亮第1列,反复轮回。
当这样轮回的速度足够快,每秒24次以上,由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
显示数据可通过单片机的P1,P2口接驱动电路传输到点阵行引脚。
LED点阵显示模块进行的方法有两种:
(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式),此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该列上哪个LED亮(相当于段码)。
能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。
(2)竖直方向(Y方向)扫描,即逐行扫描的方式(简称行扫描方式),此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据,决定该行上哪些LED灯亮(相当于段码)。
能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。
本设计应用的是第二种的扫描方法,即竖直方向(Y方向)扫描。
每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。
一般我们使用的16×16的点阵宋体字库(即所谓的16×16)是每一个汉字在纵横各16点的区域内显示的。
汉字库从该位置起的32字节信息记录了该字的字模信息。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
我们以“大”字为例,进行显示原理讲解,先用取模软件取出16*16点阵数据,具体设置取模方式如图3.5所示。
图3.5取模设置窗口
图3.6显示16*16点阵
取模数据如下:
{0xFB,0xFE,0xFB,0xFE,0xFB,0xFD,0xFB,0xFB,0xFB,0xF7,0xFB,0xCF,0xFB,0x3F,0x00,0xFF,0xFB,0x3F,0xFB,0xCF,0xFB,0xF7,0xFB,0xFB,0xFB,0xFD,0xFB,0xFE,0xFB,0xFE,0xFF,0xFF}//大
首先驱动第一行进行显示:
第一个数据驱动1—8行,第二个驱动9—16行,然后再进行列的驱动显示,而列的驱动显示是固定的数组,数组如下:
{
0x80,0x00,0x40,0x00,0x20,0x00,0x10,0x00,
0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,
0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x10,
0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01};
第一个数据驱动1—8列,第二个数据驱动9—16列,而数据显示每次只能显示1列,等第一列数据显示完后,再进行第二列显示,直到16列显示完成,这样循环显示,速度足够快,人眼看到的就是静态的汉字!
图3.7显示效果
3.4动态滚动显示原理
其实动态滚动显示方法比较简单,简单地说,就是把多个汉字的取模数据放在一个数组中,等一个16*16的汉子显示完之后,也就是调用32个数据,如果让起始显示的数组指针向后移动一位,再进行第二次显示,那么就会向左移动1格,下一个汉字的第一列就会显示出来,如此循环的话,就会看到汉字向左滚动的效果!
3.5驱动方式
驱动方式:
我采用的是8位移位寄存器74HC595,74HC595具有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器有相互独立的时钟。
图3.874HC595引脚图
74HC595工作原理:
数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_cp(存储器时钟输入)的上升沿输入到存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。
三态。
将串行输入的8位数字,转变为并行输出的8位数字。
74HC595引脚功能表如图3.9所示。
图3.974HC595引脚功能表
3.6行驱动电路图:
3.7列驱动电路图:
3.8单片机驱动74HC595引脚连接电路图:
第四章系统总体方案
本设计以89C51为控制核心,单片机所起的作用就是驱动74HC595进行行驱动和列驱动来显示汉字,其流程图如下:
动态滚动循环显示流程图如图所示:
第五章仿真与调试
5.1Proteus的基本性能概述
Proteus是英国Labcenter公司嵌入式系统仿真开发平台。
Proteus由两个主要程序系统构成ISIS.EXE(电路原理图设计系统)和ARES.EXE(印刷电路版设计系统)。
本论文设计主要是运用ISIS.EXE,电路原理图设计系统,仿真单片机控制8×32LED点阵,下面将简单介绍Proteus的电路原理图设计系统。
Proteus的元件库,有分离元件、集成器件、还有多种带CPU的可编程序器件。
既有理想元件模型。
还有各种不同厂家及时更新的实际元件模型。
Proteus的电路原理图设计系统的仿真实验功能电路不仅能做电路基础实验、模拟电路实验与数字电路实验,而且能做单片机与接口实验。
为课程设计与毕业设计提供综合系统仿真。
5.2Proteus仿真要求
1.建立数字电路模型,检测数字电路模型是否连通,有无连接错误。
2.Keil软件编译C语言,要求最终编译结果程序0错误,将其导入到Proteus仿真软件中。
3.Proteus仿真电路最终能成功显示C语言程序编译后的结果。
5.3Proteus仿真步骤
由于8*8点阵和16*16点阵动态显示原理一样,仿真就以4个8*8点阵排成列进行驱动显示。
在库中找出需要的元器件加入到元件列表里,然后画出原理图,画好的原理图如图5.1所示,检查无误后把程序hex文件加入AT89C51里面(双击单片机元件),如图5.2所示。
5.1仿真电路原理图
图5.2
然后点击“调试”,“执行”,就能看到运行结果,运行结果如图5.3所示。
图5.3滚动仿真显示效果
5.4仿真问题与解决
5.1节可以看到,在Proteus仿真软件中,仿真电路中并没有电源,时钟和复位电路这些电路,但一样可以仿真通过。
因为Proteus是一款很智能的专用仿真软件,为了更快捷地得到仿真结果,部分外围电路软件自带而无需我们绘制出来。
但事实是,即使添加此些电路,在实际电路中也无法正常显示,这是因为实际当中51单片机的各个引脚负载能力有限,必须还要通过外接驱动电路才能很好的显示。
总结
在设计倒计时器的课程设计的过程中,我深切的体会到了实践是理论运用的最好检验。
本次设计是对我这一学期所学知识的一次综合性的检测和考验,无论是动手能力还是理论知识运行能力都得到了一定的提高,同时加深了我对网络资源的认识,大大提高了查阅资料的能力和效率,使我能有更多的时间去调试软件的部分。
这次设计要求我们有丰富的编程经验,还要能看懂单片机开发板的各种原理图,能熟悉那些I/O口的作用,且能够准确的运用数电