LED点阵屏显示控制系统.pdf

上传人:ylj18****70940 文档编号:73132765 上传时间:2023-02-15 格式:PDF 页数:19 大小:1.15MB
返回 下载 相关 举报
LED点阵屏显示控制系统.pdf_第1页
第1页 / 共19页
LED点阵屏显示控制系统.pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《LED点阵屏显示控制系统.pdf》由会员分享,可在线阅读,更多相关《LED点阵屏显示控制系统.pdf(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实训报告实训报告物理与电子科学 学院电子信息科学与技术专业 信号 0802 班学生姓名:学生姓名:韦腾韦腾学学号:号:200856110326200856110326实习名称实习名称:专业实践综合训练(一)专业实践综合训练(一)课题名称课题名称:LED:LED 点阵屏显示控制系统点阵屏显示控制系统起止时间:起止时间:2010.6.27-2010.7.62010.6.27-2010.7.6指导教师:贺慧勇指导教师:贺慧勇 文勇军文勇军 周晓萍周晓萍小组成员:龙建辉小组成员:龙建辉 张高信张高信 田林田林周磊周磊韦腾韦腾孔文杰孔文杰-1-实习成绩评定表实习成绩评定表学生姓名:韦腾学号:200856

2、110326专业班级:信号 0802 班课题名称:LED 点阵屏显示控制系统评分项目学习态度方案工作量要求学习态度认真,遵守纪律。调研充分,方案设计合理。完成了规定的工作量。实际设计、40调试效果好。完全符合撰写规范要求,结构严谨,实习报告逻辑性强,层次清晰,表述准确,文字流畅。准备充分,概念清楚,能准确流利答辩地回答各种问题。总分备注:成绩:指导教师:年月日1020分值1020得分-2-LED 点阵屏显示控制系统目录1引言.11.1 设计背景.11.2 设计要求.11.3 实现功能.12硬件设计.22.1 MCS-51 单片机简述.22.2 芯片介绍.3 2.3 电路设计.43软件设计.5

3、3.1 Visual Basic 的使用.5 3.2 SQL 数据库的使用.7 3.3 编写程序实现功能.74调试过程及问题分析.115心得体会.13参考文献.13附件.14-1-LED 点阵屏显示控制系统一、引言1.1 设计背景:在车站、机场、商场、证券交易所及其他一些公众场所,经常需要发布多变的实时信息或进行广告宣传,传统的黑板和纸张等媒介手段已不能满足其多变性和实时性,而LED(发光二极管)电子屏以其修改方便、实时显示、美丽整洁等特点应运而生。LED 电子显示屏随计算机及相关的微电子、光电子技术的迅猛发展而形成的一种新型信息显示媒体。它利用发光二极管构成的点阵模块或像素单元组成可变面积的

4、显示屏幕,以可靠性高、使用寿命长、性能价格比高、低电压扫描驱动、耗电少、成本低、发光效率高、故障少、可视距离远、组态灵活、安全、响应时间短、绿色环保、控制灵活、色彩丰富以及对室内外环境适应能力强等特点,在短短十来年中,迅速成长为平板显示的主流产品,已经广泛应用到银行、邮电、税务、机场、车站、证券市场及其它交易市场、医院、电力、海关、体育场等需要进行多种公告、宣传的场合。它可以显示字符、数字、汉字和简单的图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED 显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的

5、变化。1.2 设计要求LED 点阵屏显示控制系统基于先修的课程设计(红外控制 LED 点阵屏显示)结果,涉及单片机,数据库,可视化编程等。基本要求:设计并实现一个 LED 点阵屏显示控制与管理系统,能在主控计算机设定和查看LED 点阵屏显示内容。13 实现功能:VB 界面与 LED 显示屏能够通过快捷设定进行相互传送数据,即单片机内部的字模。VB 界面与 LED 显示屏的文本数据传送能保存在数据库内,并能在SQL 的查询分析器进行查询。能通过 VB 界面上的 8*8 复选框实现点亮对应 LED 显示屏上的点。如下图所示:VB 界面(文本、点阵)VB 与 LED文本内数据发送的记录SQL 数据库

6、1、从文本内给数据2、自由设定点阵回发数据给 VB端点阵显示单片机 LED 灯显示-1-LED 点阵屏显示控制系统二、硬件设计2.1 MCS-51 单片机简述2.1.1 单片机 STC89C52 简介STC89C52 是一种低功耗、高性能CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 STC公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash 允许程序存储器在系统可编程。在单芯片上,拥有灵巧的8 位 CPU 和在系统可编程 Flash,使其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。2.1.2 主要特性与 MCS-51

7、 单片机产品兼容 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、电阻的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:振荡器反相放大器和内部时钟

9、发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.1.4 中断中断寄存器:各中断允许位在IE 寄存器中,六个中断源的两个优先级也可以在IE 中设置。两个外部中断(INTO 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。-2-LED 点阵屏显示控制系统2.1.5 空闲节电模式在空闲工作模式下,CPU 处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM 和特殊功能寄存器的内容保持不变。空闲模式可以被任一中断或者硬件的复位而终止。2.1.6 掉电模式在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAM 和

10、特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。2.2 芯片介绍3 线8 线译码器 74HC138引出端符号:A、B、C译码地址输入端G1选通端/(G2A)、/(G2B)选通端(低电平有效)Y0Y7译码输出端(低电平有效)-3-LED 点阵屏显示控制系统功能表:88 LED 点阵显示屏简介本次设计中采用 88 LED点阵显示屏,简称 LED 点阵板或 LED 矩阵板。它是由 64 个发光二极管按行与列的顺序排列起来的 LED 点阵模块组成显示屏体。点阵屏有单色和双色之分,且接法也有共阳极接法和共阴极接法两种,此次设计中我们使用的是单色的共阳极点阵显示屏。共阳极

11、接法的原理图如图所示。每一行发光二极管的阳极接在一起,有一个引出端R,每一列发光二极管的阴极接在一起,有一个引出端C。当给发光二极管阳极引出端R1 接低电平,阴极引出端C1 接高电平,左下角发光二极管导通发光。因此对于行和列的电平扫描控制时,可以达到显示不同的数字和符号的目的。显示原理:LED 显示屏中可以利用视觉惰性,采用的扫描驱动方式点亮发光二极管。2.3 电路设计-4-LED 点阵屏显示控制系统锁存及 LED 点阵显示电路3 线8 线译码电路:三、软件设计3.1 Visual Basic 的使用Visual Basic 是 windows 环境下最亲切的程序设计语言,不仅继承了BASIC

12、 语言简单易学、操作方便的特点,又引入了面向事件驱动编程机制和可视化的程序设计方法,大提高了 Windows 应用程序的开发效率。在此次课程设计中,我们使用的是Visual Basic 6.0 标准版。主要利用 VB 实现可视化 LED 显示和管理系统,即在 VB 窗口中设置 LED-5-LED 点阵屏显示控制系统灯显示的内容和在 VB 窗口中显示 LED 当前所显示的内容。并且利用VB 与 SQL 数据库相连,将 VB 与 LED屏的每次数据传送进行保存。主要使用的控件有:3.1.1 窗体 form窗体是设计图形用户界面的基本平台,所有控件都放置在窗体上,是运行是用户与应用程序交互的实际窗口

13、,窗体有自己的属性、事件。一般向工程添加了新窗体后,第一步是设置或修改窗体的属性。我们主要使用了 form1_load()事件。由系统操作触发,在启动应用程序时对属性和变量进行初始化。3.1.2 命令按键 CommandButton命令按键是 VB 应用程序中最常用的控件,用户可以通过单击命令按键执行一些操作,用于启动或中断一个处理过程。一般使用command_click(),从而运行其它的动作。3.1.3 标签 label 与 文本框 textbox标签主要用于显示一小段文本,通常用来标注本身不具有caption 属性的控件。主要在 form_load()或 command_click()事

14、件中对 label.caption 进行改变。文本框主要为用户提供了一个既能显示又能够编辑文本的区域。在此次课程设计中,主要是用是用来显示数据用的。3.1.4 单选按钮 OptionButton 与 复选框 CheckBox单选按钮和复选框常用来表示“选中”或“不选”两种状态,用户可以通过改变综合症的状态而执行不同的操作。在此次课程设计中,主要用单选按钮来选择单片机以何种方式向LED传送数据。而复选框只要是用来在 VB 界面显示 8*8 的点阵,每点中一个复选框,把check 的值给 1,则熄灭 led 某点阵。3.1.5 MSComm 串口通信按键其属性和事件如下:CommPort:设置或返

15、回通信端口号。Settings:以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位。默认为9600,n,8,1、PortOpen:设置或返回通信端口的状态。也可以打开和关闭端口。True 表示打开串口,false 表示关闭。Input:返回和删除接收缓冲区中的字符。Output:将字符串写入发送缓冲区。InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。MSComm1.OutBufferCount=0:清空发送缓冲区MSComm1.InBufferCount=0:清空接收缓冲区3.1.6 Adodc 控件与 DataGridAdodc 控件是让应用程序接口用以访

16、问关系或非关系数据库中的数据。它不是VB 的标准控件,在使用前必须先添加到工具箱中。在此次课程设计中ADODB.Command 定义对数据源报告的指定命令。NewADODB.Connection 代表打开与数据源的连接,ADODB.Recordset 代表来自基本表或命令报告结果的记录的全集。通过语句insert into temp(sheding)values(&temp&)将设定的值插入表内指定的列。通过语句 cn.ConnectionString=Driver=SQL Server;Server=.;UID=sa;PWD=sa;Database=led 使VB 与数据库连接。DataGr

17、id 是一个多二维的数据风格,用来以表格形式显示数据源数据和以列为单位,设定各列的操作类型。网格中的每一行表示数据源中的一个记录,每一列表示数据源中的一个字段。在此次课程设计中,主要是用 DataGrid 显示单片机与 LED 数据传送的记录。控制DataGrid 控件的语法是-6-LED 点阵屏显示控制系统DataGrid1.DataSource=Adodc1,每运行一次 Adodc1.Refresh语句,则可以刷新一次数据进入DataGrid。3.2 SQL 数据库的使用SQL(Structured Query Language)语言是关系数据库的标准语言,它是一种介于关系代数与关系觉得之

18、间的结构化查询语言,其功能不仅仅是查询,它是一个能用的、功能强大的关系数据库语言。在本次课程设计中,主要使用到的功能是在查询分析器中通过使用语句对数据库进行建表、删除表等,对表内内容进行查询、删除等。在企业管理器中可进行新建数据库及查询分析器中的语句能实现的功能等。通过 VB 界面按键与 SQL 相连,对相连的表内进行刷新数据。在此次课程设计中通过企业管理器新建一个数据库led,在 led 中新建表 temp,右击 temp,设计表,对表添加列名:sn:主键,表序号,自动以1 递增。Sheding:记录 VB 界面对 led 屏所设定的内容。Xianshi:记录 VB 界面接收 led 屏所显

19、示的内容。Sdate:自动在每条记录里面显示时间。3.3 编写程序实现功能在本次的综合训练中,我主要负责的是单片机初始化/*单片机的初始化*/void initial(void)uchar j;SCON=0 x50;/串口工作方式 1,允许接收PCON=0 x80;/波特率翻倍TCON=0;/定时/计数器控制 TMOD=0 x21;/T1用于串口波特率控制TH0 =255;-7-LED 点阵屏显示控制系统 TL0 =0;TR0 =1;ET0 =1;TL1=0 xfa;/初始化 T1,波特率为 9600(晶振 11.0592M)TH1=0 xfa;TR1=1;/开定时器 EA=1;/开总中断 E

20、S=1;/开串口中断 copyOK=1;/缓冲区准备好标志清零 receive=0;/接收标志清零 receiveOK=0;/接受完成标志清零 sendNum=0;/接受计数器清零 for(j=0;j8;j+)/串口缓冲区清空 bufferj=0;for(j=0;j8;j+)/点阵显示缓冲区清空 cashj=icons0j;四、调试过程及问题分析第一次做单片机初始化,说实话不知从何下手。后来经过网上查阅资料以及老师和同学的指导,终于有点眉目。但是在编写程序的过程中仍然出现了不少错误,比如将程序的一些符号给写错,顺序弄反,虽然都是些细节的东西,但还是花了我不少时间。case 0:for(i=0;

21、i8;i+)cashi=icons0i;copyOK=1;show(cash);break;case 1:for(i=0;i8;i+)cashi=icons1i;copyOK=1;show(cash);break;case 2:for(i=0;i8;i+)cashi=icons2i;copyOK=1;show(cash);break;case 3:for(i=0;i8;i+)cashi=icons3i;copyOK=1;show(cash);break;-8-LED 点阵屏显示控制系统case 4:for(i=0;i8;i+)cashi=icons4i;copyOK=1;show(cash);

22、break;case 5:for(i=0;i8;i+)cashi=icons5i;copyOK=1;show(cash);break;case 6:send();break;case 7:judge(sbuffer);break;default:transfer(sbuffer);break;于是结果事与愿违,在与对应的一组做交流的时候,才发现了这个问题,及时将问题解决了;五、心得体会经过两周的信号检测和处理综合训练,使我对于单片机基础知识以及应用有了更深的认识,以前课堂没注意的东西都在实践中体现出来,看来理论跟实践的差距还是很大的,我必须时刻保持学习的热情,这样才能不断进步。这次实习我不仅对

23、之前所学的一些专业知识进行了一次复习,更重要的是让我对如何运用这些知识有了一个大致的方向,从而懂得学与用的重要性。同时在做人方面我也收获很大,小组形式让我意识到团队合作的重要性,并且要学会与人交流和沟通,如果遇到分歧,就虚心听取别人意见,尽量求同存异,取长补短,共同进步!一个人的力量总是有限的,只有集众人的智慧和优点才能又快又好的完成任务。在此我很感谢我们组的组长和各位成员,没有他们的帮助,我也不会学到那么多东西。参考文献1 杨恢先、黄辉先.单片机原理及应用M.北京:人民邮电出版社,20062 李朝青.单片机原理及接口技术(第3 版).北京:北京航空航天大学出版社,2005.3 张毅刚.MCS

24、-51 单片机实用子程序设计.哈尔滨:哈尔滨大学出版社,2003.4 陈堂敏、刘焕平.单片机原理与应用.北京:北京理工大学出版社,2007.附件以下为单片机程序中除已提到过的代码外的其他部分:-9-LED 点阵屏显示控制系统#include#define uchar unsigned char#define uint unsigned intsbit LED=P10;/串口通信指示sbit SWI=P13;/单片机上切换显示按键sbit addr1=P14;/系统片选地址线 0sbit addr2=P15;/系统片选地址线 1sbit addr3=P16;/系统片选地址线 2sbit en1=

25、P17;/片选使能信号/*表情库数组*/uchar code icons8=/8x8 图标,高电平激活对应的点 /心 0 x66,0 x99,0 x81,0 x81,0 x81,0 x42,0 x24,0 x18 ,/囧 0 xff,0 x81,0 xa5,0 xc3,0 xbd,0 xa5,0 xa5,0 xff ,/禁止 0 x3d,0 x42,0 x85,0 x89,0 x91,0 xa1,0 x42,0 xbc ,/钥匙 0 x1c,0 x10,0 x1c,0 x10,0 x10,0 x7e,0 x81,0 x7e ,/O 0 x3c,0 x7e,0 xe7,0 xc3,0 xc3,0

26、 xe7,0 x7e,0 x3c ,/K 0 xc0,0 xc6,0 xcc,0 xf8,0 xf0,0 xd8,0 xcc,0 xc6 ;uchar code scan8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;uchar code tabb8=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;bit receive;/接收标志bit receiveOK;/接收一串字符完成标志unsigned char iconsNumber=6;/图标个数-10-LED 点阵屏显示控制系统unsigned

27、 char iconCounter;unsigned char lineCounter;uchar i,sbuffer;/串口缓冲区uchar cash8;/LED 点阵显示缓冲区uchar buffer8,Num;/接收字符数据及个数uchar sendOK;/发送完成标志uchar copyOK,sendNum;/发送缓冲区填充完成标志/*8LED点阵显示函数 1*/void show(uchar*Ptr)P0=0 xff;en1=0;if(lineCounter!=8)addr1=0;addr2=0;addr3=0;P0=0 xff;en1=1;en1=0;addr1=1;P0=*(Pt

28、r+lineCounter);en1=1;en1=0;addr1=0;P0=tabblineCounter;en1=1;en1=0;elseP0=0 xfe;en1=0;lineCounter+;if(lineCounter=9)lineCounter=0;/*定时中断发生处理函数*/void t0(void)interrupt 1 using 0TH0=255;TL0=0;show(cash);/*判断自定义显示命令*/void judge(uchar sbuffer)if(receive=0)-11-LED 点阵屏显示控制系统receive=1;Num=0;receiveOK=0;else

29、if(Num 7)bufferNum+=sbuffer;else if(Num=7)bufferNum=sbuffer;receive=0;receiveOK=1;for(i=0;i8;i+)cashi=bufferi;copyOK=1;show(cash);/*接收到得数据转移到显示缓存里*/void transfer(sbuffer)if(Num 7)bufferNum+=sbuffer;else if(Num=7)bufferNum=sbuffer;receive=0;receiveOK=1;for(i=0;i8;i+)cashi=bufferi;copyOK=1;show(cash);

30、/*串口发送函数*/void send(void)if(copyOK)/串口准备好且缓冲区准备好 i=0;REN=0;/发送过程中禁止接收数据-12-LED 点阵屏显示控制系统 copyOK=0;/清缓冲区准备好标志 SBUF=cashi+;/发送字符串首字符 sendNum=7;/置发送计数器 else return;/没准备好则返回/*串口中断响应处理函数*/void serial(void)interrupt 4if(RI)/为接收中断RI=0;/清接收中断标志LED=LED;/闪串口指示 LEDsbuffer=SBUF;/读取串口缓冲区数据switch(sbuffer)case 0:i

31、f(receive=0)/是指令 for(i=0;i8;i+)cashi=icons0i;copyOK=1;show(cash);else/是数据 transfer(sbuffer);break;case 1:if(receive=0)/是指令 for(i=0;i8;i+)cashi=icons1i;copyOK=1;show(cash);else/是数据 transfer(sbuffer);break;case 2:if(receive=0)/是指令 for(i=0;i8;i+)-13-LED 点阵屏显示控制系统cashi=icons2i;copyOK=1;show(cash);else/是

32、数据 transfer(sbuffer);break;case 3:if(receive=0)/是指令 for(i=0;i8;i+)cashi=icons3i;copyOK=1;show(cash);else/是数据 transfer(sbuffer);break;case 4:if(receive=0)/是指令 for(i=0;i8;i+)cashi=icons4i;copyOK=1;show(cash);else/是数据 transfer(sbuffer);break;case 5:if(receive=0)/是指令 for(i=0;i8;i+)cashi=icons5i;copyOK=1

33、;show(cash);else/是数据 transfer(sbuffer);break;-14-LED 点阵屏显示控制系统case 6:if(receive=0)/是指令 send();else/是数据 transfer(sbuffer);break;case 7:judge(sbuffer);break;default:transfer(sbuffer);break;else/发送中断TI=0;/为单个字符发送完中断if(!sendNum)/字符串发送完REN=1;/允许接收sendOK=1;else/字符串未发送完SBUF=cashi+;/发送下一个字符sendNum-;/欲发送字符数减一/*主函数*/void main(void)unsigned int j;initial();while(1);/*结束*/-15-LED 点阵屏显示控制系统-1-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com