51单片机88点阵LED显示的原理及程序
51单片机驱动LED点阵扫描显示C语言程序

51单片机驱动LED点阵扫描显示C语言程序LED点阵屏发光亮度强,指示效果好,可以制作运动的发光图文,更容易吸引人的注意力,信息量大,随时更新,有着非常好的广告和告示效果。
笔者此处就LED点阵屏动态扫描显示作一个简单的介绍。
1、LED点阵屏显示原理概述图1-1为一种8x8的LED点阵单色行共阳模块的内部等效电路图,对于红光LED其工作正向电压约为1.8v,其持续工作的正向电流一般10ma左右,峰值电流可以更大。
如下图,当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮,当某一行线为低电平时,无论列线如何,对应的这一行的点全部为暗。
LED点阵屏显示就是通过一定的频率进行逐行扫描,数据端不断输入数据显示,只要扫描频率足够高,由于人眼的视觉残留效应,就可以看到完整的文字或图案信息。
通常有4、8、16线扫描方式,扫描行数越少,点阵的显示亮度越好,但相应硬件数据寄存器需求也越多。
图1-1 点阵内部原理图2、硬件设计微控制器的IO口均不能流过过大的电流,LED点亮时有约10ms 的电流,因此LED点阵引脚不要直接接单片机IO口,应先经过一个缓冲器74HC573。
单片机IO口只需很小的电流控制74HC573即可间接的控制LED点阵某一行(或某一列),而74HC573输出也能负载约10ms的电流。
设置LED每点驱动电流为ID =15ma,这个电流点亮度好,并且有一定的裕度,即使电源输出电压偏高也不会烧毁LED,限流电阻值R = (VCC- VCE – VOL – VLED) / IDVCC为5v供电,VCE为三极管C、E间饱和电压,估为0.2v,VOL为74hc573输出低电平时电压,不同灌电流,此值不一样,估为0.2v,具体查看规格书,VLED为红光驱动电压,估为1.7v,根据上式可算出限流电阻为R = 200R。
LED点阵屏需接收逐个扫描信号,扫描到相应列(或行),对应的列(或行)数据有效,即显示这一列(或行)的信息。
51单片机88点阵,使用示波器

第四周单片机任务一.实验要求1. 了解51单片机的串口使用2.了解8*8点阵3. 会使用示波器(proteus中有虚拟示波器)具体内容:1. 按下按钮,程序开始运行。
再次按下按钮,程序暂停,再次按下按钮程序接着上次暂停的部分继续运行。
2. 当第一次按下按钮后,8*8点阵按照顺序显示“1,2,3,4,5,6,7,8,9,0”这几个数字(注意,每个数字显示需要间隔2秒),当显示到0后,再从1开始。
3. 8*8点阵切换数字时是滚动效果。
4. 串口终端在按下按钮后显示出“now ,8*8 show1,2,3,4,5,6,7,8,9,0”5. 用虚拟示波器观察串口输出的波形,并截图展示程序具体流程如下:按下按钮,点阵显示1,串口终端显示“now ,8*8 show 1,2,3,4,5,6,7,8,9,0”,延时2秒(在这2秒内,点阵显示的1要滚动变成2,滚动效果就是银行门口的字从右到左连贯的切换的那种效果,可以看该网址视频/v_show/id_XMjE3OTM4NDIw.html)。
然后点阵显示2,再延时2秒(同上)。
当显示到点阵0后,再过2秒(同上,滚动变为1),此时串口终端换行再次显示“now ,8*8 show 1,2,3,4,5,6,7,8,9,0”。
如此往复二.硬件分析利用串口调试助手实现串口终端显示“now ,8*8 show 1,2,3,4,5,6,7,8,9,0”三.程序分析#include<reg52.h>char keytmp;char *p;unsigned char dat;sbit k=P3^2;char code str[]="now,8*8show1,2,3,4,5,6,7,8,9,0";char code distaba[]={ // (各数字的阳码)0x00,0x00,0x11,0x21,0x7f,0x01,0x01,0x00, //10x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00, //20x00,0x00,0x49,0x49,0x49,0x7f,0x00,0x00, //30x00,0x04,0x0c,0x14,0x24,0x5f,0x04,0x00, //4 0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00, //5 0x00,0x00,0x7f,0x49,0x49,0x49,0x4f,0x00, //6 0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00, //7 0x00,0x00,0x7f,0x49,0x49,0x49,0x7f,0x00, //8 0x00,0x00,0x79,0x49,0x49,0x49,0x7f,0x00, //9 0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00, //0 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//黑屏,表示一次显示完毕};char code scan_cona[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列扫描控制字void delay2ms(int t){int i,j;for(i=0;i<t;i++)for(j=0;j<240;j++);}void init_com(void){TMOD=0X20;//定时器工作方式2,初值自动装入 PCON=0X00; //波特率不倍增SCON=0X40; //串行工作方式1 TH1=0xfd; //定时器初值高位,波特率9600 TL1=0xfd; //定时器初值低位 TR1=1; //启动定时器}void fun() //向左滚动显示{int m,n,h;for(h=0;h<80;h++) //控制显示字数(80/8=10个) {for(n=0;n<25;n++) //控制帧移动速度{for(m=0;m<8;m++) //显示1帧扫描(分8行,每行亮2ms) {P2=scan_cona[m];P0=distaba[m+h];delay2ms(1);}}}}void delay(void) //延时子程序{int k;for(k=0;k<600;k++);}void InitCom(void)//串口定义初始化子程序{TMOD=0x20;PCON=0x00;SCON=0x50;TH1=0xFd;TR1=1;}void send_str()//发送字符串子程序{unsigned char i=0;while(str[i]!='\0'){SBUF=str[i];while(!TI);TI=0;i++;}}void intersvr0(void)interrupt 0 using 1{send_str(); //调用发送字符串子程序}main() //主程序{EA=1;EX0=1;IT0=0;while(1){if(RI){dat=SBUF;RI=0;}fun();}}姓名:杨丹班级:1207学号:210121885。
LED点阵显示屏工作原理及驱动程序

LED点阵显示屏工作原理及驱动程序LED显示屏驱动程序几年前本人得到一块双色LED显示屏,因为没有控制器,所以对显示屏的工作原理进行了一番研究,利用手头上的元件,搭了一块电路板,编写了一段程序就放置一边了,这几天有时间,把原来的89C51汇编程序改了一下,改为AT89C2051和STC11F04E单片机能用的程序,放到博客上希望有兴趣的同行可以参考一下。
下面是显示效果图:下面是接口电路板图:下面是电路原理图:工作原理:这块显示屏是分为上下共32行LED点阵,水平有4块16*16点阵,所以能显示16*16点阵8个汉字。
工作原理是用74ls138做为行扫描,列用74ls595控制,当138扫描到某一行时,595决定哪一列该亮,就这样快速扫描,就形成了图像了。
参见下图:以单色单元板为例走线方式如下图:各信号走向如下:l JP1排针16脚信号A->74HC245的第2脚(信号放大)->74HC245的第18脚->74HC138的第1脚->JP2排针16脚l JP1排针15脚信号B->74HC245的第3脚(信号放大)->74HC245的第17脚->74HC138的第2脚->JP2排针15脚l JP1排针1脚信号OE->74HC245的第4脚(信号放大)->74HC245的第16脚->74HC04D的第1脚->74HC04D的2脚->①74HC138的第5脚->②74HC04D的3脚->74HC04D的4脚->JP2排针1脚l JP1排针11脚信号R->74HC245的第9脚(信号放大)->74HC245的第11脚->最左上角74HC595-1的第14脚->74HC595-1的9脚->74HC595-2的14脚->74HC595-2的9脚->最右下角74HC595-16的14脚->74HC595-16的9脚->JP2排针11脚我现在用的是双色板,JP1各端口含义如下:ABCD是显示屏电路板上的74LS138地址译码端,单片机寄存器R3控制行扫描,当R3从00000000到00010000增加时ABCD的变化给138译码,当R3=0FH 时正好扫描16行,当进位到10时扫描结束,OE是138的片选使能端,低电平有效。
88点阵LED显示屏的原理详解与汉字代码

首先我们看一下8*8led显示屏?的原理从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;要实现显示图形或字体,只需考虑其显示方式。
通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
例如:要实现一根柱形的亮法,如图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现下图是4个8*8LED组成的显示屏。
这里我把点阵LED显示屏制作的电路原理分成两个部分来介绍即显示屏电路和显示屏驱动电路。
一、显示屏电路本人用的是共阴极的8*8点阵屏,在市场上是比较容易买到,下图是8*8点阵屏的实物图。
点阵屏有两个类型,一类为共阴极(左),另一类则为共阳极(右),下图给出了两种类型的内部电路原理及相应的管脚图。
LED阵列的显示方式是按显示编码的顺序,一行一行地显示。
每一行的显示时间大约为4ms,由于人类的视觉暂留现象,将感觉到8行LED是在同时显示的。
若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。
本文采用低电平逐行扫描,高电平输出显示信号。
即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态,其它行都处于熄灭状态。
为了方便调试本文把4块8*8组成的16*16的点阵屏的行信号扫描输出管脚和列信号显示输出管脚分别引到显示屏的两边。
Protel原理图如下:如图4 所示的原理图中的Si(i=1,2,3,…,16) 代表行扫描信号输出,Di(i=1,2,3,…,16)代表列显示信号输出。
实物电路图的正反面如下:二、显示屏驱动电路显示屏驱动电路的原理图如下:显示屏驱动电路主要由主芯片控制电路、电源电路、控制信号放大电路等组成。
88点阵LED显示屏的原理详解及汉字代码

首先我们看一下8*8led显示屏?的原理从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;要实现显示图形或字体,只需考虑其显示方式。
通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
例如:要实现一根柱形的亮法,如图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现下图是4个8*8LED组成的显示屏。
这里我把点阵LED显示屏制作的电路原理分成两个部分来介绍即显示屏电路和显示屏驱动电路。
一、显示屏电路本人用的是共阴极的8*8点阵屏,在市场上是比较容易买到,下图是8*8点阵屏的实物图。
点阵屏有两个类型,一类为共阴极(左),另一类则为共阳极(右),下图给出了两种类型的内部电路原理及相应的管脚图。
LED阵列的显示方式是按显示编码的顺序,一行一行地显示。
每一行的显示时间大约为4ms,由于人类的视觉暂留现象,将感觉到8行LED是在同时显示的。
若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。
本文采用低电平逐行扫描,高电平输出显示信号。
即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态,其它行都处于熄灭状态。
为了方便调试本文把4块8*8组成的16*16的点阵屏的行信号扫描输出管脚和列信号显示输出管脚分别引到显示屏的两边。
Protel原理图如下:如图4 所示的原理图中的Si(i=1,2,3,…,16) 代表行扫描信号输出,Di(i=1,2,3,…,16)代表列显示信号输出。
实物电路图的正反面如下:二、显示屏驱动电路显示屏驱动电路的原理图如下:显示屏驱动电路主要由主芯片控制电路、电源电路、控制信号放大电路等组成。
基于C51单片机的8×8LED点阵屏汉字显示

单片机课程设计报告-8X 8 LED点阵屏显示“大”字第一章设计内容及要求 (3)第二章总体设计...................................32.1 系统框图.........................................3 > 42.2 设计步骤 (4)第三章各部分电路设计.................................43. 1复位电路...........................................4 、53.2时钟电路..................................... 5、6 3.3显示电扑各....................................6 > 73. 4大字取模...........................................73.5 LED引脚连接方式........................................ & 93・6总体电路9第四章程序设计 (9)4.1软件流图..................................... 9、104.2大字的模 (10)4・2主程序.................................. 10^ 114.3 C51单片机开发工具:keil 4 Proteus 使用方法…11、16第五章仿真结果 (16)第六章总结与体会.............................. 17^ 18第七章参考文献 (18)附录程序清单.................................. 19、20基于C51单片机的8X 8 LED点阵屏汉字显示一设计要求设计_个8*点阵LED电子显示屏2、要求在目测条件下LED显示屏各点亮度均匀、充足,可静态显示一个大字。
单片机 点阵led电路

单片机点阵led电路单片机点阵LED电路是一种常见的电路组成部分,用于控制点阵LED显示屏的显示效果。
本文将介绍单片机点阵LED电路的原理和应用。
一、单片机点阵LED电路的原理单片机点阵LED电路由单片机、点阵LED显示屏和相关的驱动电路组成。
单片机是整个电路的控制核心,它通过驱动电路将控制信号发送到点阵LED显示屏,从而实现对点阵LED的控制。
点阵LED显示屏是由多个LED灯组成的,每个LED灯称为一个像素点。
通过控制每个像素点的亮灭状态,可以显示出不同的图形、文字或图像。
驱动电路是将单片机输出的控制信号转换为点阵LED显示屏所需的电压和电流,并按照指定的规律将信号发送给点阵LED显示屏。
常见的驱动电路有行列式驱动和点阵扫描驱动两种。
二、单片机点阵LED电路的应用单片机点阵LED电路广泛应用于各种显示设备,如计算器、时钟、电子秤、电子游戏机等。
通过点阵LED显示屏,可以实现对各种信息的显示和提示。
以计算器为例,单片机点阵LED电路可以将计算结果以数字的形式显示在屏幕上,方便用户阅读。
同时,还可以通过点阵LED显示屏显示其他功能键、操作提示等信息,提升用户体验。
在电子游戏机中,单片机点阵LED电路可以实现游戏界面的显示,包括游戏得分、游戏关卡等信息。
通过点阵LED显示屏的高亮度和快速刷新速度,可以呈现出流畅的游戏画面,提升游戏的趣味性和可玩性。
单片机点阵LED电路还可以应用于广告牌、室内外显示屏等场合。
通过点阵LED的高亮度和可见角度大的特点,可以实现远距离观看和广告内容的清晰显示。
三、单片机点阵LED电路的优势相比传统的数码管显示方式,单片机点阵LED电路具有以下优势:1. 显示效果更丰富:通过点阵LED的组合和控制,可以显示出更多的图形、文字和图像,丰富了显示效果。
2. 可编程性强:单片机可以通过编程控制点阵LED的显示内容和显示方式,具有更强的灵活性和可扩展性。
3. 节省空间:点阵LED显示屏相对较小,可以在有限的空间内实现更多的显示信息。
基于51单片机的LED点阵显示屏系统设计方案

图2-1系统硬件组成框图
2.1.1 显示屏主控制器
控制部分是整个系统的核心部分,其功能为与上位机通信接收上位机发送的数据和控制指令处理过后控制显示部分显示内容。其常用的电子设计方法有单ห้องสมุดไป่ตู้机、DSP、及EDA技术。几种设计方法比较各有其特点:
(1)单片机
单片机是集成了CPU,ROM,RAM和I/ O口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。单片机品种齐全,型号多样 CPU 从8,16,32到64位,多采用RISC 技术,片上I/O非常丰富,有的单片机集成有A/ D,“ 看门狗”,PWM,显示驱动,函数发生器,键盘控制等。它们的价格也高低不等,这样极大地满足了开发者的选择自由。除此之外单片机还具有低电压和低功耗的特点。随着超大规模集成电路的发展,NMOS工艺单片机被CMOS代替,并开始向HMOS 过渡。供电电压由5V 降到3V,2V甚至到1V,工作电流由mA降至μA ,这在便携式产品中大有用武之地[4]。
LED显示屏是由一个一个的发光二极管点阵构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来,如图2-2所示;二是选用一些由单个发光二极管构成的LED点阵子模块构成大的LED点阵模块。目前市场上普遍采用的点阵模块有8×8、16×16几种;这两种屏幕构成方法各有有缺点,单个发光二极管构成显示屏优点在于当单个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。这就加大了维修的成本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机8*8点阵LED显示原理及程序
更多
在8X8点阵LED上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。
1.程序设计内容
8X8点阵LED工作原理说明:8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。
2.硬件电路
3.汇编源程序
ORG 00H
START: NOP
MOV R3,#3
LOP2: MOV R4,#8
MOV R2,#0
LOP1: MOV P1,#0FFH
MOV DPTR,#TABA
MOV A,R2
MOVC A,@A+DPTR MOV P3,A
INC R2
LCALL DELAY DJNZ R4,LOP1 DJNZ R3,LOP2
MOV R3,#3
LOP4: MOV R4,#8 MOV R2,#7
LOP3: MOV P1,#0FFH MOV DPTR,#TABA MOV A,R2
MOVC A,@A+DPTR MOV P3,A
DEC R2
LCALL DELAY DJNZ R4,LOP3 DJNZ R3,LOP4
MOV R3,#3
LOP6: MOV R4,#8 MOV R2,#0
LOP5: MOV P3,#00H MOV DPTR,#TABB MOV A,R2
MOVC A,@A+DPTR MOV P1,A
INC R2
LCALL DELAY DJNZ R4,LOP5 DJNZ R3,LOP6 MOV R3,#3
LOP8: MOV R4,#8 MOV R2,#7
LOP7: MOV P3,#00H MOV DPTR,#TABB MOV A,R2
MOVC A,@A+DPTR MOV P1,A
DEC R2
LCALL DELAY
DJNZ R4,LOP7
DJNZ R3,LOP8
LJMP START
DELAY: MOV R5,#10
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABA: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH TABB: DB 01H,02H,04H,08H,10H,20H,40H,80H
END
4.C51语言源程序
#include <AT89X52.H>
unsigned CHAR code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned CHAR code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void DELAY(void)
{
unsigned CHAR i,j;
for(i=10;i>0;i--)
for(j=248;j>0;j--);
}
void DELAY1(void)
{
unsigned CHAR i,j,k;
for(k=10;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
unsigned CHAR i,j;
while(1)
{
for(j=0;j<3;j++)//FROM left to right 3 time {
for(i=0;i<8;i++)
{
P3=taba[i];
P1=0xff;
DELAY1();
}
}
for(j=0;j<3;j++)//FROM right to left 3 time
{
for(i=0;i<8;i++)
{
P3=taba[7-i];
P1=0xff;
DELAY1();
}
}
for(j=0;j<3;j++)//FROM top to bottom 3 time {
for(i=0;i<8;i++)
{
P3=0x00;
P1=tabb[7-i];
DELAY1();
}
}
for(j=0;j<3;j++)//FROM bottom to top 3 time {
for(i=0;i<8;i++)
{
P3=0x00;
P1=tabb[i];
DELAY1();
}
}
}
}。