电子课程设计LED点阵电子显示屏的设计.docx

上传人:b****3 文档编号:10816748 上传时间:2023-05-27 格式:DOCX 页数:19 大小:390.31KB
下载 相关 举报
电子课程设计LED点阵电子显示屏的设计.docx_第1页
第1页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第2页
第2页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第3页
第3页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第4页
第4页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第5页
第5页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第6页
第6页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第7页
第7页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第8页
第8页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第9页
第9页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第10页
第10页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第11页
第11页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第12页
第12页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第13页
第13页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第14页
第14页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第15页
第15页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第16页
第16页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第17页
第17页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第18页
第18页 / 共19页
电子课程设计LED点阵电子显示屏的设计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子课程设计LED点阵电子显示屏的设计.docx

《电子课程设计LED点阵电子显示屏的设计.docx》由会员分享,可在线阅读,更多相关《电子课程设计LED点阵电子显示屏的设计.docx(19页珍藏版)》请在冰点文库上搜索。

电子课程设计LED点阵电子显示屏的设计.docx

电子课程设计LED点阵电子显示屏的设计

…………………………装………………………………订………………………………线………………………………………………………………

LED点阵电子显示屏的设计

简述:

LED点阵显示系统,以AT89S52单片机为核心,由键盘控制模块、串口通信模块、LED屏幕显示模块等组成,实现了对星期、年月日、时分秒的显示、本系统不仅可以实现题目要求的基本功能,同时发挥部分也能得到完全的实现,最主要是通过对PC机的实时修改和键盘控制,都能实现LED显示屏内容的改变,并且有一定的创新功能。

关键词:

LED点阵电子显示屏单片机键盘控制

一、选用器材

Led8*8点阵屏绿色5个,74LS373三态输出的八D透明锁存器型号,tPdPD5个,带公共端的8电阻排(排阻)1个,AT89C52单片机1个,74LS138型号3线-8线译码器1个,石英晶振1MHz1个,电容30pF3个,电阻10K欧1个,按钮6个,+5V电源1个

二、设计方案

1、实验功能

从实验功能的实现上我们考虑的是:

首先要满足基本的要求,例如显示时分秒,年月日,可修改,除此之外我们还考虑到一些比较美观的而且使用的功能,例如信息的左右滚屏循环显示等。

以下便是我们的实验功能部分的内容。

(1)实验部分

实验功能1:

自制一台简易8行*32列点阵显示的LED电子显示屏,能显示数字。

实验功能2:

自制显示屏控制器,扩展键盘和相应的接口实现多功能显示控制

实验功能3:

实现实时时间的显示,显示屏数字显示,时:

分:

秒,例如(12:

24:

30);星期的显示,例如(SUN.);年月日的显示,例如(20110504)。

实验功能4:

显示屏通过按键切换显示星期,年月日,时间。

(2)发挥部分

发挥功能1:

实现信息的左右滚屏显示,预存信息的定时循环显示。

发挥功能2:

信息具有掉电保护。

发挥功能3:

实现和PC机通讯,通过PC机串口直接对显示信息进行更新。

发挥功能4:

其他发挥功能。

2、总体方案

(1)工作原理

利用单片机AT89S52作为本系统的中控模块,通过其自身的程序,把数据传输到显示模块,实现日历的显示。

点阵LED电子显示屏显示器为显示模块,把单片机传来的数据显示出来,并实现滚动显示。

同时,按键模块可以用来实现各种模式的切换以及操作。

(2)总体设计

以下为该电路的整体电路图设计方案:

图1系统总电路图

该电路以LED为核心,配合52单片机以实现时间显示功能。

点阵LED电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。

在显示电路中,主要靠按键来实现各种显示要求的选择与切换。

主要分成显示模块,复位模块,晶振模块等模块。

3、方案论证

(1)显示部分:

显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:

方案一:

静态显示,即将每个二极管的状态分别用1和0表示,0则无电流,为暗,1则有电流,为亮。

若给每个二极管一个驱动电路,一个图像输入后,所有LED的状态保持到下一个图像。

对于静态显示方式,所需的译码驱动装置很多,引线多而负责,成本高,可靠性也低。

方案二:

动态显示,即对每一个LED屏进行分割,对组成图像的各个部分分别显示,这样利用人眼的暂留效应和发光二极管发光时间的长短,也同样可以实现显示功能,这样就可以避免静态显示出现的问题。

但是,设计上如果处理不当,容易造成图像闪烁的问题,因此合理的涉及要保证驱动电路容易实现而且保证图像稳定补闪烁。

动态显示采用多路复用技术的动态扫描显示方式,我们发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间大于等于1ms时,显示亮度好,无闪烁。

鉴于以上原因,我们采用方案二。

(2)数字时钟

本实验采用软件实现数字时钟。

原理为:

在单片机内部存储器分别存放时钟的年、月、日、时、分、秒、星期的信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则清零且相应的分值加1;若分值达到60,则清零且相应的时值加1;若相应的时值达到24,则清零且相应的日值加1;若相应的日值分别达到29,30,31时,根据判断来增加月值;若相应的月值达到12时,清零且年值加1。

此方案硬件电路简单,但单片机不上电则程序不执行,而且时钟精度不是很高。

(3)显示接口芯片的选择

方案一:

采用并口输入,占用大量I/O口。

方案二:

采用串口输入,使用少量I/O口,但传输速度稍微慢了一些,但是不影响显示质量。

于是我们采用TI公司的DMOS器件TPIC6B595,其最大特点是驱动功率大,可直接做LED的驱动。

鉴于以上原因,我们采用方案二。

(4)串口通信芯片的选择

方案一:

采用1488或1489芯片实现电平转换,但在使用中发现可靠性补高,使用麻烦。

方案二:

采用单电源电平转换芯片MAX232A可以使电路变得简单,可靠。

鉴于以上原因,我们采用方案二。

(5)键盘控制模块:

本实验讲单片机PA口接按键,PC口则用于控制状态显示所用LED点阵。

每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。

当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。

以下便是其电路:

图2键盘控制模块电路

(6)电源模块:

方案一:

采用干电池作为LED点阵系统的电源,由于点阵系统用电量大,使用干电池需要经常更换电池,不符合节俭,环保型社会的要求。

方案二:

采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。

鉴于以上原因,我们采用方案二。

4、元件介绍

(1)LED8*8点阵屏

双基色8*8点阵严格有共阴型和共阳型之分的,一个双基色LED(一个发亮点)阴极接在一起就是共阴、否则反之为共阳。

我们使用的就是共阳型的LED双基色8*8点阵屏。

我们所看到的这种8*8点阵屏准确地说不叫双色,而是叫双基色,那是因为显示的颜色是根据电流不同有几种,主要显示红、绿、橙。

点阵屏是现代做广告产品的最佳发亮器件。

图3LED共阳型8*8点阵屏

(2)AT89S52单片机

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52引脚图如图4所示。

图4AT89S52单片机引脚图

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

(3)74LS373

373为三态输出的八D透明锁存器,共有54S373和74LS373两种线路。

它的输出端O0~O7可直接与总线相连。

当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。

当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

当锁存允许端LE为高电平时,O随数据D而变。

当LE为低电平时,O被锁存在已建立的数据电平。

当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。

一下为74LS373引脚图:

图574LS373引脚图

(4)74LS138

74LS138为3线-8线译码器,共有54/74S138和54/74LS138两种线路结构型式。

其工作原理如下:

当一个选通端(E1)为高电平,另外两个选通端(E2)和(E3)为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。

比如:

A0A1A2=110时,则Y6输出端输出低电平信号。

利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。

若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

74LS138还可用在8086的译码电路中,扩展内存。

以下便是74LS138的引脚图:

图674LS138引脚图

4、程序流程图

我们的程序流程图分为主程序流程图,显示子程序流程图,显示时间子程序流程图。

主程序流程图主要说明从系统初始化开始到按键给系统带来的变化;显示子程序流程图主要说明显示程序是怎么显示数字和字母的;显示时间子程序流程图表明如何调用显示时间子程序来实现时间的显示。

以下便是我们的各个程序流程图:

图7主程序流程图

图8显示子程序流程图

图9显示时间子程序流程图

三、结论与总结

LED点阵电子显示屏的设计模拟电路非常成功,完全可以按照要求输出数据。

电路图相对别的实验设计复杂了很多,导线多出三倍有余,焊接相当麻烦。

但通过这次课程设计,是我们加深了对单片机的认识;知道了显示屏的制作原理,和上次设计相比有了新的突破。

LED点阵显示已经广泛应用与各行各业,在新的研究下,将会有更广泛的应用。

四、参考文献

[1]李朝青.单片机原理及接口技术[M].北京航空航天大学出版社,2005.

[2]蒋立平.数字逻辑电路与系统设计[M].电子工业出版社,2008.

[3]任涛等.闪速存储器数据及应用简明速查手册[M].电子工业出版社,1997.

[4]何立民.单片机应用技术选编[M].北京航空航天大学出版社,2000.

 

附件1:

电路设计实物图

 

附件2:

实验程序

#include"reg51.h"

#defineucharunsignedchar

#defineuintunsignedint

#definetrue1

#definefaluse1

sbitset_key=P3^0;

sbitup_key=P3^1;

sbitdown_key=P3^2;

sbitsign=P3^3;

sbitselect_key=P3^4;

sbitset_ring_key=P3^5;

uintsec;

uintmin=23;

uinthour=12;

uintday=10;

uintmonth=10;

uintyearl=7;

uintyearh=20;

uinttcnt;

uintcnt=0;

uintcursor=0;

uintsjsz=0;

uchara=0xff;

ucharcodeSeg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

voiddelay(uintt)

{

uinti;

while(t--)

{for(i=0;i<125;i++);}

}

voidKdelay()

{

uchari,j;

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

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

}

voiddisplay(ucharL1,ucharL2,ucharL3,ucharL4,ucharL5,ucharL6,ucharL7,ucharL8,ucharL9,ucharL10,ucharL11,ucharL12,ucharL13,ucharL14)

{

if(cnt==1){

if(cursor==6){P2=0x7F|a;P0=L1;delay

(1);}else{P2=0x7F;P0=L1;delay

(1);}//yearh

if(cursor==6){P2=0xBF|a;P0=L2;delay

(1);}else{P2=0xBF;P0=L2;delay

(1);}//yearh

if(cursor==6){P2=0xDF|a;P0=L3;delay

(1);}else{P2=0xDF;P0=L3;delay

(1);}//yearl

if(cursor==6){P2=0xEF|a;P0=L4;delay

(1);}else{P2=0xEF;P0=L4;delay

(1);}//yearl

if(cursor==5){P2=0xF7|a;P0=L5;delay

(1);}else{P2=0xF7;P0=L5;delay

(1);}//month

if(cursor==5){P2=0xFB|a;P0=L6;delay

(1);}else{P2=0xFB;P0=L6;delay

(1);}//month

if(cursor==4){P2=0xFD|a;P0=L7;delay

(1);}else{P2=0xFD;P0=L7;delay

(1);}//day

if(cursor==4){P2=0xFE|a;P0=L8;delay

(1);}else{P2=0xFE;P0=L8;delay

(1);}//day

P2=0xFF;}

else{

if(cursor==3){P2=0x7F|a;P0=L9;delay

(1);}else{P2=0x7F;P0=L9;delay

(1);}//hour

if(cursor==3){P2=0xBF|a;P0=L10;delay

(1);}else{P2=0xBF;P0=L10;delay

(1);}//hour

if(cnt!

=1){P2=0xDF;P0=0X40;delay

(1);}

if(cursor==2){P2=0xEF|a;P0=L11;delay

(1);}else{P2=0xEF;P0=L11;delay

(1);}//min

if(cursor==2){P2=0xF7|a;P0=L12;delay

(1);}else{P2=0xF7;P0=L12;delay

(1);}//min

if(cnt!

=1){P2=0xFB;P0=0X40;delay

(1);}

if(cursor==1){P2=0xFD|a;P0=L13;delay

(1);}else{P2=0xFD;P0=L13;delay

(1);}//sec

if(cursor==1){P2=0xFE|a;P0=L14;delay

(1);}else{P2=0xFE;P0=L14;delay

(1);}//sec

P1=0xFF;

}}

main()

{

TMOD=0x02;//设置模式为定时器T0的模式2断的产生中断去执行中断函数本次定时时间为64ms

TH0=0x06;//设置计数器初值,靠TH0存储重装的计数值X0=256-250=6

TL0=0x06;

TR0=1;//启动T0

ET0=1;//开启定时器T0中断允许

EA=1;//开启中断总控制

while

(1)

{

if(set_key==0)

{

Kdelay();

if(set_key==0)

{

cursor++;

if(cursor>=7){cursor=0;}//在选择到调整年时又返回秒设置,当CURSOR=7时不选中

}

}

if(up_key==0)

{

Kdelay();

if(up_key==0)

{//加部分

if(cursor==1){sec++;if(sec==60)sec=0;}

if(cursor==2){min++;if(min==60)min=0;}

if(cursor==3){hour++;if(hour==24)hour=0;}

if(cursor==4){day++;if(day==31)day=1;}

if(cursor==5){month++;if(month==13)month=1;}

if(cursor==6){yearl++;if(yearl==100)yearl=0;}

if(cursor==7){yearh++;if(yearh==30)yearh=20;}

}

}

if(down_key==0)

{

Kdelay();

if(down_key==0)

{//减部分

if(cursor==1){sec--;if(sec==00)sec=59;}

if(cursor==2){min--;if(min==0)min=59;}

if(cursor==3){hour--;if(hour==0)hour=23;}

if(cursor==4){day--;if(day==0)day=31;}

if(cursor==5){month--;if(month==0)month=12;}

if(cursor==6){yearl--;if(yearl==0)yearl=99;}

if(cursor==7){yearh--;if(yearh==20)yearh=30;}

}

}

if(select_key==0)

{

Kdelay();

if(select_key==0){

cnt++;if(cnt>=2)cnt=0;}}

display(Seg[yearh/10],Seg[yearh%10],Seg[yearl/10],Seg[yearl%10],Seg[month/10],Seg[month%10],Seg[day/10],Seg[day%10],Seg[hour/10],Seg[hour%10],Seg[min/10],Seg[min%10],Seg[sec/10],Seg[sec%10]);

}

}

voidt0(void)interrupt1using0//t0的中断程序

{

tcnt++;

if(tcnt==4000)//定时器的定时计数,4000次250us为1秒,中断4000次后才执行刷新,期间照上面的语句显示

{

tcnt=0;

sign=~sign;

a=~a;

sec++;

if(sec==60)

{

sec=0;

min++;

if(min==60)

{

min=0;

hour++;

if(hour==24)

{

hour=0;

day++;

if(month==2&&((yearl==0&&yearh%4==0)||(yearl!

=0&&yearl%4==0))&&day==30)day=1;

elseif(month==2&&day==29)day=1;

elseif((month==4||month==6||month==9||month==11)&&day==31)day=1;

elseif(day==32)day=1;

if(day==1)

{

month++;

if(month==13)

{

month=1;

yearl++;

if(yearl==100)

{

yearl=0;

yearh++;

if(yearh==100)

{

yearh=20;

}

}

}

}

}

}

}

}

}

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

当前位置:首页 > 工作范文 > 行政公文

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

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