




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4章章 LED点阵屏控制点阵屏控制 LED点阵屏是由点阵屏是由LED发光管点阵组成,它具发光管点阵组成,它具有显示亮度高、信息量大、更新速度快。用有显示亮度高、信息量大、更新速度快。用mcs51单片机完成对单片机完成对LED发光管点阵的图像、发光管点阵的图像、数据显示控制,有效地解决数据显示控制,有效地解决LED点阵显示中点阵显示中驱动、图像显示等若干常见问题。通过本项驱动、图像显示等若干常见问题。通过本项目的学习目的学习,进一步进一步掌握单片机开发的流程掌握单片机开发的流程,掌握掌握LED点阵显示的控制方法。点阵显示的控制方法。 4.1任务描述任务描述 4.2 单个字符的显示单个字符的显
2、示 4.3 典型案例典型案例4.1任务描述任务描述 为了让单片机控制发光二极管,需要将发光二极管连接到单片机的端口上,如图4.1所示,就是说单片机和LED电子屏控制的电路要连接上。图4.1 LED电子显示屏 要实现LED的闪烁发光,就是要求LED所对应的单片机引脚不断输出高电平和低电平不断输出高电平和低电平。为了让人眼能够看清楚LED的闪烁变化,LED的闪烁的频率应在零点几到十几赫兹之间,一般取1Hz左右左右。 因此,要实现发光二极管以不同的快慢闪亮,只需编写不同的程序,使单片机与发光二极管相连的端口输出不同频率的脉冲信号。若要控制发光二极管发出不同的闪亮样式,则需单片机对端口的各位在不同时间
3、输出不同的驱动电平,就能驱动发光二极管以不同闪亮样式发光。 步骤为:步骤为: (1)确定LED闪亮的方式; (2)在计算机上编写原程序,程序功能就是控制单片机在与LED连接的端口上输出需要的高低电平信号; (3)用软件调试和编译原程序; (4)将编译后的程序代码写入单片机; (5)在LED上观察程序运行效果。若要修改程序,可在线修改程序,再编译和下载,再观察修改后的效果,直至完全准确为止。4.2 单个字符的显示单个字符的显示 最常见的LED点阵显示模块有57、79、88结构,前两种主要用于显示各种西文字符,后一种可多模块组合用于汉字、图形的显示,并且可组建大型电子显示屏。下面主要介绍88点阵点
4、阵的显示原理。 图4.2 8x8 LED点阵等效电路图 对于单个单个88LED点阵点阵,其驱动要求十分简单,作为实验,完全可以使用单片机的使用单片机的I/O口口直接驱动直接驱动。具体的原理电路如图4.3所示,P0口接LED点阵的阳级,由于P0口没有上拉能力,所以采用排阻上接电源提供上拉电流,用P2口接LED的阴极。 也可以采用触发器或锁存器等器件对数据进触发器或锁存器等器件对数据进行隔离驱动行隔离驱动,这种方式既能增强驱动能力,也能使单片机I/O口在不驱动LED点阵时空闲出来作为它用。由于LED点阵的各行共用一个I/O口,各列也是共用一个I/O口。 图4.3 单个字符显示原理图* * 软件编制
5、软件编制 为了分析点阵字符的显示方法,首先看点阵字符09显示代码是如何形成的。由8行8列构成数字“0” 的图形,其中要显示的点用二进制位1表示,不显示的位用二进制位0表示。每列构成一个字节,从左到右各列的数值用十六进制表示为:00,00,3E,41,41,41,3E,00。同理,可以建立数字“1”到数字“9”的代码,如表4.1所示。 图4.4数字“0”的8X8点阵示意图。图4.4数字“0”的8X8点阵示意图表4.1 数字09的88点阵数值 数字 88点阵数值000H,00H,3EH,41H,41H,41H,3EH,00H 100H,00H,00H,00H,21H,7FH,01H,00H200H
6、,00H,27H,45H,45H,45H,39H,00H 300H,00H,22H,49H,49H,49H,36H,00H 400H,00H,0CH,14H,24H,7FH,04H,00H 500H,00H,72H,51H,51H,51H,4EH,00H600H,00H,3EH,49H,49H,49H,26H,00H 700H,00H,40H,40H,40H,4FH,70H,00H 800H,00H,36H,49H,49H,49H,36H,00H900H,00H,32H,49H,49H,49H,3EH,00H 要显示数字09,但一个88点阵在同一时间只能显示其中一个数字,作为演示程序,设定每隔
7、1秒变换一个显示数字,即每个数字将连续显示1秒,然后再换为下一个数字显示。 要在8行8列的LED点阵上显示一个字符,由于点阵引线的公共端是连接在一起的,所以不能同时将这些LED都加以控制。只能按行或者按列分别控制显示,以小于人眼视觉暂留时间重复显示,也就是要求每秒至少显示50次以上,要求一次显示过程小于2ms,显示一列(或一行)的显示时间小于250s。 显示过程如下: 首先在P0口送出第一个行码00H,在P2口送出一个列控制码01111111; 再在P0口送第二个行码00H,在P2口送出一个列控制码10111111; 再在P0口送第三个行码3EH,在P2口送出一个列控制码11011111; 再
8、在P0口送第二个行码41H,在P2口送出一个列码11101111; 送完8个行码和8个列控制信号,这样一个“0”字就显示了一遍,接着再重复上述显示过程。 图4.5系统原理结构框图 软件流程参考见图4.6。图4.6 电子显示屏软件流程图参考源程序参考源程序#include#define uchar unsigned charuchar xdata *row0=0X8100; uchar xdata *row1=0X8200; uchar xdata *col0=0X8500; uchar xdata *col1=0X8400; uchar xdata *col2=0X8300; uchar xd
9、ata *col3=0X8000; uchar dispcode232= 0 x04,0 x7C,0 x44,0 x40,0 x40,0 x44,0 x7C,0 x04,/*U*/ 0 x38,0 x6C,0 x44,0 x44,0 x44,0 x44,0 x24,0 x00,/*C*/ 0 x44,0 x7C,0 x1C,0 x70,0 x0C,0 x7C,0 x44,0 x00,/*M*/ 0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,/*-*/ , 0 x04,0 x04,0 x44,0 x7C,0 x44,0 x04,0 x04,0 x
10、00,/*T*/ 0 x00,0 x44,0 x44,0 x7C,0 x44,0 x44,0 x00,0 x00,/*I*/ 0 x00,0 x44,0 x44,0 x7C,0 x44,0 x44,0 x00,0 x00,/*I*/ 0 x44,0 x7C,0 x4C,0 x18,0 x10,0 x24,0 x7C,0 x04,/*N*/ ;uchar disloc4=0 x7F,0 xFF,0 xFF,0 xFF;void delay(uchar i)uchar j,k;for(j=i;j0;j-)for(k=50;k0;k-);void display() static uchar num
11、=0;uchar i=0;*row0=0;*row1=0;*col0=disloc0;*col1=disloc1;*col2=disloc2;*col3=disloc3; *row0=dispcode0num;*row1=dispcode1num;if(+num=32) num=0;dislocnum/8=(dislocnum/81)|(dislocnum/87);if(!(num%8)for(i=0;i4;i+)if(i=num/8)disloci=0 x7F;else disloci=0 xFF; void main()/*主函数*/ while(1)display();delay(2);
12、 4.3 典型案例典型案例 任务描述:用16x16LED点阵显示字符“2009”,LED图案显示的仿真效果如图4.7所示。 图4.7 LED电子显示屏原理图 用LED点阵显示多个字符,用一片74LS138译码器输出端Y0,Y1,Y2,Y3分别负责控制4片74LS373的片选信号,分别作为LED点阵显示的行列驱动器。设计方案如图4.8所示,其程序流程图如图4.9所示。 单片机行驱动器列驱动器LED显示点阵图4.8 多字符显示方案图图4.9 多字符显示流程图参考源程序:参考源程序:#include #include#include#define LEDL2 XBYTE0X0000/控行373地址1
13、#define LEDL1 XBYTE0X0100/控行373地址2#define LEDC1 XBYTE0X0200/控列373地址1#define LEDC2 XBYTE0X0300/控列373地址2 unsigned char code DB1216= 0 x7e,0 x20,0 x10,0 x08,0 x04,0 x22,0 x22,0 x1c, /*2*/ 0 x1c,0 x22,0 x22,0 x22,0 x22,0 x22,0 x22,0 x1c, /*0*/ , 0 x1c,0 x22,0 x22,0 x22,0 x22,0 x22,0 x22,0 x1c, /*0*/ 0 x1c,0 x22,0 x02,0 x1e,0 x22,0 x22,0 x22,0 x1c, /*9*/ ;void delay() /延时约40us unsigned int t; for(t=0;t20;t+); void main() /主函数 unsigned char i; while(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三考前冲刺计划与措施
- 高校美育课程创新工作计划
- 小学数学《实际生活中的千克与克》应用计划
- 学校消防维保计划实施细则
- 工业互联网平台数字签名技术在智能医疗设备中的应用与规范研究报告
- 2025年房地产市场区域分化与半导体技术研发产业投资策略研究报告
- 2025人教版小学数学一年级上册活动计划
- 建筑项目劳动力与材料资源配置计划
- 2025年新能源汽车制造关键核心技术深度解析报告
- 小学生课后阅读推广工作计划
- 经典音乐配乐课
- 南宋官窑教学课件
- 呼吸功能的监测与护理
- 婴儿椅设计研究报告总结
- 自动化机构设计基础
- 厌学怎么办-主题班会课件
- 公务用车租赁服务采购项目比选文件
- 新建混凝土路面道路工程施工工程投标书(技术方案)
- 旁站记录新表(脚手架拆除)
- 低压柜开关更换施工方案
- 织金新型能源化工基地污水处理厂及配套管网工程-茶店污水处理厂环评报告
评论
0/150
提交评论