基于单片机16_16的点阵显示毕业设计.doc_第1页
基于单片机16_16的点阵显示毕业设计.doc_第2页
基于单片机16_16的点阵显示毕业设计.doc_第3页
基于单片机16_16的点阵显示毕业设计.doc_第4页
基于单片机16_16的点阵显示毕业设计.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机16*16的点阵显示院 系 :机电工程学院专业(班级):电子信息工程2班姓名:学号:指导教师:职称:完成日期:目 录1 引 言12 设计的任务与要求33 硬件电路设计43.1 总体设计方案43.2 元器件描述53.2.1 stc89c52单片机53.2.2 74hc595寄存器的概述73.2.4 16*16点阵显示屏幕83.2.5 点阵显示模块93.3 89c52应用系统部分电路103.3.1 晶体振电路原理和概述103.3.2 上电复位电路113.3.3 i/o口和扩展锁存器控制点阵显示124 系统软件设计144.1 软件设计描述144.2 16*16点阵显示程序145 调试以及性能分析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*16led点阵显示器,编写显示“机电工程学院”等中文字符字符,最好能移动显示。现在市场上各类基于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:图2 74hc595电路图3.2 元器件描述这此课程设计主要采用单片机stc89c52为led显示屏的控制核心,系统主要包括led驱动模块、外部扩展锁存器74hc595。下面对各模块和器件的设计逐一进行论证阐述。 3.2.1 stc89c52单片机stc89c52俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪存存储器组合在单个芯片中,atmel的stc89c52是一种高效微控制器。at89c系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。stc89c52单片机40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和i/o引脚。如图3所示图3 stc89c52单片机的外形及引脚排列 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.2 74hc595寄存器的概述74hc595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74hc595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断状态。三态。特点8位串行输入8位串行或并行输出存储状态寄存器,三种状态输出寄存器可以直接清除100mhz的移位频率输出能力并行输出,总线驱动串行输出;595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在schcp的上升沿输入,在stcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(ds),和一个串行输出(q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能oe时(为低电平),存储寄存器的数据输出到总线。cpd决定动态的能耗,pdcpdvccf1+(clvcc2f0)f1输入频率,cl输出电容f0输出频率(mhz)vcc=电源电压引脚说明符号引脚描述。图4 74hc595 移位寄存器引脚图3.2.4 16*16点阵显示屏幕 8*8的led点阵为单色行共阴模块,单点的工作电压为正向(vf)=1.8v,正向电流(if)=18-10ma。静态点亮(64点全亮)总电流为640 ma 总电压为1.8v,总功率为1.15w。动态时取决于扫描频率(1/8或1/16秒)单点瞬间电流可达80-160 ma。16*16点阵表态时16*16*10ma,动态时单点电流80-160 ma。 接线方式:当某一行线打高时,某一列线为低时,其行列交叉的点就被点亮:某一列线为高时,其行列交叉的点为暗;当某一行线打低时,无论列线如何,对应这一行的点全部暗。其引脚图如图6所示。1 控制第五行显示 接高 9 控制第一行显示 接高2 控制第七行显示 接高 10 控制第四行显示 接低3 控制第二行显示 接低 11 控制第六行显示 接低4 控制第三行显示 接低 12 控制第四行显示 接低5 控制第八行显示 接高 13 控制第一行显示 接高6 控制第五行显示 接低 14 控制第二行显示 接高7 控制第六行显示 接高 15 控制第七行显示 接低8 控制第三行显示 接高 16 控制第八行显示 接低图5 16*16点阵引脚图图6 16*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.3 89c52应用系统部分电路以下是stc89c52应用系统设计包括晶振电路和上电复位电路,以及单片机i/o口或以扩展锁存器方式控制的点阵显示。 3.3.1 晶体振电路原理和概述单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。stc89c52单片机时钟电路示意图如图8所示图8 stc89c52单片机时钟电路示意图在mcs-52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚xtal1,输出端为引脚xtal2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容c1、c2形成反馈电路,可构成稳定的自激振荡频率范围通常是1.212mhz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快。在上图中,使用晶体振荡器时,c1、c2取值(3010)pf;使用陶瓷振荡器时,c1、c2取值(4010)pf。c1、c2的取值虽然没有严格的喜怒无常,但电容的大小影响振荡电路的稳定性和快速性,通常取值2030pf,在设计印制电路时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后越冬作物为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fose/2;状态时钟三分频后为ale信号,其频率为fose/6;状态时钟六分频为机器周期,其频率为fose/12。也可以由外部时钟电路睛内输入脉冲信号作为单位片机的振荡脉冲。这时外部脉冲信号是经xtal1引脚引入的,而xtal2引脚悬空或接地。对外部设备信号的点空比没有要求,但高低持续的时间不应小于20ns。这种方式常用于多块芯片同时工作,便于同步。其外部脉冲接入方式如图9所示图9 stc89c52单片机外部时钟输入接线图 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.3 i/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.2 16*16点阵显示程序16*16点阵显示实验程序如下:#include#include#define uchar unsigned char sbit sck=p36;sbit lck=p35;sbit sdi=p34;/一共有16行,每次刷一行的代码uchar code num_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,;/汉字“机”的字码uchar code ji=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;/汉字“电”的字码uchar code dian=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;/汉字”工“的字码uchar code gong=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;/汉字程” 的字码 uchar code cheng=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;/汉字学“的字码uchar code xue=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 ;/汉字”院“的字码uchar code yuan=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;void hc595_send(uchar dat1,uchar dat0,uchar dat2,uchar dat3); void main()uchar i,j;while(1)for(j=255;j0;j-) /一个字显示的次数,刷256次然后刷第二个字。 for(i=0;i0;j-)for(i=0;i0;j-)for(i=0;i0;j-)for(i=0;i0;j-)for(i=0;i0;j-)for(i=0;i32;i=i+2)hc595_send(yuani,yuani+1,num_hangi,num_hangi+1); void hc595_send(uchar dat1,uchar dat0,uchar dat3,uchar dat2)uchar i;sck=1;lck=1;for(i=0;i=1;sck=0;_nop_();_nop_();sck=1;_nop_();_nop_();for(i=0;i=1;sck=0;_nop_();_nop_();sck=1;_nop_();_nop_();for(i=0;i=1;sck=0;_nop_();_nop_();sck=1;_nop_();_nop_();for(i=0;i=1;sck=0;_nop_();_nop_();sck=1;_nop_();_nop_();lck=0;/下面是输出时钟_nop_();_nop_();lck=1;_nop_();_nop_();5 调试以及性能分析调试主要分为硬件调试和软件调试:硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,就不知道哪一方面错了。当然,在设计的过程中也存在着失误和不足,在测试中进行修改了。对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是单片机汇编语言,所以这个系统在编写程序过程中都采用汇编语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如c51中,led显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。这个方案设计的16*16的点阵led图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定。此次系统设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论