LED点阵屏显示控制系统.docx
- 文档编号:6907262
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:23
- 大小:650.86KB
LED点阵屏显示控制系统.docx
《LED点阵屏显示控制系统.docx》由会员分享,可在线阅读,更多相关《LED点阵屏显示控制系统.docx(23页珍藏版)》请在冰豆网上搜索。
LED点阵屏显示控制系统
实训报告
物理与电子科学学院电子信息科学与技术专业信号0802班
学生:
韦腾
学号:
200856110326
实习名称:
专业实践综合训练〔一〕
课题名称:
LED点阵屏显示控制系统
指导教师:
贺慧勇文勇军周晓萍
小组成员:
龙建辉高信田林
周磊 韦腾 孔文杰
实习成绩评定表
学生:
韦腾学号:
200856110326专业班级:
信号0802班
课题名称:
LED点阵屏显示控制系统
评分项目
要求
分值
得分
学习态度
学习态度认真,遵守纪律。
10
方案
调研充分,方案设计合理。
20
工作量
完成了规定的工作量。
实际设计、调试效果好。
40
实习报告
完全符合撰写规要求,结构严谨,逻辑性强,层次清晰,表述准确,文字流畅。
20
辩论
准备充分,概念清楚,能准确流利地回答各种问题。
10
总分
备注:
成绩:
指导教师:
年月日
1引言.................................................................................................................................1
1.1设计背景........1
设计要求........1
1.3实现功能…....1
2硬件设计2
2.1MCS-51单片机简述.................................................................................................2
2.2芯片介绍.......3
2.3电路设计.......4
3软件设计5
3.1VisualBasic的使用..............................................................................................5
3.2SQL数据库的使用....................................................................................................7
3.3编写程序实现功能...................................................................................................7
4调试过程与问题分析..11
5心得体会..13
参考文献.13
附件.14
一、引言
1.1设计背景:
在车站、机场、商场、证券交易所与其他一些公众场所,经常需要发布多变的实时信息或进展广告宣传,传统的黑板和纸等媒介手段已不能满足其多变性和实时性,而LED〔发光二极管〕电子屏以其修改方便、实时显示、美丽整洁等特点应运而生。
LED电子显示屏随计算机与相关的微电子、光电子技术的迅猛开展而形成的一种新型信息显示媒体。
它利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、性能价格比高、低电压扫描驱动、耗电少、本钱低、发光效率高、故障少、可视距离远、组态灵活、安全、响应时间短、绿色环保、控制灵活、色彩丰富以与对室外环境适应能力强等特点,在短短十来年中,迅速成长为平板显示的主流产品,已经广泛应用到银行、邮电、税务、机场、车站、证券市场与其它交易市场、医院、电力、海关、体育场等需要进展多种公告、宣传的场合。
它可以显示字符、数字、汉字和简单的图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比拟低。
LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进展组合,并用单片机控制实现各种文字或图形的变化。
设计要求
ØLED点阵屏显示控制系统
Ø基于先修的课程设计(红外控制LED点阵屏显示)结果,涉与单片机,数据库,可视化编程等。
Ø根本要求:
设计并实现一个LED点阵屏显示控制与管理系统,能在主控计算机设定和查看LED点阵屏显示容。
1.3实现功能:
◆VB界面与LED显示屏能够通过快捷设定进展相互传送数据,即单片机部的字模。
◆VB界面与LED显示屏的文本数据传送能保存在数据库,并能在SQL的查询分析器进展查询。
◆能通过VB界面上的8*8复选框实现点亮对应LED显示屏上的点。
如如如下图所示:
二、硬件设计
2.1MCS-51单片机简述
2.1.1单片机STC89C52简介
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用STC公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
2.1.2主要特性
Ø与MCS-51单片机产品兼容
Ø8k字节在系统可编程Flash存储器
Ø1000擦写周期
Ø三级加密程序存储器
Ø32个可编程I/O口线
Ø三个16位定时器/计数器
Ø八个中断源
Ø低功耗空闲和掉电模式
2.1.3管脚说明
◆VCC:
电源
◆GND:
地
◆P0口:
P0口是一个8位漏极开路的双向I/O口,作为输出口,每位能驱动8个TTL逻辑电平。
◆P1口:
P1口是一个具有部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
◆P2口:
P2口是一个具有部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
◆P3口:
P3口是一个具有部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
◆RST:
复位输入。
◆ALE/(/PROG):
地址锁存控制信号〔ALE〕是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程中,此引脚〔/PROG〕也是作编程输入脉冲。
◆/PSEN:
外部程序存储器选通信号是外部程序存储器选通信号。
◆/EA/VPP:
访问外部程序存储哭控制信号。
为能从0000H到FFFFH的外部程序存储器读取指令,/EA必须接GND.为了执行部程序指令,/EA应该接VCC。
在flash编程期间,/EA也接收12V的VPP电压。
◆XTAL1:
振荡器反相放大器和部时钟发生电路的输入端。
◆XTAL2:
振荡器反相放大器的输出端。
2.1.4中断
中断存放器:
各中断允许位在IE存放器中,六个中断源的两个优先级也可以在IE中设置。
两个外部中断〔\INTO和\INT1〕,三个定时中断〔定时器0、1、2〕和一个串行中断。
2.1.5空闲节电模式
在空闲工作模式下,CPU处于睡眠状态,而所有片上外部设备保持激活状态。
这种状态可以通过软件产生。
在这种状态下,片上RAM和特殊功能存放器的容保持不变。
空闲模式可以被任一中断或者硬件的复位而终止。
2.1.6掉电模式
在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。
片上RAM和特殊功能存放器保持原值,直到掉电模式终止。
掉电模式可以通过硬件复位和外部中断退出。
2.2芯片介绍
3线—8线译码器74HC138
引出端符号:
A、B、C译码地址输入端
G1选通端
/(G2A)、/(G2B)选通端〔低电平有效〕
Y0~Y7译码输出端〔低电平有效〕
功能表:
8×8LED点阵显示屏简介
本次设计中采用8×8LED点阵显示屏,简称LED点阵板或LED矩阵板。
它是由64个发光二极管按行与列的顺序排列起来的LED点阵模块组成显示屏体。
点阵屏有单色和双色之分,且接法也有共阳极接法和共阴极接法两种,此次设计中我们使用的是单色的共阳极点阵显示屏。
共阳极接法的原理图如如下图。
每一行发光二极管的阳极接在一起,有一个引出端R,每一列发光二极管的阴极接在一起,有一个引出端C。
当给发光二极管阳极引出端R1接低电平,阴极引出端C1接高电平,左下角发光二极管导通发光。
因此对于行和列的电平扫描控制时,可以达到显示不同的数字和符号的目的。
显示原理:
LED显示屏中可以利用视觉惰性,采用的扫描驱动方式点亮发光二极管。
2.3电路设计
锁存与LED点阵显示电路
3线—8线译码电路:
三、软件设计
3.1VisualBasic的使用
VisualBasic是windows环境下最亲切的程序设计语言,不仅继承了BASIC语言简单易学、操作方便的特点,又引入了面向事件驱动编程机制和可视化的程序设计方法,大提高了Windows应用程序的开发效率。
在此次课程设计中,我们使用的是VisualBasic6.0标准版。
主要利用VB实现可视化LED显示和管
理系统,即在VB窗口中设置LED灯显示的容和在VB窗口中显示LED当前所显示的容。
并且利用VB与SQL数据库相连,将VB与LED屏的每次数据传送进展保存。
主要使用的控件有:
窗体是设计图形用户界面的根本平台,所有控件都放置在窗体上,是运行是用户与应用程序交互的实际窗口,窗体有自己的属性、事件。
一般向工程添加了新窗体后,第一步是设置或修改窗体的属性。
我们主要使用了form1_load〔〕事件。
由系统操作触发,在启动应用程序时对属性和变量进展初始化。
命令按键是VB应用程序中最常用的控件,用户可以通过单击命令按键执行一些操作,用于启动或中断一个处理过程。
一般使用mand_click(),从而运行其它的动作。
3.1.3标签label与文本框textbox
标签主要用于显示一小段文本,通常用来标注本身不具有caption属性的控件。
主要在form_load()或mand_click()事件中对label.caption进展改变。
文本框主要为用户提供了一个既能显示又能够编辑文本的区域。
在此次课程设计中,主要是用是用来显示数据用的。
3.1.4单项选择按钮OptionButton与复选框CheckBox
单项选择按钮和复选框常用来表示“选中〞或“不选〞两种状态,用户可以通过改变综合症的状态而执行不同的操作。
在此次课程设计中,主要用单项选择按钮来选择单片机以何种方式向LED传送数据。
而复选框只要是用来在VB界面显示8*8的点阵,每点中一个复选框,把check的值给1,如此熄灭led某点阵。
3.1.5MSm串口通信按键
其属性和事件如下:
mPort:
设置或返回通信端口号。
Settings:
以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位。
默认为"9600,n,8,1"、
PortOpen:
设置或返回通信端口的状态。
也可以打开和关闭端口。
True表示打开串口,false表示关闭。
Input:
返回和删除接收缓冲区中的字符。
Output:
将字符串写入发送缓冲区。
InputLen属性:
设置并返回Input属性从接收缓冲区读取的字符数。
MSm1.OutBufferCount=0:
清空发送缓冲区
MSm1.InBufferCount=0:
清空接收缓冲区
3.1.6Adodc控件与DataGrid
Adodc控件是让应用程序接口用以访问关系或非关系数据库中的数据。
它不是VB的标准控件,在使用前必须先添加到工具箱中。
在此次课程设计中ADODB.mand定义对数据源报告的指定命令。
NewADODB.Connection代表打开与数据源的连接,ADODB.Recordset代表来自根本表或命令报告结果的记录的全集。
通过语句"insertintotemp(sheding)values('"&temp&"')"将设定的值插入表指定的列。
通过语句.ConnectionString="Driver={SQLServer};Server=.;UID=sa;PWD=sa;Database=led"使VB与数据库连接。
DataGrid是一个多二维的数据风格,用来以表格形式显示数据源数据和以列为单位,设定各列的操作类型。
网格中的每一行表示数据源中的一个记录,每一列表示数据源中的一个字段。
在此次课程设计中,主要是用DataGrid显示单片机与LED数据传送的记录。
控制DataGrid控件的语法是DataGrid1.DataSource=Adodc1,每运行一次Adodc1.Refresh语句,如此可以刷新一次数据进入DataGrid。
3.2SQL数据库的使用
SQL〔StructuredQueryLanguage〕语言是关系数据库的标准语言,它是一种介于关系代数与关系觉得之间的结构化查询语言,其功能不仅仅是查询,它是一个能用的、功能强大的关系数据库语言。
在本次课程设计中,主要使用到的功能是在查询分析器过使用语句对数据库进展建表、删除表等,对表容进展查询、删除等。
在企业管理器中可进展新建数据库与查询分析器中的语句能实现的功能等。
通过VB界面按键与SQL相连,对相连的表进展刷新数据。
在此次课程设计过企业管理器新建一个数据库led,在led中新建表temp,右击temp,设计表,对表添加列名:
Ø
sn:
主键,表序号,自动以1递增。
ØSheding:
记录VB界面对led屏所设定的容。
ØXianshi:
记录VB界面接收led屏所显示的容。
ØSdate:
自动在每条记录里面显示时间。
3.3编写程序实现功能
在本次的综合训练中,我主要负责的是单片机初始化
/************单片机的初始化*************/
voidinitial(void)
{
ucharj;
SCON=0x50;//串口工作方式1,允许接收
PCON=0x80;//波特率翻倍
TCON=0;//定时/计数器控制
TMOD=0x21;//T1用于串口波特率控制
TH0=255;
TL0=0;
TR0=1;
ET0=1;
TL1=0xfa;//初始化T1,波特率为9600〔晶振11.0592M〕
TH1=0xfa;
TR1=1;//开定时器
EA=1;//开总中断
ES=1;//开串口中断
copyOK=1;//缓冲区准备好标志清零
receive=0;//接收标志清零
receiveOK=0;//承受完成标志清零
sendNum=0;//承受计数器清零
for(j=0;j<8;j++)//串口缓冲区清空
buffer[j]=0;
for(j=0;j<8;j++)//点阵显示缓冲区清空
cash[j]=icons[0][j];
}
四、调试过程与问题分析
第一次做单片机初始化,说实话不知从何下手。
后来经过网上查阅资料以与教师和同学的指导,终于有点眉目。
但是在编写程序的过程中仍然出现了不少错误,比如将程序的一些符号给写错,顺序弄反,虽然都是些细节的东西,但还是花了我不少时间。
case0:
for(i=0;i<8;i++)
cash[i]=icons[0][i];
copyOK=1;
show(cash);
break;
case1:
for(i=0;i<8;i++)
cash[i]=icons[1][i];
copyOK=1;
show(cash);
break;
case2:
for(i=0;i<8;i++)
cash[i]=icons[2][i];
copyOK=1;
show(cash);
break;
case3:
for(i=0;i<8;i++)
cash[i]=icons[3][i];
copyOK=1;
show(cash);
break;
case4:
for(i=0;i<8;i++)
cash[i]=icons[4][i];
copyOK=1;
show(cash);
break;
case5:
for(i=0;i<8;i++)
cash[i]=icons[5][i];
copyOK=1;
show(cash);
break;
case6:
send();
break;
case7:
judge(sbuffer);
break;
default:
transfer(sbuffer);
break;
于是结果事与愿违,在与对应的一组做交流的时候,才发现了这个问题,与时将问题解决了;
五、心得体会
经过两周的信号检测和处理综合训练,使我对于单片机根底知识以与应用有了更深的认识,以前课堂没注意的东西都在实践中表现出来,看来理论跟实践的差距还是很大的,我必须时刻保持学习的热情,这样才能不断进步。
这次实习我不仅对之前所学的一些专业知识进展了一次复习,更重要的是让我对如何运用这些知识有了一个大致的方向,从而懂得学与用的重要性。
同时在做人方面我也收获很大,小组形式让我意识到团队合作的重要性,并且要学会与人交流和沟通,如果遇到分歧,就虚心听取别人意见,尽量求同存异,取长补短,共同进步!
一个人的力量总是有限的,只有集众人的智慧和优点才能又快又好的完成任务。
在此我很感谢我们组的组长和各位成员,没有他们的帮助,我也不会学到那么多东西。
参考文献
[1]恢先、黄辉先.单片机原理与应用[M].:
人民邮电,2006
[2]朝青.单片机原理与接口技术〔第3版〕.:
航空航天大学,2005.
[3]毅刚.MCS-51单片机实用子程序设计.:
大学,2003.
[4]堂敏、焕平.单片机原理与应用.:
理工大学,2007.
附件
以下为单片机程序中除已提到过的代码外的其他局部:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitLED=P1^0;//串口通信指示
sbitSWI=P1^3;//单片机上切换显示按键
sbitaddr1=P1^4;//系统片选地址线0
sbitaddr2=P1^5;//系统片选地址线1
sbitaddr3=P1^6;//系统片选地址线2
sbiten1=P1^7;//片选使能信号
/*************表情库数组*******************/
ucharcodeicons[][8]={//8x8图标,高电平激活对应的点
{//心
0x66,0x99,0x81,0x81,0x81,0x42,0x24,0x18
}
{//囧
0xff,0x81,0xa5,0xc3,0xbd,0xa5,0xa5,0xff
}
{//禁止
0x3d,0x42,0x85,0x89,0x91,0xa1,0x42,0xbc
}
{//钥匙
0x1c,0x10,0x1c,0x10,0x10,0x7e,0x81,0x7e
}
{//O
0x3c,0x7e,0xe7,0xc3,0xc3,0xe7,0x7e,0x3c
}
{//K
0xc0,0xc6,0xcc,0xf8,0xf0,0xd8,0xcc,0xc6
}
};
ucharcodescan[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharcodetabb[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
bitreceive;//接收标志
bitreceiveOK;//接收一串字符完成标志
unsignedchariconsNumber=6;//图标个数
unsignedchariconCounter;
unsignedcharlineCounter;
uchari,sbuffer;//串口缓冲区
ucharcash[8];//LED点阵显示缓冲区
ucharbuffer[8],Num;//接收字符数据与个数
ucharsendOK;//发送完成标志
ucharcopyOK,sendNum;//发送缓冲区填充完成标志
/***************8LED点阵显示函数1**************/
voidshow(uchar*Ptr)
{
P0=0xff;
en1=0;
if(lineCounter!
=8)
{
addr1=0;addr2=0;addr3=0;P0=0xff;en1=1;en1=0;
addr1=1;P0=~*(Ptr+lineCounter);en1=1;en1=0;
addr1=0;P0=tabb[lineCounter];en1=1;en1=0;
}
else
{
P0=0xfe;
en1=0;
}
lineCounter++;
if(lineCounter==9)
lineCounter=0;
}
/*************定时中断发生处理函数***************/
voidt0(void)interrupt1using0
{
TH0=255;
TL0=0;
show(cash);
}
/**********判断自定义显示命令**********************/
voidjudge(ucharsbuffer)
{
if(receive==0)
{
receive=1;
Num=0;
receiveOK=0;
}
else
{
if(Num<7)
buffer[Num++]=sbuffer;
elseif(Num==7)
{
buffer[Num]=sbuffer;
receive=0;
receiveOK=1;
for(i=0;i<8;i++)
cash[i]=buffer[i];
copyOK=1;
show(cash);
}
}
}
/************接收到得数据转移到显示缓存里***************/
voidtransfer(sbuffer)
{
if(Num<7)
buffer[Num++]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 点阵 显示 控制系统