ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:390.31KB ,
资源ID:10816748      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10816748.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子课程设计LED点阵电子显示屏的设计.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、电子课程设计LED点阵电子显示屏的设计装订线 LED点阵电子显示屏的设计简述:LED点阵显示系统,以AT89S52单片机为核心,由键盘控制模块、串口通信模块、LED屏幕显示模块等组成,实现了对星期、年月日、时分秒的显示、本系统不仅可以实现题目要求的基本功能,同时发挥部分也能得到完全的实现,最主要是通过对PC机的实时修改和键盘控制,都能实现LED显示屏内容的改变,并且有一定的创新功能。 关键词:LED点阵电子显示屏 单片机 键盘控制一、选用器材Led8*8点阵屏绿色5个,74LS373三态输出的八D 透明锁存器型号,tPd PD5个,带公共端的8电阻排(排阻)1个,AT89C52单片机1个,74

2、LS138型号3线8线译码器1个,石英晶振1MHz1个,电容30pF3个,电阻10K欧1个,按钮6个,+5V电源1个二、设计方案1、实验功能 从实验功能的实现上我们考虑的是:首先要满足基本的要求,例如显示时分秒,年月日,可修改,除此之外我们还考虑到一些比较美观的而且使用的功能,例如信息的左右滚屏循环显示等。以下便是我们的实验功能部分的内容。(1)实验部分实验功能1:自制一台简易8行*32列点阵显示的LED电子显示屏,能显示数字。实验功能2:自制显示屏控制器,扩展键盘和相应的接口实现多功能显示控制实验功能3:实现实时时间的显示,显示屏数字显示,时:分:秒,例如(12:24:30);星期的显示,例

3、如(SUN.);年月日的显示,例如(20110504)。实验功能4:显示屏通过按键切换显示星期,年月日,时间。(2)发挥部分发挥功能1:实现信息的左右滚屏显示,预存信息的定时循环显示。发挥功能2:信息具有掉电保护。发挥功能3:实现和PC机通讯,通过PC机串口直接对显示信息进行更新。发挥功能4:其他发挥功能。2、总体方案(1)工作原理利用单片机AT89S52作为本系统的中控模块,通过其自身的程序,把数据传输到显示模块,实现日历的显示。点阵LED电子显示屏显示器为显示模块,把单片机传来的数据显示出来,并实现滚动显示。同时,按键模块可以用来实现各种模式的切换以及操作。(2)总体设计以下为该电路的整体

4、电路图设计方案:图1 系统总电路图该电路以LED为核心,配合52单片机以实现时间显示功能。点阵LED电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。主要分成显示模块,复位模块,晶振模块等模块。3、方案论证(1)显示部分:显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:方案一:静态显示,即将每个二极管的状态分别用1和0表示,0则无电流,为暗,1则有电流,为亮。若给每个二极管一个驱动电路,一个图像输入后,所有LED的状态保持到下一个图像。对于静态显示方式,所需的译码驱动装置很多,引线

5、多而负责,成本高,可靠性也低。方案二:动态显示,即对每一个LED屏进行分割,对组成图像的各个部分分别显示,这样利用人眼的暂留效应和发光二极管发光时间的长短,也同样可以实现显示功能,这样就可以避免静态显示出现的问题。但是,设计上如果处理不当,容易造成图像闪烁的问题,因此合理的涉及要保证驱动电路容易实现而且保证图像稳定补闪烁。动态显示采用多路复用技术的动态扫描显示方式,我们发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间大于等于1ms时,显示亮度好,无闪烁。鉴于以上原因,我们采用方案二。(2)数字时钟本实验采用软件实现数字时钟。原理为:在单片机内部存储器分别存放时钟的年、

6、月、日、时、分、秒、星期的信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则清零且相应的分值加1;若分值达到60,则清零且相应的时值加1;若相应的时值达到24,则清零且相应的日值加1;若相应的日值分别达到29,30,31时,根据判断来增加月值;若相应的月值达到12时,清零且年值加1。此方案硬件电路简单,但单片机不上电则程序不执行,而且时钟精度不是很高。(3)显示接口芯片的选择方案一:采用并口输入,占用大量I/O口。方案二:采用串口输入,使用少量I/O口,但传输速度稍微慢了一些,但是不影响显示质量。于是我们采用TI公司的DMOS器件TPIC6B

7、595,其最大特点是驱动功率大,可直接做LED的驱动。鉴于以上原因,我们采用方案二。(4)串口通信芯片的选择方案一:采用1488或1489芯片实现电平转换,但在使用中发现可靠性补高,使用麻烦。方案二:采用单电源电平转换芯片MAX232A可以使电路变得简单,可靠。鉴于以上原因,我们采用方案二。(5)键盘控制模块:本实验讲单片机PA口接按键,PC口则用于控制状态显示所用LED点阵。每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。以下便是其电路:图2 键盘控

8、制模块电路(6)电源模块:方案一:采用干电池作为LED点阵系统的电源,由于点阵系统用电量大,使用干电池需要经常更换电池,不符合节俭,环保型社会的要求。方案二:采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。鉴于以上原因,我们采用方案二。4、元件介绍(1)LED8*8点阵屏双基色8*8 点阵严格有共阴型和共阳型之分的,一个双基色LED(一个发亮点)阴极接在一起就是共阴、否则反之为共阳。我们使用的就是共阳型的LED双基色8*8点阵屏。我们所看到的这种8*8 点阵屏准确地说不叫双色,而是叫双基色,那是因为显示的颜色是根据电流不同

9、有几种,主要显示红、绿、橙。点阵屏是现代做广告产品的最佳发亮器件。图3 LED共阳型8*8点阵屏(2)AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52引脚图如图4所示。图4 AT89S52单片机引脚图AT89S52具有以下标准功能:8k字节

10、Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。(3)74LS373 373为三态输出的八D透明锁存器,共有54S373和74LS373两种线路。它的输出端O0O7可直接与总线相连。 当三态允许控制端OE为低电平时,O0O7为正常逻辑状态

11、,可用来驱动负载或总线。当OE为高电平时,O0O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O 被锁存在已建立的数据电平。当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。一下为74LS373引脚图:图5 74LS373引脚图(4)74LS138 74LS138为3线8线译码器,共有54/74S138和54/74LS138两种线路结构型式。 其工作原理如下:当一个选通端(E1)为高电平,另外两个选通端(E2)和(E3)为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y

12、0至Y7对应的输出端以低电平译出。比如:A0A1A2=110时,则Y6输出端输出低电平信号。 利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。 74LS138还可用在8086的译码电路中,扩展内存。 以下便是74LS138的引脚图:图6 74LS138引脚图4、程序流程图我们的程序流程图分为主程序流程图,显示子程序流程图,显示时间子程序流程图。主程序流程图主要说明从系统初始化开始到按键给系统带来的变化;显示子程序流程图主要说明显示程序是怎么显示数字和字母的;显示时间子程序流程图表明如

13、何调用显示时间子程序来实现时间的显示。以下便是我们的各个程序流程图:图7 主程序流程图 图8 显示子程序流程图图9 显示时间子程序流程图三、结论与总结LED点阵电子显示屏的设计模拟电路非常成功,完全可以按照要求输出数据。电路图相对别的实验设计复杂了很多,导线多出三倍有余,焊接相当麻烦。但通过这次课程设计,是我们加深了对单片机的认识;知道了显示屏的制作原理,和上次设计相比有了新的突破。LED点阵显示已经广泛应用与各行各业,在新的研究下,将会有更广泛的应用。四、参考文献1 李朝青. 单片机原理及接口技术 M. 北京航空航天大学出版社,2005.2 蒋立平. 数字逻辑电路与系统设计 M. 电子工业出

14、版社,2008.3 任涛等. 闪速存储器数据及应用简明速查手册 M. 电子工业出版社,1997.4 何立民. 单片机应用技术选编 M. 北京航空航天大学出版社,2000.附件1:电路设计实物图附件2:实验程序#include reg51.h#define uchar unsigned char#define uint unsigned int#define true 1#define faluse 1sbit set_key = P30;sbit up_key = P31;sbit down_key = P32;sbit sign = P33;sbit select_key= P34;sbit

15、 set_ring_key = P35;uint sec;uint min=23;uint hour=12;uint day=10;uint month=10;uint yearl=7;uint yearh=20;uint tcnt;uint cnt=0;uint cursor=0;uint sjsz=0;uchar a=0xff;uchar code Seg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(uint t) uint i; while(t-) for (i=0;i0;i-) for(j=248;j0;j-

16、);void display(uchar L1,uchar L2,uchar L3,uchar L4,uchar L5,uchar L6,uchar L7,uchar L8,uchar L9,uchar L10,uchar L11,uchar L12,uchar L13,uchar L14)if(cnt=1) if(cursor=6)P2=0x7F|a;P0=L1;delay(1);elseP2=0x7F;P0=L1;delay(1); /yearh if(cursor=6)P2=0xBF|a;P0=L2;delay(1);elseP2=0xBF;P0=L2;delay(1); /yearh

17、if(cursor=6)P2=0xDF|a;P0=L3;delay(1);elseP2=0xDF;P0=L3;delay(1); /yearl if(cursor=6)P2=0xEF|a;P0=L4;delay(1);elseP2=0xEF;P0=L4;delay(1); /yearl if(cursor=5)P2=0xF7|a;P0=L5;delay(1);elseP2=0xF7;P0=L5;delay(1); /month if(cursor=5)P2=0xFB|a;P0=L6;delay(1);elseP2=0xFB;P0=L6;delay(1); /month if(cursor=4)

18、P2=0xFD|a;P0=L7;delay(1);elseP2=0xFD;P0=L7;delay(1); /day if(cursor=4)P2=0xFE|a;P0=L8;delay(1);elseP2=0xFE;P0=L8;delay(1); /day P2=0xFF;else if(cursor=3)P2=0x7F|a;P0=L9;delay(1);elseP2=0x7F;P0=L9;delay(1); /hour if(cursor=3)P2=0xBF|a;P0=L10;delay(1);elseP2=0xBF;P0=L10;delay(1); /hour if(cnt!=1)P2=0x

19、DF;P0=0X40;delay(1); if(cursor=2)P2=0xEF|a;P0=L11;delay(1);elseP2=0xEF;P0=L11;delay(1); /min if(cursor=2)P2=0xF7|a;P0=L12;delay(1);elseP2=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);elseP2=0xFD;P0=L13;delay(1); /sec if(cursor=1)P2=0xFE|a;P0=L1

20、4;delay(1);elseP2=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; /在选择到调整年

21、时又返回秒设置,当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

22、+;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

23、)yearh-;if(yearh=20)yearh=30; if(select_key=0) Kdelay();if(select_key=0)cnt+;if(cnt=2)cnt=0; display(Segyearh/10,Segyearh%10,Segyearl/10,Segyearl%10,Segmonth/10,Segmonth%10,Segday/10,Segday%10,Seghour/10,Seghour%10,Segmin/10,Segmin%10,Segsec/10,Segsec%10); void t0(void)interrupt 1 using 0 /t0的中断程序 t

24、cnt+; 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; else if(month=2&day=29)day=1; else if(month=4|month=6|month=9|month=11)&day=31)day=1; else if(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