LED8x8点阵显示设计说明报告_点阵显示设计报告

2020-02-27 其他范文 下载本文

LED8x8点阵显示设计说明报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“点阵显示设计报告”。

班级:电子1649

姓名:王立学号:***44

LED8x8点阵显示设计说明报告

一、设计任务

1.设计要求

利用一块点阵数码板,按编程者要求实现任意符号的显示。2.此次设计研究的主要内容及应解决的问题

此次设计研究的主要内容是设计一个符号显示牌:通过程序控制符号显示牌,使符号显示牌,在无按键按下时,显示数字“0-9”,当第一次按下按键时,显示字母“μ”,当第二次按下按键时显示汉字“公”。应解决的问题:单片机P1口的输出电流不足以驱动二极管,需要加驱动,本次研究中以S8050作为驱动,同时在S8050NPN晶体管基极加4.7K的电阻。实验前要弄清晶体管三个引脚代表的极性,以免符号显示牌不亮导致而设计失败。

二、总体设计方案

2.1 硬件电路组成本产品采用以89C51单片机为核心芯片的电路来实现,主要由89C51芯片、晶振电路、三极管驱动电路、按键控制电路、8×8 LED点阵5部分组成,电路框图如图1所示。其中,89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到89C51芯片。时钟电路由89C51的18,19脚的时钟端(XTAI 1及XTAL2)以及12 MHz晶振X、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K 组成,分别接至89C51的RST复位输人端。LED点阵显示屏采用8x8共64个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把行列总线接在单片机的I/O口,然后把上面分析到的扫描代码送入总线,就可以得到显示的字符了。我们在实际应用中是将LED点阵的8条列线通过驱动电路接在P1口,8条行线通过限流电阻接在P0口。单片机89C51按照设定的程序在P1和P0接口输出与内部字符对应的代码电平送至LED点阵的行列线(高电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个字符的显示。再改变取表地址实现字符的滚动显示。硬件电路组成框图如图2-1所示。

图2-1 硬件电路组成框图

2.2 系统各单元电路设计 2.2.1 89C51单片机最小系统

最小系统包括晶体振荡电路、复位开关和电源部分。图2-2为89C51单片机的最小系统。图2-2 单片机最小系统

2.2.2 按键控制电路

单片机开始工作时,P2.0是高电平。当按键按下时,检测到一个低电平信号,改变P0口输出信号,控制8×8 LED点阵显示屏显示不同字符。

图2-3 按键控制电路

2.2.3 三极管驱动电路

扫描驱动电路的功能主要是有P1口输出高电平使三极管发射结导通,发射结输出足够大的电流使二极管导通。

图2-4 三极管驱动电路 2.2.4 8×8 LED点阵介绍 图(4)为8×8点阵LED外观及引脚图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则电子模块中的0口为1,A口为0即可。应用时限流电阻可以放在横轴或列轴。

图2-5 8×8点阵LED外观及引脚

(1)把“单片机系统”区域中的P0端口用8芯排芯连接到“点阵模块”区域中的“A~H”端口上;

(2)把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“0~7”端口上;

为了方便于单片机连接,我们在焊接的过程中特意将0~7接口排列出来作为列,将A~H接口作为行,这样我们就可以直接将AT89C51单片机的P0口与0~7接口一次连接,将AT89C51单片机的P1口与A~H接口一次连接。要使LED发亮即使给予数字端高电平,字母端给予低电平,就能使二极管发亮。

2.3 字符的点阵显示原理及字库代码获取方法

我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在64象素范围内的任何图形。如查用8位的AT89C51单片机控制,如图所示

图2-6 8×8点阵等效电路

为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。首先将8行分成4位的上、下两部分,把发光的象素位编为0不发光的象素位为1的十六进制代码。这样就把要显示的“公”字编为如下代码:

0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf

由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚字符点阵代码的获取过程。字符点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8—128 Hz,周期小于7.8 ms即可。

三、程序设计

3.1程序流程图

开始初始化依次显示0~9是否按键NoYes依次显示0~9显示字符μ是否按键NoYes显示字符μ显示汉字公是否按键NoYes显示汉字公

图3-1 主程序流程图

3.2程序设计

根据上述所说的程序流程图,设计程序如附录1。

四、调试及性能分析

4.1系统调试 4.1.1软件调试

首先根据各单元电路模块,利用Proteus软件将总的硬件原理图绘制好,设计好各模块要使用的I/O口,如:8×8点阵LED显示屏时候插反,先检测下,无硬件错误后,再进行程序编程。

利用C语言的编程方式,将系统要求的基本功能,以及创新功能根据程序流程图编写出来,用Keil软件调试无误后,生成Hex文件。

双击Proteus中的AT89C51芯片,将Keil生成的Hex加载到芯片内,进行仿真,经调试后所编写的程序能够完美实现系统所需的各种功能。

4.1.2硬件调试

硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。

(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。

(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。

(4)将烧录好程序的最小单片机系统接入各模块后,各模块能过正常工作,如:数码管正常发光。

4.2设计分析

将烧录好程序的最小单片机系统与各模块连接好后,8×8点阵LED显示屏显示初始值。按键一次之后,显示屏显示滚动字符μ,再按键一次,显示屏显示汉字“公”。

经软件调试和硬件调试后,所设计的系统完美实现了所需的控制要求和创新要求。

附录1:程序清单

#include #define uchar unsigned char #define uint unsigned int uchari,j,k,scan,num,count;sbit key=P2^0;uchar code table1[]= {0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf};//μ uchar code table2[]= {0xf7,0xdb,0xad,0xb7,0xbe,0xdd,0xbb,0xf7};uchar code table[][8]= {{0xff,0xff,0xc3,0xbd,0xbd,0xc3,0xff,0xff}, //0 {0xff,0xbf,0xbb,0x81,0x80,0xbf,0xbf,0xff}, {0xff,0xff,0xbb,0x9d,0xad,0xb3,0xff,0xff}, {0xff,0xff,0xdd,0xbe,0xb6,0xc9,0xff,0xff}, {0xff,0xef,0xe7,0xeb,0x81,0xef,0xef,0xff}, {0xff,0xff,0xd1,0xb5,0xb5,0xcd,0xff,0xff}, {0xff,0xff,0xc1,0xb6,0xb6,0xcd,0xff,0xff}, {0xff,0xff,0xfd,0xfd,0x8d,0xf5,0xf9,0xff}, {0xff,0xff,0xc9,0xb6,0xb6,0xc9,0xff,0xff}, {0xff,0xff,0xd9,0xb6,0xb6,0xc1,0xff,0xff}};//9 void delay(uint z){ uintx,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);} void main(){ key=1;num=0;while(1){

if(num==0)

{

for(j=0;j

{

if(key==0)

{

delay(10);

if(key==0)

{

num=1;

公 // //1 //2 //3 //4 //5 //6 //7 //8

while(!key);

}

}

if(num!=0)

break;

for(k=0;k

{

scan=0x01;

for(i=0;i

{

P0=table[j][i];

P1=scan;

delay(2);

scan

}

} } } if(num==1){

for(j=0;j

//8组数据

{

if(key==0)

{

delay(10);

if(key==0)

{

num=2;

while(!key);

}

}

if(num!=1)

break;

for(k=0;k

{

scan=0x01;

//初始扫描信号

for(i=8;i>0;i--)

//扫描周期

{

if(i>j)P0=table1[8+(j-i)];

else P0=table1[j-i];

P1=scan;

delay(2);

scan

}

}

}

}

if(num==2)

{

if(key==0)

{

delay(10);

if(key==0)

{

num=0;

while(!key);

}

}

scan=0x01;

for(i=0;i

{

P0=table2[count++];

if(count==8)count=0;

P1=scan;

delay(2);

scan

}

}

} }

附录2:点阵的放置与接线方法:

附录3:硬件原理图

《LED8x8点阵显示设计说明报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
LED8x8点阵显示设计说明报告
点击下载文档
相关专题 点阵显示设计报告 设计 报告 点阵 点阵显示设计报告 设计 报告 点阵
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文