基于单片机的LED点阵屏的设计.docx

上传人:b****6 文档编号:15458881 上传时间:2023-07-04 格式:DOCX 页数:13 大小:246.29KB
下载 相关 举报
基于单片机的LED点阵屏的设计.docx_第1页
第1页 / 共13页
基于单片机的LED点阵屏的设计.docx_第2页
第2页 / 共13页
基于单片机的LED点阵屏的设计.docx_第3页
第3页 / 共13页
基于单片机的LED点阵屏的设计.docx_第4页
第4页 / 共13页
基于单片机的LED点阵屏的设计.docx_第5页
第5页 / 共13页
基于单片机的LED点阵屏的设计.docx_第6页
第6页 / 共13页
基于单片机的LED点阵屏的设计.docx_第7页
第7页 / 共13页
基于单片机的LED点阵屏的设计.docx_第8页
第8页 / 共13页
基于单片机的LED点阵屏的设计.docx_第9页
第9页 / 共13页
基于单片机的LED点阵屏的设计.docx_第10页
第10页 / 共13页
基于单片机的LED点阵屏的设计.docx_第11页
第11页 / 共13页
基于单片机的LED点阵屏的设计.docx_第12页
第12页 / 共13页
基于单片机的LED点阵屏的设计.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的LED点阵屏的设计.docx

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

基于单片机的LED点阵屏的设计.docx

基于单片机的LED点阵屏的设计

摘要

本设计介绍了一个以单片机AT89C51为控制器的点阵LED显示屏的软件及硬件设计。

这个显示屏可以通过动态扫描的方式来显示四个16*16点阵的汉字。

设计采用51内核的单片机作为控制核心,74hc145来控制列码扫描,并使用74hc595将单片机输出的并行数据转换并行输出。

通过修改代码可以改变显示的内容,也可以使文字滚动显示,而且滚动速度可以根据需要来调整,也可以使文字静止显示。

这种显示屏有结构简单,节省硬件和便于后续开发等优势。

关键词:

单片机,点阵屏,AT89C51

 

1.设计背景

1.1设计目的

随着LED技术的不断发展以及LED在低功耗、长寿命、环保等方面的优势,LED应用领域逐渐增多。

目前,LED的应用已经从最初的指示灯应用转向更具发展潜力的显示屏,景观照明、背光源、汽车车灯、交通灯、照明等领域,LED应用正呈现出多样化发展趋势。

LED器件技术和性能不断提高,电子技术发展日新月异,这也为LED显示屏产品的技术深化和提高带来良好的基础。

同时LED显示在社会生活的各个领域得到了广泛的应用。

因此,LED显示市场发展前景乐观。

而研究LED显示的原理,并且实现用微控制器对其进行显示编码,以及如何稳定可靠的显示将是我们研究的重点。

因此,这里重点从点阵的显示原理,以及如何节省硬件等方面做了研究与设计,为以后更深层次的开发提供基本方案。

1.2相关介绍

1.2.18051系列的单片机

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

图片见下图:

图1-189C51管脚图

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

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

P3口也可作为AT89C51的一些特殊功能口。

RST:

复位输入。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址。

/PSEN:

外部程序存储器的选通信号。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出

1.2.2单片机AT89C51最小系统

单片机采用12M晶振作为时钟源,复位采用上电复位和按键复位两种方式

仿真原理图如下:

图1-2最小系统

2.设计内容

2.1硬件设计

根据设计的目标,易实现性,精确性,成本以及控制系统的速度,我们选用单片机(SCM)作为控制模块。

根据课题的实际情况,单片机的模型选择主要从以下两方面考虑:

第一,单片机具有强抗干扰能力;第二,单片机成本效益高。

由于MCS-51在中国广泛使用,已具有更多的相关资料,并且可以兼容 更多外围芯片。

因此我们选择AT89C51单片机作为控制模块。

 

该设计的整体电路是由单片机最小系统,列扫描驱动电路、线驱动电路和4个16×16LED点阵组成。

具体结构框图如下:

电源

 

图2-1系统结构框图

 

2.2软件设计

软件设计主要是通过外部中断来控制切换显示的内容,使用定时器中断来实现列码扫描以及行码传送的定时。

点阵显示的子程序主要是在定时器中断函数中来实现的。

程序流程图如图所示。

 

图2-2程序流程图

3.

电路原理图

图3-1电路原理图

4.仿真结果

图4-1仿真结果1

图4-2仿真结果2

5.总结

LED点阵的设计显示控制系统完成了多个汉字的显示功能,并且能够稳定的显示,达到了设计的基本要求。

设计中包含了LED显示屏的基础原则,电路连接以及设计源程序。

只要单片机I/O接口被扩大了,同时增加不同的LED点阵和相关芯片,可以设计一个更大的面积和更多LED的显示屏。

本文提供了一些理论和实践的参考价值。

在后续的设计与开发中,我们还可以通过RS-232来实现单片机与PC机的通信,通过PC机来传送点阵屏需要显示的文字与内容。

参考文献:

[l]胡汉才.单片机原理及接口技术[M].北京:

清华大学出版社,2005.

[2]赵亮,侯国锐.单片机C语言编程与实例[M].北京:

人民邮电出版社,2003.

[3]宋戈.51单片机应用开发范例大全[M].北京:

人民邮电出版社,2003.

[4]何立民.单片机应用技术选编(8),北京:

北京航空航天大学出版社,2000.

[5]康华光.电子技术基础(第五版).北京:

高等教育出版社,2008.

附录:

单片机源程序:

#include"reg51.h"

#include"intrins.h"

#defineucharunsignedchar

#defineuintunsignedint

sbitsh1=P2^0;

sbitds1=P2^1;

sbitst1=P2^2;

sbitsh2=P2^3;

sbitds2=P2^4;

sbitst2=P2^5;

uchartemp1,temp2;

//段码

//低8位

ucharcodeD1[2][64]={

{0x00,0x00,0x01,0x09,0x09,0x09,0x3F,0x0B,0x0D,0x09,0x11,0x01,0x00,0x00,0x00,0x00,//“老”

0x00,0x00,0x03,0x00,0x00,0x1F,0x00,0x01,0x12,0x12,0x1F,0x12,0x12,0x01,0x00,0x00,//“师”

0x00,0x00,0x04,0x08,0x1F,0x20,0x09,0x12,0x30,0x1F,0x10,0x12,0x19,0x00,0x00,0x00,//“您”

0x00,0x05,0x06,0x0C,0x14,0x03,0x00,0x11,0x21,0x21,0x23,0x25,0x19,0x00,0x00,0x00},//“好"

{0x00,0x14,0x0C,0x07,0x00,0x08,0x1F,0x35,0x55,0x0F,0x00,0x02,0x02,0x1F,0x02,0x00,//“谢”

0x00,0x14,0x0C,0x07,0x00,0x08,0x1F,0x35,0x55,0x0F,0x00,0x02,0x02,0x1F,0x02,0x00,//“谢”

0x00,0x00,0x04,0x04,0x3F,0x04,0x04,0x00,0x3C,0x0A,0x0A,0x12,0x04,0x00,0x00,0x00,//“指”

0x00,0x00,0x00,0x5E,0x4A,0x4A,0x4A,0x4A,0x4B,0x4A,0x32,0x04,0x00,0x00,0x00,0x00},//“导”

};

//高8位

ucharcodeD2[2][64]={

{0x00,0x00,0x10,0x20,0x40,0x80,0xF8,0x0C,0x14,0x24,0x44,0x04,0x08,0x00,0x00,0x00,

0x00,0x00,0xC0,0x04,0x08,0xF0,0x00,0xC0,0x00,0x00,0xFC,0x00,0x20,0xE0,0x00,0x00,

0x00,0x00,0x04,0x28,0x90,0x08,0x04,0x24,0x94,0x84,0x04,0x38,0x00,0x10,0x08,0x00,

0x00,0x80,0x48,0x30,0x50,0x88,0x00,0x00,0x08,0x04,0x84,0x78,0x00,0x00,0x00,0x00},

{0x00,0x00,0x00,0xFC,0x04,0x40,0xC8,0x52,0x62,0xFC,0x40,0x88,0x44,0xFC,0x00,0x00,

0x00,0x00,0x00,0xFC,0x04,0x40,0xC8,0x52,0x62,0xFC,0x40,0x88,0x44,0xFC,0x00,0x00,

0x00,0x00,0x24,0x22,0xFE,0x40,0x80,0x00,0x7C,0x92,0x92,0x92,0x7E,0x00,0x00,0x00,

0x00,0x00,0x40,0x40,0x44,0x42,0x52,0x4A,0xFE,0x40,0x40,0x40,0x40,0x40,0x00,0x00},

};

uchari,j,k;

//串行输入

voidIn_595_1()

{

uchari;

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

{

temp1<<=1;ds1=CY;

sh1=1;

_nop_();_nop_();

sh1=0;

}

}

voidIn_595_2()

{

uchari;

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

{

temp2<<=1;ds2=CY;

sh2=1;

_nop_();_nop_();

sh2=0;

}

}

//并行输出

voidOut_595_1()

{

st1=0;

_nop_();

st1=1;

_nop_();

st1=0;

}

voidOut_595_2()

{

st2=0;

_nop_();

st2=1;

_nop_();

st2=0;

}

//主程序

voidmain()

{

P0=0xff;

P1=0xff;

P2=0xff;

TMOD=0x01;

TH0=(65536-1550)/256;

TL0=(65536-1550)%256;

IT0=1;

IE=0x83;

i=0xff;

while

(1)

;

}

//INT0中断

voidkeydown()interrupt0

{

P0=0xff;

P1=0x80;

P2=0xff;

j=0;

i=(i+1)%2;

TR0=1;

}

//T0中断

voidshow1()interrupt1

{

TH0=(65536-1550)/256;

TL0=(65536-1550)%256;

P0=j;

P1=k;

temp1=D2[i][j];

In_595_1();

temp1=D1[i][j];

In_595_1();

Out_595_1();

j=(j+1)%32;

temp2=D2[i][k+32];

In_595_2();

temp2=D1[i][k+32];

In_595_2();

Out_595_2();

k=(k+1)%32;

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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