基于AT89C52单片机的LED显示屏设计.docx
- 文档编号:10904803
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:30
- 大小:269.14KB
基于AT89C52单片机的LED显示屏设计.docx
《基于AT89C52单片机的LED显示屏设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的LED显示屏设计.docx(30页珍藏版)》请在冰豆网上搜索。
基于AT89C52单片机的LED显示屏设计
2013届本科毕业设计
基于AT89C52单片机的LED显示屏设计
院(系)名称
物理与电子信息学院(小三号黑体)
专业名称
电气工程及其自动化(小三号黑体)
学生姓名
张三丰(小三号黑体)
学号
090544111(小三号TimesNewRoman)
指导教师
何大壮教授(小三号黑体)
完成时间
2013年5月8日(小三号黑体)
摘要
本设计为一个基于单片机的点阵显示模块,这个设计主要是为了更进一步学习和应用学过的单片机知识,并且结合实际加以应用。
因为点阵模块再现在生活中应用十分广泛。
LED显示屏作为一种新兴的显示媒体,随着大规模集成电路和计算机技术的高速发展,得到了飞速发展。
可用于显示文字、文本、图形、图像、动画、行情等各种信息。
由于其亮度高,影像效果好,显示内容多样,显示方式丰富,故障少,能耗低,使用寿命长,性能价格比高,作为新一代的显示媒体,已广泛应用在银行、证券、电信、税务、供电、海关、法院、消防、车站、机场、码头、人才市场、体育场馆等场合以及在室外做告示牌和广告牌。
本系统利用AT89C52单片机来实现对LED点阵显示的分析研究。
关键词:
点阵LED列扫描字库编码
第1章方案论证
1.1方案选择
1.1.1需要实现的功能
显示预先想要显示的内容,在本设计中要求显示“欢迎乘坐本车请携带好随身物品欢迎次乘坐!
”,显示方式分三种:
①逐字显示,②向上滚动显示,③向左滚动显示。
1.1.2设计思路
根据需要实现的功能,初步确定设计方案如下:
●通过单片机编程依次显示汉字“欢迎乘坐本车请携带好随身物品欢迎次乘坐!
”。
●P0口作为I∕O口,作为字符数据输出口。
●P2口作为I∕O口,作为字符显示扫描输出口。
●P1.0、P1.1和P1.2口分别接K1、K2和K3,作为控制信号的输入。
●通过改变电阻的大小来改变显示字符的亮度。
1.1.3单片机AT89C52的选择
本方案最大的特点在于核心控制芯片的选择,采用AT89C52单片机,利用AT89C52的掉电工作方式,构成高可靠、低功耗系统方法。
AT89C52单片机它是ATMEL公司生产的,为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
AT89C52的采用有很多方面的优势。
应用AT89C52作为控制核心的设计大多在性能上要求很高。
原因在于,在一些应用场合,单片机并不是每时每刻都在工作,而是多数时间处于守候状态。
为使单片机系统工作更省电、更可靠,我们可以使单片机在不工作时处于掉电工作方式,其工作状态被冻结,如AT89C52处于掉电工作方式时耗电仅十几微安。
此外,AT89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
1.2单片机最小系统设计
1.2.1具体点各个部分电路
1.AT89C52单片机的时钟电路
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。
AT89C52的时钟产生方式有两种:
内部时钟电方式和外部时钟方式。
由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,外接6MHz石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,电容使用30pF±10pF。
XTAL2
XTAL1
图1-1使用片内振荡电路的时钟电路
2.单片机的复位电路
本设计中AT89C52是采用上电自动复位和按键复位两种方式。
最简单的复位电路如图1-2所示。
上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。
其中R1和R2分别选择200Ω和1KΩ的电阻,电容器一般选择22μF。
图1-2AT89C52的复位电路
3.AT89C52的最小应用系统
AT89C52是片内有程序存储器的单片机,要构成最小应用系统时只要将单片机接上外部的晶体或时钟电路和复位电路即可,如图1-3所示。
这样构成的最小系统简单可靠,其特点是没有外部扩展,有可供用户使用的大量的I∕O线。
图1-3AT89C52单片机构成的最小系统
1.3显示部分设计
1.3.1LED电子显示屏简介
传统的LED数码管只能显示0~9的数字,用途仅限于数字显示,不能显示汉字及各种复杂的图像,若将许多发光二极管按照点阵(行、列)形式排列起来,显示方式就非常灵活,显示功能亦大大增强。
LED点阵显示器亦称LED矩阵板或LED阵列是以发光二极管作为基本发光单元。
再按行与列的顺序排列而成的显示器件。
它具有发光亮度高、参数一致性好、可靠性高、接线简单、拼装方便等优点,能构成各种尺寸的大屏幕显示屏。
因此,它被广泛用于由计算机控制的大型LED智能显示屏、智能仪器和机电一体化设备中,利用先进的智能显示技术来取代传统的数显技术。
LED显示屏以其亮度高、动态影像显示效果好、故障低、能耗少、使用寿命长、显示内容多样、显示方式丰富、性能价格比高等优势,作为新一代的显示媒体,已广泛应用于各行各业。
在短短的十来年中,迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。
它具有发光亮度高、参数一致性好、可靠性高、接线简单、拼装方便等优点,能构成各种尺寸的大屏幕显示屏。
因此,它被广泛用于由计算机控制的大型LED智能显示屏、智能仪器和机电一体化设备中,利用先进的智能显示技术来取代传统的数显技术。
现代信息社会中,作为人一机信息视觉传播媒体的显示产品和技术得到迅速发展,进入二十一世纪的显示技术将是平板显示的时代,LED显示屏作为平板显示的主导产品之一无疑会有更大的发展,并有可能成为二十一世纪平板显示的代表性主流产品。
目前其正朝着高亮度、全彩化、标准化、规范化、产品结构多样化发展。
1.3.216×16点阵显示部分
LED点阵显示屏结构模块化,整屏尺寸可以根据实际需要进行调整。
不论多大的LED显示屏都是由多个小的点阵显示模块拼接而成。
本设计中所用的16×16点阵显示部分由4块8×8点阵拼接而成。
显示方法采用列扫描。
每个8×8点阵模块的外观如图1-4所示:
图1-4单个8×8点阵外观
其内部LED接线采用行共阳、列共阴的编排方式在外部图中COL(共阳极)接收行数据,ROW(共阴极)接收列数据,当行信号(阳极)为“1”,列信号(阴极)为“0”时,对应当LED灯亮。
16×16点阵是由4块8×8点阵模块组合成的,具体组合方式如下图1-5所示:
1与2的行信号接口接在一起用于显示字形的下半部分;3与4的行信号接口接在一起用于显示字形的上半部分;1与4列信号接口接在一起作为列扫描1;2与3列信号接口接在一起作为列扫描2。
由此构成1块16×16点阵显示屏。
1.3.3显示驱动电路
显示器驱动是一个非常重要的问题,如果驱动能力差,显示器亮度就低;而驱动器长期在超负荷下运行则很容易损坏。
如果是静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器工作电流相匹配即可。
而且只须考虑段的驱动,因为,共阳极接+5V,而共阴极接地,所以位的驱动无须考虑。
动态显示则不然,由于一位数据的显示是由段和位选信号共同配合完成的,因此,必须同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
理论分析表明,同样的驱动器,当其驱动静态显示器时,其亮度为驱动动态显示器的n倍,n近似为显示位数。
所以要使动态显示器达到静态显示器的亮度,必须将驱动器能力提高n倍。
本设计中,因为采用了16×16点阵LED显示屏,用AT89C52单片机进行控制,因此它很适宜于按扫描方式动态显示多个字符数据,所以我们只选用了16个PNP型三极管作为驱动显示器的电路。
如图1-6所示,因AT89C52单片机的I∕O口有20mA的吸入电流,正因为这一特点,使的本设计中的驱动电路部分大大简化,不用附加专门的驱动电路即可正常工作。
图1-6显示驱动电路示意图
1.4电源部分的设计
采用普通集成稳压电路,电源部分电路如下图1-7所示:
图1-7电源电路
使用+5V的7805稳压电源,可以节省成本,满足供电需求。
整个电路所提供的电压稳定,电流较大。
第2章单片机基础知识
2.1单片机简介
随着大规模集成电路技术的发展.可以将中央处理器(CPU)、存储器(ROM、RAM)、I/O接口电路、定时器/计数器等,制作在一块集成电路芯片中,这样所组成的芯片级的微型计算机称为单片微型计算机(SingleChipMirco-computer),直译为单片微机或单片机。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
纵观单片机的的发展历史,主要经历了三个阶段:
1.SCM“单片微型计算机”
SCM即(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU“微控制器”
MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
3.SOC“单片机应用系统设计”
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
2.2单片机的特点
(1)集成度高、功能强
与微型计算机进行比较,单片机不仅体积大大减小,而且功能大为增强。
MCS-51系列单片机内的定时/计数器为16位,而Z80微型计算机只有8位:
MCS-51系列单片机中不但有4个并行I/O接口,而且还有串行接口,且时钟频率可达12Mz。
(2)结构合理
目前单片机大多采用哈佛(Harvard)结构。
即是数据存储器与程序存储器相互独立的一种结构。
采用16位地址总线的8位单片机可寻址外部64KBRAM和64KBROM。
此外还有内部RAM和内部ROM。
(3)抗干扰性强
由于单片机的各种功能部件都集成在一个芯片上,特别是存储器也集成在芯片内部,布线短,数据大都在芯片内部传送,不易受到外部的干扰,增强了抗干扰能力,使系统运行更可靠。
(4)指令丰富
单片机一般都有传送指令,逻辑运算指令,转移指令,加、减法运算指令等,有些单片机还具有乘法及除法运算指令,特别是位操作指令十分丰富。
因而单片机能在逻辑控制、开关量控制以及顺序控制中得以广泛应用。
2.3单片机的应用
单片机的应用,打破了人们的传统设计思想,原来很多用模拟电路、脉冲数字电路、逻辑部件来实现的功能,现在无需增加硬件设备,可通过软件来完成。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前己渗入到人们工作和生活的各个角落,几乎“是无处不在,无所不为”。
(1)工业过程控制中的应用
由于单片机的I/O接口线多,位操作指令丰富,逻辑操作功能强,因此,特别适用于工业过程控制。
(2)生活中的应用
由丁单片机价格低廉、体积小、逻辑判断及控制功能强,因此广泛地应用于人类生活的各个方面。
如:
洗衣机、电冰箱、电子玩具、立体声音响、家用防盗系统等。
(3)智能仪表中的应用
单片机广泛地应用于各种仪器仪表中,使仪器仪表智能化,提高测试的自动化程度和精度,简化其硬件结构,提高其性能价格比。
(4)计算机网络及通信技术中的应用
单片机中集成了通信接口,因而使其在计算机网络及通信设备中得以广泛应用。
第3章系统的硬件及软件设计
3.1硬件系统的总体设计
根据设计要求与设计方案,硬件电路的设计框图如图3-1所示。
硬件电路结构由8个部分组成:
时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极驱动电路、点阵显示阴极驱动电路和16×16点阵显示电路。
图3-116×16点阵显示组成原理系统框图
3.2单片机AT89C52的分析
AT89C52片内有8K的Flash程序存储器,并且I∕O口可直接驱动点阵显示器,所以由它组成小系统硬件非常简单。
3.2.1AT89C52单片机的性能及功能
图3-2AT89C52引脚结构图
①性能说明
·与MCS-51兼容
·8K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·256*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·一个数据指针DPTR
·8个中断源
·可编程全双工串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
②管脚说明
·VCC:
供电电压。
GND:
接地。
·P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
·P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
·P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
·P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
·P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
·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),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
·XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.3系统的软件设计
3.3.1所用寄存器、存储单元、辅助子程序说明
首先说明软件程序中,所使用的各寄存器、存储单元、辅助子程序及它们的作用:
寄存器:
R1,R0:
合起来作为取字库用的16位地址指针;
R2:
由存储单元35H与存储单元34H相减得到,表示的是显示内容的长度,程序中当R2内容为0时,表示开始要开始显示最后一个字,程序转到DISP3显示最后一个字;
R3:
显示内容显示速度并起稳定画面的作用;
R4:
判断一个字是否全部左移显示完毕;
R5:
列扫描信号;
R7,R6:
列扫描端口地址,R7=#80H,R6=#00H时表示XPA的端口地址,R7=#80H,R6=#00H时表示XPB的端口地址。
存储单元:
31H,30H:
合起来作为第二个16地址指针,在左移显示最后一字时,因第一个字要同步左移进到屏幕中,而地址指针仍在使用,固用31H,30H来作为第二个地址指针;
34H:
表示显示内容第一个字的在整个字库(28个字)的中位置;
35H:
表示显示内容最后一个字的在整个字库(28个字)的中位置;
38H,37H:
要显示的最后一个字最后一列的地址指针;
39H:
显示速度(时间常数),;
3BH,3AH:
要显示的第一个字第一列的地址指针。
辅助子程序:
AD:
TAB+R1,R0→DPTR;
POINT:
R1,R0+1→R1,R0;
AD2:
TAB+31H,30H→DPTR;
POINT2:
31H,30H+1→31H,30H;
CHF1:
计算显示的最后一个字最后一列的地址指针。
3.3.2程序流程图
主程序流程图如图3-3所示,
图3-3程序流程图
所调用的子程序流程图如下图3-4,图3-5,图3-6,图3-7所示,内容显示为动态显示:
图3-4逐字显示子程序
图3-5向左滚动显示子程序
图3-6向左单个显示子程序
图3-7向上滚动显示子程序
3.3.3程序列表
ORG0000H;
LJMPMAIN;
ORG0030H;
MAIN:
MOVR1,#00H;选择数据指针入口标志
MOVR2,#10H;列选线
MOVR5,#00H;寻字节显示
MOVR3,#00H;R3用于记录某一静态状态重复扫描次数,若到了100,则向右移动一位格。
MOVR4,#00H;R4用于记录移动的格数,这里R4暂时只能在0-255之间变化。
MOVDPTR,#MING;
DISPLAY:
DECR2;
MOVP1,R2;列选线
CJNER2,#000H,LOOP1;
MOVR2,#010H;
;MOVR5,#00H;放在这里文字会有重影
LOOP1:
MOVA,R5;
ADDA,R4;************************************这样最多只能显示8个文字,因为A只有8位。
ADDA,R4;************************************
MOVCA,@A+DPTR;
MOVP0,A;
INCR5;
MOVA,R5;
ADDA,R4;************************************
ADDA,R4;************************************
MOVCA,@A+DPTR;
MOVP2,A;
INCR5;
CJNER2,#010H,LOOP2;
MOVR5,#00H;
LOOP2:
INCR3;**************************************
CJNER3,#0005H,LOOP0;调节R3的最大值可以改变文字滚动速度。
INCR4;
CJNER4,#070H,LOOP0;这里的#10H是代表存的文字个数,两个文字的话就是#20H,实际上就是一个字移动16格。
MOVR4,#00H;
INCR1;
CJNER1,#01H,LOOP5;
MOVDPTR,#MING;
LJMPLOOP0;
LOOP5:
CJNER1,#02H,LOOP6;
MOVDPTR,#Q;
LJMPLOOP0;
LOOP6:
CJNER1,#03H,LOOP0;
MOVDPTR,#Q2;
MOVR1,#00H;
LOOP0:
LCALLDELAY;
LJMPDISPLAY;
DELAY:
MOVR6,#090H;调节R6的值也可以改变文字滚动速度
DJNZR6,$;
RET;
MING:
;空格
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H,000H,000H,000H
DB000H,000H,000H,000H,000H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C52 单片机 LED 显示屏 设计