基于单片机1616的点阵显示设计说明.docx

上传人:b****3 文档编号:6077806 上传时间:2023-05-09 格式:DOCX 页数:25 大小:780.83KB
下载 相关 举报
基于单片机1616的点阵显示设计说明.docx_第1页
第1页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第2页
第2页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第3页
第3页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第4页
第4页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第5页
第5页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第6页
第6页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第7页
第7页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第8页
第8页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第9页
第9页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第10页
第10页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第11页
第11页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第12页
第12页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第13页
第13页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第14页
第14页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第15页
第15页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第16页
第16页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第17页
第17页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第18页
第18页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第19页
第19页 / 共25页
基于单片机1616的点阵显示设计说明.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机1616的点阵显示设计说明.docx

《基于单片机1616的点阵显示设计说明.docx》由会员分享,可在线阅读,更多相关《基于单片机1616的点阵显示设计说明.docx(25页珍藏版)》请在冰点文库上搜索。

基于单片机1616的点阵显示设计说明.docx

基于单片机1616的点阵显示设计说明

 

基于单片机16*16的点阵显示

院系:

机电工程学院

专业(班级):

电子信息工程2班

林帅帅

学号:

指导教师:

叶圣

职称:

讲师

完成日期:

2013年12月18日

 

1引言1

2设计的任务与要求3

3硬件电路设计4

3.1总体设计方案4

3.2元器件描述5

3.2.1STC89c52单片机5

3.2.274hc595寄存器的概述7

3.2.416*16点阵显示屏幕8

3.2.5点阵显示模块9

3.389c52应用系统部分电路10

3.3.1晶体振电路原理和概述10

3.3.2上电复位电路11

3.3.3I/O口和扩展锁存器控制点阵显示12

4系统软件设计14

4.1软件设计描述14

4.216*16点阵显示程序14

5调试以及性能分析20

总结21

参考文献22

附录A总电路图23

附录B实物图24

 

基于单片机的16*16点阵显示

1引言

现代信息产业的高速发展,在我们周围LED显示屏作为现代信息化社会的一个闪亮标志。

其广泛的应用在室外需要进行服务的地方,众人皆知在我们生活的领域如电信,邮政大厅,营业部,车站,机场,港口,体育场所等信息的发布,政府政策的发布,各类市场行情信息的发布和宣传等。

信息广告在蓬勃发展的市场经济中起着越来越重要的作用。

随着技术的不断进步,新产品层出不穷,市场竞争越来激烈,广告的重要性也就更加引发企业的关注。

一个成功的企业隔离不开成功的广告,而成功的广告离不开成功的广告技术和发布手段。

因此,广告的新颖性,广告的创意引起高层人士的高度重视。

在以前电子技术还不发达的时候,我们通常见到的是通过写大字报基挂横幅等来打广告,但那样很不方便,比如要更换容则要整个都要换掉,而且到了晚上就看不清,非常麻烦。

所以在现代信息技术发达的社会,仅仅这样肯定是没有竞争力的,而汉字显示屏的出现,不仅可以随时更改容,而且到了晚上也特别的醒目,操作也非常的简便,成本低,从而很全有实用性,给人们带来了许多的用途与方便,基于PC机控制的LED点阵式显示屏的发展技术也非常的快,不仅点阵数高,同时可以显示铁汉字或图形,而且清晰度非常高。

还有许多的其它附加功能,又如,可以动态显示,不断的换颜色,可以翻转汉字或图形,还可以反色目前国外还有更加先进的技术,就是利用液晶显示屏,则更加清晰,但成本比较高。

当今社会在飞速发展无疑能源,健康,空间的利用,成了人们着重关注的对象。

而在这个信息传递极速的社会,LED的出现给人们带来了希望之光。

LED的特色之处一是节能(直接功耗,间接耗能),二是基本无电离辐射,三提高空间利用率。

而这些特色又恰好解决了上述的三种问题。

然而LED点阵显示屏的特点不仅仅于此LED点阵显示屏用的是数码管,而数码管具有补助和,便宜等优点。

做出来的LED点阵显示很耐用。

LED点阵显示屏之所以受到广泛重视而得到迅速发展,是与LED显示屏本身所具有的优点分不开的。

LED点阵显示屏的发展前景极为广阔,目前正朝着更高亮度。

更高耐气候性,更高的发光密谋,武冈市的发光均匀性,可靠性,全色化方向发展。

LED点阵显示屏的构成型式有多种,其中典型的有两种。

一种把所需展示的广告信息烧写固化到EPROM芯片,能进行固定容的多幅汉字显示,称为单显示型;另一种在机设置了字库、程序库,具有程序编制能力,能进行容可变的多幅汉字显示,称可编程序型。

目前,国的LED点阵显示屏大部分是单显示型,其显示的容相对较少,显示花样较单一。

一般在产品出厂时,显示容就已写入显示屏控制系统中的EPROM芯片,当需要更换显示容时就非常困难,这样使该类型的显示屏使用围受到了限制。

国的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示容和显示花样都有所增加,但也存在着更换显示容不便的缺点。

随着社会经济的迅速发展,如今的广告牌都存在着显示容丰富、信息量大、信息更换速度快等特点因此传统的LED的。

2设计的任务与要求

本课程设计的16*16点阵需要32个驱动,分别为16个列驱动及16个行驱动。

每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。

每次显示一行后再显示下一行。

本设计是利用实验仪上的16*16 LED点阵显示器,编写显示“机电工程学院”等中文字符字符,最好能移动显示。

现在市场上各类基于LED的显示屏较多,但大部分产品为单一模式的LED显示屏,其在显示容的更换及显示屏的重组等方面都存在不便之处。

但随着信息化社会的迅速发展,LED显示屏正在向显示容丰富、信息更改方便等方面发展。

因此制作一款多功能的LED广告显示屏是非常有意义。

 

3硬件电路设计

3.1总体设计方案

工作原理简述:

LED点阵电路大体上可以分成单片机本身的硬件、显示驱动电路(74hc595寄存器)、控制信号电路(按键)三部分。

在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行以及给屏体电路部分发送命令。

点阵显示屏体、以及它的各个驱动电路。

由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用中断方式来与屏体电路部分进行数据和命令的传送。

此显示电路采用扫描方式进行显示时,由两个I/O口控制点阵的行,各行的同名列共用一个列驱动器。

由行译码器给出的列选通信号,从第一列开始,按顺序一次对各列进行扫描。

接通的列,就在该行该列点燃相应的LED,未接通的列所对应的LED熄灭。

图1系统框图

74hc595的SRCK端接单片机P3.6口,SI端接单片机P3.4口,RCK端接单片机P3.5口,第一片74hc959的QH'接到第二片74hc595的SI上,第二片74hc959的QH'接到第三片74hc595的SI上,第三片74hc959的QH'接到第四片74hc595的SI上,如图2:

图274hc595电路图

3.2元器件描述

这此课程设计主要采用单片机STC89c52为LED显示屏的控制核心,系统主要包括LED驱动模块、外部扩展锁存器74hc595。

下面对各模块和器件的设计逐一进行论证阐述。

3.2.1STC89c52单片机

STC89c52俗称单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪存存储器组合在单个芯片中,ATMEL的STC89c52是一种高效微控制器。

AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

STC89c52单片机40个引脚按引脚功能大致可分为4个种类:

电源、时钟、控制和I/O引脚。

如图3所示

图3STC89c52单片机的外形及引脚排列

1、电源

(1)VCC-芯片电源,接+5V,

(2)VSS-接地端;

注意:

用万用表测试单片机引脚电流表一般为0V或者5V,这是标准的TTL电平,但有时候在单片机程序正在工作时候测试结果并不是这个值而是介0V-5V之间,其实这只是万用表反映没这么快而已,在某一瞬间单片机引脚电流不是保持在通常情况下0V或者5V的。

2、时钟:

XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。

3、控制线:

控制线共有4根

(1)ALE/PROG:

地址锁存允许/片EPROM编程脉冲

①ALE功能:

用来锁存PO口送出的低8位地址

②PROG功能:

片有EPROM的芯片,在EPROG编程期间,此引脚输入编程脉冲。

(2)PSEN:

外ROM读选通信号。

(3)RST/VPD:

复位/备用电源。

①RST(Reset)功能:

复位信号输入端。

②VPD功能:

在VCC掉电情况下,接备用电源。

(4)EA/VPP:

外ROM选择/片EPROM编程电源。

①EA功能:

外ROM选择端。

②VPP功能:

片有EPROM的芯片,在EPROM编程期间,施加编程电源VPP。

4、I/O线

89C51共有4个8位并行I/O端口:

P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总路线)。

P0口:

P0口为一个8位漏级开路双向I/O口。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个部提供上拉电阻的8位双向I/O口。

P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带部上拉电阻的双向I/O口。

当P3口写入“1”后,它们被部上拉为高电平,并用作输入。

作为输出,由于外部下拉为低电平,它将输出电流。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

3.2.274hc595寄存器的概述

74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。

 74HC595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断状态。

 

三态。

特点 8位串行输入 8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率 输出能力 并行输出,总线驱动 串行输出;  

595是具有8位移位寄存器和一个存储器,三态输出功能。

 移位寄存器和存储器是分别的时钟。

数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。

如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。

 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。

 

CPD决定动态的能耗, PD=CPD×VCC×f1+∑(CL×VCC2×f0) F1=输入频率,CL=输出电容 f0=输出频率(MHz) Vcc=电源电压 引脚说明符号引脚描述。

图474hc595移位寄存器引脚图

3.2.416*16点阵显示屏幕

8*8的LED点阵为单色行共阴模块,单点的工作电压为正向(Vf)=1.8v,正向电流(IF)=18-10mA。

静态点亮(64点全亮)总电流为640mA总电压为1.8v,总功率为1.15W。

动态时取决于扫描频率(1/8或1/16秒)单点瞬间电流可达80-160mA。

16*16点阵表态时16*16*10mA,动态时单点电流80-160mA。

接线方式:

当某一行线打高时,某一列线为低时,其行列交叉的点就被点亮:

某一列线为高时,其行列交叉的点为暗;当某一行线打低时,无论列线如何,对应这一行的点全部暗。

其引脚图如图6所示。

1控制第五行显示接高9控制第一行显示接高

2控制第七行显示接高10控制第四行显示接低

3控制第二行显示接低11控制第六行显示接低

4控制第三行显示接低12控制第四行显示接低

5控制第八行显示接高13控制第一行显示接高

6控制第五行显示接低14控制第二行显示接高

7控制第六行显示接高15控制第七行显示接低

8控制第三行显示接高16控制第八行显示接低

图516*16点阵引脚图

图616*16点阵显示器连接图

3.2.5点阵显示模块

机(0){8,0,136,15,136,8,190,8,136,8,136,8,156,8,172,8,138,8,136,8,136,8,72,40,72,40,40,48,0,0,0,0}

图7点阵显示

3.389c52应用系统部分电路

以下是stc89c52应用系统设计包括晶振电路和上电复位电路,以及单片机I/O口或以扩展锁存器方式控制的点阵显示。

3.3.1晶体振电路原理和概述

单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。

而时钟电路就用于产生单片机工作所需要的时钟信号。

Stc89c52单片机时钟电路示意图如图8所示

图8stc89c52单片机时钟电路示意图

在MCS-52芯片部有一个高增益反相放大器,用于构成振荡器。

反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡频率围通常是1.2~12MHZ。

若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快。

在上图中,使用晶体振荡器时,C1、C2取值(30±10)pF;使用瓷振荡器时,C1、C2取值(40±10)pF。

C1、C2的取值虽然没有严格的喜怒无常,但电容的大小影响振荡电路的稳定性和快速性,通常取值20~30pF,在设计印制电路时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。

振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。

振荡脉冲在片通过一个时钟发生电路二分频后越冬作物为系统的时钟信号。

片时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fose/2;状态时钟三分频后为ALE信号,其频率为fose/6;状态时钟六分频为机器周期,其频率为fose/12。

也可以由外部时钟电路睛输入脉冲信号作为单位片机的振荡脉冲。

这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。

对外部设备信号的点空比没有要求,但高低持续的时间不应小于20ns。

这种方式常用于多块芯片同时工作,便于同步。

其外部脉冲接入方式如图9所示

图9STC89c52单片机外部时钟输入接线图

3.3.2上电复位电路

上电自动复位操作要求接通电源后自动实现复位操作。

如图9(a)(b)所示

图10上电自动复位电路

图(a)所示为最简单的复位电路。

上电瞬间由于电容C上无储能,其端电压挖为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将爱河下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。

只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。

相比于图(a),图(b)所示的电路只是增加了二极管VD和电阻R。

其优越性在于停电后,二极管VD给电容C提供了快速放电通路,保证再上电时RST为高电平,从而保证单片机可靠复位。

正常工作时,二极管反偏,对电路没影响。

断电后,VCC逐渐下降,当VCC=0JF,电容C通过VD迅速放电,恢复到无电量的寝状态,为下次上电复位做好准备。

3.3.3I/O口和扩展锁存器控制点阵显示

本次课程设计的硬件实验采用Dais-52FD单片机实验箱来实现单片机I/O口和扩展锁存器相结合的方式控制16*16点阵显示自己名字的中英文字符。

I/O口分别提供字形代码(列码)、扫描信号(行码),凡字形代码位为“1”、行扫描信号为“1”点亮该点,否则熄灭;通过逐行扫描循环点亮字形或曲线。

I/O口地址分配情况如下表1所示:

扩展名称

口地址

用处

控制方式

273(4)

0FFE3H

列代码1

扩展锁存器

273

(1)

0FFE0H

列代码2

扩展锁存器

273(3)

0FFE2H

行扫描1

扩展锁存器

273

(2)

0FFE1H

行扫描2

扩展锁存器

4系统软件设计

4.1软件设计描述

16*16的点阵LED关键部分是硬件电路的设计,软件设计就相对要灵活的多,硬件搭建起后,我们就可以对单片机编写相应的程序来实现不同的显示功能,还可以添加很多的动态效果,又如卷入卷出、滚支,帘出帘入等等,只要程序可以办的到的它都能实现。

本文主要介绍软件驱动程序的一个关键部分,就是74hc595的移位操作,我们是通过74hc595的译码输出来选通行,相对应我们要对74hc595写一个字,使其选通相应的列,这样就完成了一次LED的扫描操作主,由于人的视觉暂留,只要设置不同的扫描周期就可以产生不同的动态效果。

扫描周期的确定可以是模糊的,也可以是精确的。

所谓模糊的,就是根据经验,和人的视觉暂留的时间来估计起时,可能需要经过几次的尝试才能达到较好的显示效果。

所谓精确的就是根据人的视觉暂留时间,和所扫描的点阵数量来精确计算扫描周期,通过定时器来实现较为精确的扫描周期。

这种耗时一般不用这么精确,选择模糊的判断和几次尝试就能达到很好的显示效果了。

单片机在上电后能自动执行一次复位操作,同时开始接收外部晶振的信号输入。

从程序中的列扫描序列中读取列码的地址,并从码字表中反复读取行码的地址,由I/O口输出信号对LED点阵进行选通点亮,然后判断拉幕次数,显示出相应的字符来。

显示一幕后拉幕次数加1,再送新的幕次和行码地址。

4.216*16点阵显示程序

16*16点阵显示实验程序如下:

#include

#include

#defineucharunsignedchar

sbitSCK=P3^6;

sbitLCK=P3^5;

sbitSDI=P3^4;

//一共有16行,每次刷一行的代码

ucharcodeNUM_HANG[]={

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,};

//汉字“机”的字码

ucharcodeji[]=

{8,0,136,15,136,8,190,8,136,8,136,8,156,8,172,8,138,8,136,8,136,8,72,40,72,40,40,48,0,0,0,0};

//汉字“电”的字码

ucharcodedian[]=

{128,0,128,0,128,0,252,31,132,16,132,16,252,31,132,16,132,16,252,31,132,0,128,32,128,32,0,63,0,0,0,0};

//汉字”工“的字码

Ucharcodegong[]=

{0,0,252,31,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,254,63,0,0,0,0,0,0};

//汉字"程”的字码

Ucharcodecheng[]=

{0,0,176,31,142,16,136,16,136,31,62,0,8,0,152,31,44,2,12,2,138,31,8,2,8,2,200,63,0,0,0,0};

//汉字"学“的字码

Ucharcodexue[]=

{72,8,144,4,0,2,254,63,2,32,2,32,248,7,0,2,128,1,254,63,128,0,128,0,128,0,224,0,0,0,0,0};

//汉字”院“的字码

Ucharcodeyuan[]=

{0,2,30,4,210,63,82,32,10,0,138,31,18,0,18,0,210,63,18,9,14,9,130,8,66,40,34,48,0,0,0,0};

voidHC595_Send(uchardat1,uchardat0,uchardat2,uchardat3);

voidmain()

{

uchari,j;

while

(1)

{

for(j=255;j>0;j--)//一个字显示的次数,刷256次然后刷第二个字。

{

for(i=0;i<32;i=i+2)//一共有16行,所以刷16次

{

HC595_Send(~ji[i],~ji[i+1],NUM_HANG[i],NUM_HANG[i+1]);

}

}

HC595_Send(0xff,0xff,0x00,0x00);

for(j=255;j>0;j--)

{

for(i=0;i<32;i=i+2)

{

HC595_Send(~dian[i],~dian[i+1],NUM_HANG[i],NUM_HANG[i+1]);

}

}

for(j=255;j>0;j--)

{

for(i=0;i<32;i=i+2)

{

HC595_Send(~gong[i],~gong[i+1],NUM_HANG[i],NUM_HANG[i+1]);

}

}

for(j=255;j>0;j--)

{

for(i=0;i<32;i=i+2)

{

HC595_Send(~cheng[i],~cheng[i+1],NUM_HANG[i],NUM_HANG[i+1]);

}

}

HC595_Send(0xff,0xff,0x00,0x00);

for(j=255;j>0;j--)

{

for(i=0;i<32;i=i+2)

{

HC595_Send(~xue[i],~xue[i+1],NUM_HANG[i],NUM_HANG[i+1]);

}

}

for(j=255;j>0;j--)

{

for(i=0;i<32;i=i+2)

{

HC595_Send(~yuan[i],~yuan[i+1],NUM_HANG[i],NUM_HANG[i+1]);

}

}

}}

voidHC595_Send(uchardat1,uchardat0,uchardat3,uchardat2)

{

uchari;

SCK=1;

LCK=1;

for(i=0;i<8;i++)

{

SDI=dat0&0x01;//从高位到低位

dat0>>=1;

SCK=0;

_nop_();

_nop_();

SCK=1;

_nop_();

_nop_();

}

for(i=0;i<8;i++)

{

SDI=dat1&0x01;//从高位到低位

dat1>>=1;

SCK=0;

_nop_();

_nop_();

SCK=1;

_nop_();

_nop_();

}

for(i=0;i<8;i++)

{

SDI=dat2

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2