点阵控制卡原理图

合集下载

16×16LED点阵屏原理图及驱动程序

16×16LED点阵屏原理图及驱动程序

16×16LED点阵屏原理图及驱动程序这是我玩LED点阵屏的第一块电路板,也是学习单片机入门的第一个实验器材。

它由4片30mm×30mm的8×8红色高亮点阵模块与两片74HC595、两片74HC138、16只8550晶体管、一片74HC244集装在一块宽高65mm×210mm的双面PCB板上,它应该是一组级联安装的LED 屏的一个单元模块,拿到它时,我正在学习《无线电》杂志2007/11期刊上杜洋的一组文章,刚刚做好了ISP下载线,只做了“一个发光二极管的控制实验”,面对这个既好玩又陌生的玩意,真是无从下手,通过上网学习,解析研究,前后弄了两个多月,最后在《无线电》杂志2005/12期的配文程序的帮助下,终于踏进了点阵控制的门槛,两年过去了,我又玩了许多单片机控制器件,但这块屏却一直摆在我的桌案上,每当遇到难题时,看看它那稳定清晰的显示,我都能找到许多灵感;最近、在摆弄一块并行驱动的16×64点阵屏时(前几篇文章介绍了)时,因为用的还是这段程序,就又想起了它,虽然程序已经详解过了,但是,为了留记一段经历、一段回忆,决定还是“貂续狗尾”写在这里,留着自己欣赏吧。

一.原理图:二.汉字左右移动驱动程序/****************************************************************************** ********16×16LED点阵屏原理图及C源汉字左右移动显示驱动程序————wannenggong单片机:AT89S52引脚说明:P0.0/P0.1/P0.2/P0.3控制由两片74HC138组成的行驱动控制4-16译码器的A/B/C/D端P1.0/P1.1控制列驱动控制74HC595的OE/ST端,595的14脚(DS)经244连接RXD,595的12脚(SH)经244连接TXD。

双色点阵控制卡原理图PCB

双色点阵控制卡原理图PCB

2
CON3
104 C8 +5 3
+
V OUT GND 2
C4 470uF
C6 104
104
C1+ VCC V+ GND C1- 1Cout C2+ 1C in C2- 151out V151 in 2Cout 25 1in 2Cin 251out MAX232
MAX232
VCC R3810K 3 P14 2 1
Q2 8550 OUT08 IN09 C IN08 R3 4K7
Q5 8550 OUT09 IN0A R5 4K7
Q8 8550 OUT0A IN0B R7 4K7
Q11 8550 OUT0B IN0C R9 4K7
Q14 8550 OUT0C IN0D R11 4K7
Q17 8550 OUT0D IN0E R13 4K7
Q15 8550 OUT14 IN15 R29 4K7
Q18 8550 OUT15 IN16 R31 4K7
Q21 8550 OUT16 IN17 R33 4K7
Q24 8550 OUT17 R35 4K7
IN10
+5
Q25 8550 OUT18 IN19 R22 4K7
Q26 8550 OUT19 IN1A R24 4K7
123BCAD
1 J1 34PIN 16 B-8 15 B-7 14 B-6 13 B-5 12 B-4 11 B-3 10 B-2 9B-1 24 C-8 23 C-7 22 C-6 21 C-5 20 C-4 19 C-3 18 C-2 17 C-1 8A-8 7A-7 6A-6 5A-5 4A-4 3A-3 2A-2 1A-1 32 D-8 31 D-7 30 D-6 29 D-5 2

点阵显示屏成功点亮原理图程序

点阵显示屏成功点亮原理图程序

16×16点阵显示屏成功点亮!!看到江同学的3216屏(),对于我来说,稍显复杂,所以决定做个1616的屏看看效果,原理图就是以下了,注意做1616时,要去掉一个74LS154(当然这里也能换用74HC154,虽然功耗大,但价格较低),经过两天的奋斗,终于完工了。

简单的调试后,点亮了!!编个流动显示的程序,哈哈,很炫啊。

心动不如赶快行动啊!!我是把点阵块焊到一块板子上,可方便检查有无虚焊,控制部分放到了另一张板上,做成的实物图就是下面的了,视频在这里:(注:以下原理图均来自)/********************************************************* 程序名称:LED1616点阵流动显示汉字简要说明:最大可显示16*16汉字P0口接上行线,P2口接下行线,P3口接扫描线编写:改编: springvirus*********************************************************/#include <>#define hang1 P0 //上行线#define hang2 P2 //下行线#define lie P1 //列线#define sum sizeof(hanzi)/32 //自动计算汉字字数/*****参数设置*****/#define ziti 16 //字体大小(宽度)#define light 50 //显示亮度#define move_speed 50 //移动速度unsigned char code hanzi[]={/*-- 文字: 自 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0xF8,0x48,0x48,0x4C,0x4B,0x4A,0x48,0x48,0x48,0xF8,0x00,0x00,0x00 ,0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00 ,/*-- 文字: 制 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x50,0x4F,0x4A,0x48,0xFF,0x48,0x48,0x48,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00 ,0x00,0x00,0x3F,0x01,0x01,0xFF,0x21,0x61,0x3F,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00 ,/*-- 文字: 小 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00 ,0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00 ,/*-- 文字: 型 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x12,0x10,0xFC,0x00,0x00,0xFF,0x00,0x00 ,0x40,0x42,0x49,0x48,0x48,0x48,0x49,0x7E,0x48,0x48,0x48,0x4A,0x4C,0x4B,0x40,0x00 ,/*-- 文字: 点 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0xF4,0x24,0x00,0x00,0x00 ,0x00,0x40,0x30,0x07,0x12,0x62,0x02,0x0A,0x12,0x62,0x02,0x0F,0x10,0x60,0x00,0x00 ,/*-- 文字: 阵 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0xFE,0x02,0x12,0x2A,0xC6,0x88,0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x88,0x88,0x00,0x00 ,0xFF,0x00,0x02,0x04,0x03,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x00 ,/*-- 文字: 显 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x00 ,0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00 ,/*-- 文字: 示 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00 ,0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7F,0x00,0x00,0x01,0x02,0x0C,0x18,0x00,0x00 ,/*-- 文字: 系 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62,0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00 ,0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81,0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00 ,/*-- 文字: 统 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4,0xA4,0x9D,0x86,0x84,0xA4,0xC4,0x84,0x00 ,0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30,0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,0x00 ,/*****空白,用于区分显示内容的头和尾*****/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};uint k=0,j; //移位变量,k:移位个数uint a=0; //用于软件延时ulong s=(sum+1)*ziti; //s为全部列数uchar disbuf[16][2]; //定义显示缓冲区(16行两列的二维数组以开辟1个16*16汉字的空间)bit move_st; //移动标志/*****可变延时*****/void delay(void){uchar i;for(i=0;i<light;i++);}/*****初始化子程序*****/void init(void){TMOD=0x1;TH0=0xfc;TL0=0x18;}/*****计数器中断程序*****/void timer0(void) interrupt 1 //中断处理{TH0=0xfc;TL0=0x18;a++;}/*****汉字循环显示*****/void run_move(void){uchar k1,k2;if(a>=move_speed) //move_speed控制移动速度{if(k>s-ziti-1)k=0; //整屏移动列数k1=k/ziti;k2=k%ziti;j=ziti*2*k1+k2; //显示指针k++;move_st=1;a=0;}}/*****装载显示数据至缓冲区*****/void load_hanzi(void){uchar i;run_move();if(move_st){for(i=0;i<15;i++){disbuf[i][0]=disbuf[i+1][0];//移位处理 disbuf[i][1]=disbuf[i+1][1];//移位处理 }disbuf[15][0]=hanzi[j];disbuf[15][1]=(hanzi[ziti+j]);move_st=0;}}/*****扫描显示数据缓冲区的内容*****/void display(void){uchar i;for (i=0;i<16;i++){lie=i;hang1=disbuf[i][0]; hang2=disbuf[i][1]; delay();hang1=0;hang2=0;}}/*****主程序*****/ void main (void){ init();EA=1; //开中断TR0=1; ET0=1;while(1){ load_hanzi();display(); }}。

×LED点阵屏原理图及驱动程序

×LED点阵屏原理图及驱动程序
×LED点阵屏原理图及驱动程序
———————————————————————————————— 作者:
———————————————————————————————— 日期:
16×16LED点阵屏原理图及驱动程序
这是我玩LED点阵屏的第一块电路板,也是学习单片机入门的第一个实验器材。它由4片30mm×30mm的8×8红色高亮点阵模块与两片74HC595、两片74HC138、16只8550晶体管、一片74HC244集装在一块宽高65mm×210mm的双面PCB板上,它应该是一组级联安装的LED屏的一个单元模块,拿到它时,我正在学习《无线电》杂志2007/11期刊上杜洋的一组文章,刚刚做好了ISP下载线,只做了“一个发光二极管的控制实验”,面对这个既好玩又陌生的玩意,真是无从下手,通过上网学习,解析研究,前后弄了两个多月,最后在《无线电》杂志2005/12期的配文程序的帮助下,终于踏进了点阵控制的门槛,两年过去了,我又玩了许多单片机控制器件,但这块屏却一直摆在我的桌案上,每当遇到难题时,看看它那稳定清晰的显示,我都能找到许多灵感;最近、在摆弄一块并行驱动的16×64点阵屏时(前几篇文章介绍了)时,因为用的还是这段程序,就又想起了它,虽然程序已经详解过了,但是,为了留记一段经历、一段回忆,决定还是“貂续狗尾”写在这里,留着自己欣赏吧。
/*uchar two_onebyteR(uchar h1,uchar h2)
{
uchar temp,tempcol;
if(col<8) tempcol=col;
else tempcol=col-8;
temp=(h1>>tempcol)|(h2<<(8-tempcol)); //右移显示
temp=255-temp;

LED点阵屏原理图

LED点阵屏原理图
对于138,G1端为高电平时选中芯片.
列.a.b.c.d.e.f.g.h= -
列.a.b.c.d.e.f.g.h= -
列.a.b.c.d.e.f.g.h= -
D2 D2
6 5
H4
D1 D1 D2 D2
a b c d e f g h
a b c d e f g h
a b c d e f g h
D1 6 5 H6
D1 D1
8 7
H3
H1 H2 H3 H4 H5 H6 H7 H8
9 14 8 12 1 7 2 5
LED-88B 行.A.B.C.D.E.F.G.H= + Ah A AaAbAcAd B BaBb C Ca D Da E F Gh G HgHh H Ha
VCC+5 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 GND VCC 0C1 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
13 3 4 10 6 11 15 16
L9 L10 L11 L12 L13 L14 L15 L16
L17 L18 L19 L20 L21 L22 L23 L24
L25 L26 L27 L28 L29 L30 L31 L32
13 3 4 10 6 11 15 16
a b c d e f g h
列.a.b.c.d.e.f.g.h= -
行.A.B.C.D.E.F.G.H= + AaAbAcAd Ah BaBb Ca Da
H1 H2 H3 H4 H5 H6 H7 H8
9 14 8 12 1 7 2 5
A B C D E F G H
行.A.B.C.D.E.F.G.H= + AaAbAcAd Ah BaBb Ca Da

点阵LED的工作原理

点阵LED的工作原理

针对我们在用的单元板,简要做个控制说明常用的是08接口的LED显示板,这种板子原理相对简单,数据走线也很直观,所以就以此现实板来举例。

1,单元板输入08接口的接口定义:接口解释:ABCD是4个行选信号,实际上是用4个二进制位计数来实现的。

A为最低位,D为最高位,从0记录到15,板子上的2个138组成一个4-16译码器,会自动选通第0行和第15行。

R0、R1、G0、G1分别是红色和绿色595的数据,SCK和LT分别是595的时钟和锁存,OE是整个单元板的显示时能,OE为0时单元板暗亮,为1时高亮。

OE是为了适应不同厂家的单元板信号的。

08接口单元板工作原理简介:一个单元板的宽和高的点数是64*32点,分上下两个半屏,两个半屏共用时钟、锁存和OE,R0、G0是上半屏数据,R1、G1是下半屏数据。

从单元板的显示面看,数据是从右侧向左输入,一行是64个点,也就是通过8个595控制,因为是双色,每个半屏是两行595,整个屏是4行595。

以一个单元板为例介绍控制卡工作顺序:把显示缓冲里的第一行红色数据送往R0、第一行绿色数据送往G0;显缓的第8行红色数据送往R1、第8行绿色数据送往G1,每行是8个数据——>关闭OE使能——>行选选中第0行、LT锁存——>开启OE使能,数据显示。

间隔一定时间3-5ms,重复以上循环,行选第1行,送第1行和第9行数据...间隔一定时间3-5ms,重复以上循环,行选第2行,送第2行和第10行数据...以此类推附加资料:仅作了解之用。

8×8 点阵LED的工作原理8×8 点阵LED的工作原理。

图(1)为8×8点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。

例如如果想使左上角LED点亮,则Y0=1,X0=0即可。

图(1)8×8点阵LED外观及引脚图图(2)8×8点阵LED等效电路图(3)8×8点阵LED电路原理点阵LED扫描法介绍点阵LED一般采用扫描式显示,实际运用分为三种方式:(1) 行扫描;(2) 列扫描。

LED点阵板使用说明(原理图)

LED 16*16点阵板使用说明 V1.01.板子的组成 4 个大小为32mm*32mm 的8*8 共阳点阵组成16*16 点阵,点阵屏可拆装,采用圆孔铜排针,连接性能非常好。

驱动部份使用两个移位带存储器的74HC595 和两个移位寄存器74HC164 组成,74HC595 负责列扫描数据,74HC164 负责行扫描数据。

列扫描采用三极管放大电流,加大扫描强度,提高点阵屏亮度。

数据接口采用可并接方式,有输入和输出,方便并接多个单板,组成32*16、48*16、64*16等点阵。

2.关于点阵屏。

颜色有单色屏、双色屏和三基色屏,三基色屏是组成彩色屏的最小元素。

LED 点阵有4*4、4*8、5*7、5*8、8*8、16*16、24*24、40*40 等多种,很多大屏幕都是由8*8 来组成的,比如256*128 像素的一块大屏幕,由每行32 个共16 行即512 个8*8 点阵组成。

本板也使用 4 个8*8 来组成16*16 点阵屏,多块合并可组成32*16、48*16,64*16 等。

点阵屏分为共阳和共阴两种,本板使用共阳型,如下图:3. 电路板上主要ICA)74HC595:硅结构的CMOS 集成电路,兼容低电压TTL 电路。

如图:74HC595 是具有8 位移位寄存器和一个存储器,三态输出功能。

移位寄存器和存储器是分别的时钟。

数据在SCHcp 的上升沿输入,在STcp 的上升沿进入存储寄存器。

如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲,电路中,将两个时钟分开控制,目的是先移好位,再存储数据,这样在移位的过程中,可保持输出的数据。

移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),电路将其接入下一个IC 的输入(Ds)组成16 位移位存储。

一个异步的低电平复位/MR,电路中不使用复位信号,将此脚直接接入电源VCC)。

存储寄存器有一个并行8 位的,具备三态的总线输出,当使能OE 时(为低电平),存储寄存器的数据输出到总线,电路中直接将此脚接GND,做直接输出。

8X8点阵原理及驱动

8X8点阵原理及驱动8X8点阵的实际外观图如下:一共64个发光点构成,上下两排引脚,每排8个,一共16个点阵侧面有文字的那面对准自己,8X8点阵的显示原理:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第1脚要接高电平,而(a、b、c、d、e、f、g、h)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第a脚接低电平,而(1、2、3、4、5、6、7、8)接高电平,那么第一列就会点亮.8*8点阵实际的引脚(图一)的不是一排阳极,一排阴极,(就像键盘一样不是abcd按顺序排的)所以焊接有点麻烦,8×8LED点阵引脚图如下:1,2,3,4,5,6,7,8是行(阳极)a,b,c,d,e,f,g,h是列(阴极)//此处说的都是行阳型8*8点阵,行阴的略外面的1~16就是实际的管脚,见图一移位锁存器74H C595原理74H C595是一个串入并出的芯片,通过一个f o r(i=0;i<8;i++)来存储数据。

具体来说就是第一个时钟信号来到时低位的数据向高位挪动一位,在这个程序中是S H_C P信号,当S H_C P是一个上跳沿时,传入的形参D a t a与0x80相与,得到的数为1,则通过D S引脚向595输入1,否输入0,并存储在74H C595的相应位置(最低位即Q0那)上,D S内部也自动左移一位数据然后d a t向左移一位,使次高位变为最高位与0x80相与,并存储。

通过8次后,就可以得到数据,并存储在Q0~Q7中了,这时S T_C P一个上跳沿,数据即送出去了.与8*8L E D连接如下:显示0~59C语言代码:#i n c l u d e<A T89X52.h>#d e f i n e u c h a r u n s i g n e d c h a r#d e f i n e u i n t u n s i g n e d i n tv o i d S e r_I N(u c h a r D a t a){u c h a r i;f o r(i=0;i<8;i++){S H_C P=0;//先置为低D S=D a t a&0x80;//取数据的最高位D a t a<<=1;//讲数据的次高位移到最高位,为下一次取数据做准备S H_C P=1;//再置为高,产生移位时钟上升沿,储存器里的数据移位,数据输入}}v o i d P a r_O U T(v o i d){S T_C P=0;//先置为低S T_C P=1;//再置为高,产生时钟上升沿,上升沿时,数据并行输出}uchar codetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //列uchar code tabdigit[60][8]={ //字模取模方向阴码逆向逐列式{0x00,0x3E,0x41,0x41,0x3E,0x00,0x00,0x00}, {0x00,0x42,0x7F,0x40,0x00,0x00,0x00,0x00}, {0x00,0x62,0x51,0x49,0x46,0x00,0x00,0x00}, {0x00,0x22,0x49,0x49,0x36,0x00,0x00,0x00}, {0x00,0x38,0x26,0x7F,0x20,0x00,0x00,0x00}, {0x00,0x4F,0x49,0x49,0x31,0x00,0x00,0x00}, {0x00,0x3E,0x49,0x49,0x32,0x00,0x00,0x00}, {0x00,0x03,0x71,0x09,0x07,0x00,0x00,0x00}, {0x00,0x36,0x49,0x49,0x36,0x00,0x00,0x00}, {0x00,0x26,0x49,0x49,0x3E,0x00,0x00,0x00}, {0x02,0xFF,0x00,0x00,0xFF,0x81,0xFF,0x00}, {0x02,0xFF,0x00,0x02,0xFF,0x00,0x00,0x00}, {0x02,0xFF,0x00,0xF3,0x91,0x99,0xCF,0x00}, {0x02,0xFF,0x00,0x42,0x89,0x89,0x89,0x76}, {0x02,0xFF,0x00,0x1C,0x13,0x10,0xFF,0x10}, {0x02,0xFF,0x00,0x4F,0x89,0x89,0x89,0x71}, {0x02,0xFF,0x00,0x7C,0x92,0x91,0x91,0x60}, {0x02,0xFF,0x00,0x01,0xF9,0x05,0x03,0x00}, {0x02,0xFF,0x00,0x76,0x89,0x89,0x89,0x76}, {0x02,0xFF,0x00,0x4E,0x91,0x91,0x91,0x7E}, {0xE2,0x91,0x89,0x86,0x00,0xFF,0x81,0xFF}, {0xE2,0x91,0x89,0x86,0x00,0x02,0xFF,0x00},{0x79,0x49,0x4F,0x00,0x7A,0x4A,0x4E,0x00}, {0x79,0x49,0x4F,0x00,0x49,0x49,0x49,0x36}, {0x79,0x49,0x4F,0x00,0x1E,0x10,0xFF,0x10}, {0x79,0x49,0x4F,0x00,0x4E,0x4A,0x7A,0x00}, {0x79,0x49,0x4F,0x00,0xFE,0x92,0x92,0x60}, {0x79,0x49,0x4F,0x00,0x79,0x05,0x03,0x00}, {0x79,0x49,0x4F,0x00,0x76,0x89,0x89,0x76}, {0x79,0x49,0x4F,0x00,0x4E,0x91,0x91,0x7E}, {0x42,0x89,0x89,0x76,0x00,0xFE,0x82,0xFE}, {0x42,0x89,0x89,0x76,0x00,0x02,0xFF,0x00}, {0x42,0x89,0x89,0x76,0x00,0xF9,0x89,0x8F}, {0x42,0x89,0x89,0x76,0x00,0x89,0x89,0xFF}, {0x42,0x89,0x89,0x76,0x00,0x0F,0x08,0xFF}, {0x42,0x89,0x89,0x76,0x00,0x9E,0x92,0xF2}, {0x42,0x89,0x89,0x76,0x00,0xFF,0x89,0xF9}, {0x42,0x89,0x89,0x76,0x01,0x01,0xFD,0x03}, {0x42,0x89,0x89,0x76,0x00,0xFF,0x89,0xFF}, {0x42,0x89,0x89,0x76,0x00,0xCF,0x89,0xFF}, {0x1F,0x10,0xFF,0x00,0x7E,0x81,0x81,0x7E}, {0x1F,0x10,0xFF,0x00,0x02,0xFF,0x00,0x00}, {0x1F,0x10,0xFF,0x00,0xE2,0x91,0x89,0xC6}, {0x1F,0x10,0xFF,0x00,0x42,0x89,0x89,0x76},{0x1F,0x10,0xFF,0x00,0x1E,0x10,0xFF,0x10}, {0x1F,0x10,0xFF,0x00,0x8F,0x89,0x89,0xF9}, {0x1F,0x10,0xFF,0x00,0xFF,0x89,0x89,0xF9}, {0x1F,0x10,0xFF,0x00,0x03,0xF9,0x05,0x03}, {0x0F,0x08,0xFF,0x00,0x76,0x89,0x89,0x76}, {0x1F,0x10,0xFF,0x00,0x4E,0x91,0x91,0x7E}, {0x4F,0x49,0x79,0x00,0x3E,0x41,0x41,0x3E}, {0x4F,0x49,0x79,0x00,0x00,0x02,0x7F,0x00}, {0x4F,0x49,0x79,0x00,0x62,0x51,0x49,0x46}, {0x4F,0x49,0x79,0x00,0x42,0x89,0x89,0x76}, {0x4F,0x49,0x79,0x00,0x1E,0x10,0x7E,0x10}, {0x4F,0x49,0x79,0x00,0x4F,0x49,0x79,0x00}, {0x4F,0x49,0x79,0x00,0x7F,0x49,0x79,0x00}, {0x4F,0x49,0x79,0x00,0x01,0x7D,0x03,0x01}, {0x4F,0x49,0x79,0x00,0x76,0x89,0x89,0x76}, {0x4F,0x49,0x79,0x00,0x0E,0x91,0x91,0x7E}, };uint timecount;uchar a;uchar b;void main(void){TR0=0;TMOD=0x01;TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;ET0=1;TR0=1;while(1);}void t0(void) interrupt 1{TH0=(65536-1000)/256;TL0=(65536-1000)%256;Ser_IN(tab[a]); //8X8点阵列扫描 Ser_IN(tabdigit[b][a]);//送行扫描数据 Par_OUT(); //显示a++;if(a==8){a=0;}timecount++;if(timecount==1000) {timecount=0;b++;if(b==60){b=0;}}}。

LED点阵屏控制PPT课件


• #define LEDL1 XBYTE[0X0100]//控行373地址2
• #define LEDC1 XBYTE[0X0200]//控列373地址1
• #define LEDC2 XBYTE[0X0300]//控列373地址2
• unsigned char code DB1[2][16]={{
• ……
• 送完8个行码和8个列控制信号,这样一个“0” 字就显示了一遍,接着再重复上述显示过程。
图4.5系统原理结构框图
• 软件流程参考见图4.6。
▪图4.6 电子显示屏软件流程图
• 参考源程序
• #include<reg51.h>
• #define uchar unsigned char
• uchar xdata *row0=0X8100;

delay(2);

}
•}
4.3 典型案例
• 任务描述:用16x16LED点阵显示字 符“2009”,LED图案显示的仿真效 果如图4.7所示。
图4.7 LED电子显示屏原理图
• 用LED点阵显示多个字符,用一片 74LS138译码器输出端Y0,Y1,Y2,Y3分 别负责控制4片74LS373的片选信号, 分别作为LED点阵显示的行列驱动器。 设计方案如图4.8所示,其程序流程图 如图4.9所示。

},

{

0x04,0x04,0x44,0x7C,0x44,0x04,0x04,0x00,/*"T"*/

0x00,0x44,0x44,0x7C,0x44,0x44,0x00,0x00,/*"I"*/

0x00,0x44,0x44,0x7C,0x44,0x44,0x00,0x00,/*"I"*/

点阵电路原理图

1.程序设计内容8X8点阵LED工作原理说明:8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。

一根横柱:对应的行置0,而列则采用扫描的方法来实现。

2.硬件电路3.汇编源程序ORG 00HSTART: NOPMOV R3,#3LOP2: MOV R4,#8MOV R2,#0LOP1: MOV P1,#0FFH MOV DPTR,#TABA MOV A,R2MOVC A,@A+DPTR MOV P3,AINC R2LCALL DELAY DJNZ R4,LOP1 DJNZ R3,LOP2MOV R3,#3LOP4: MOV R4,#8 MOV R2,#7LOP3: MOV P1,#0FFH MOV DPTR,#TABA MOV A,R2MOVC A,@A+DPTR MOV P3,ADEC R2LCALL DELAY DJNZ R4,LOP3 DJNZ R3,LOP4MOV R3,#3LOP6: MOV R4,#8 MOV R2,#0LOP5: MOV P3,#00H MOV DPTR,#TABB MOV A,R2MOVC A,@A+DPTR MOV P1,AINC R2LCALL DELAY DJNZ R4,LOP5 DJNZ R3,LOP6MOV R3,#3LOP8: MOV R4,#8 MOV R2,#7LOP7: MOV P3,#00H MOV DPTR,#TABB MOV A,R2MOVC A,@A+DPTR MOV P1,ADEC R2LCALL DELAYDJNZ R4,LOP7DJNZ R3,LOP8LJMP STARTDELAY: MOV R5,#10D2: MOV R6,#20D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABA: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH TABB: DB 01H,02H,04H,08H,10H,20H,40H,80HEND4.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();}}}}来源:[]机电之家·机电行业电子商务平台!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档