4个574是驱动管,因为你的单片机的管教的输出电流只有10到20个毫安,无法驱动16个LED http://wenku.baidu.com/view/2f74a0bc960590c69ec3765f.html 上面的连接是5744的datasheet 把四个都用上吧,你那个138译码器是

首先显示一列(也可以一行,具体你这里是一行还是一列麻烦自己看一下),即这一列是六个点,用到你上面的两个数据,然后给i这一行置位(是高是低看你电路)延时显示一段时间后,关闭显示,消隐掩饰,继续取下两组数据

10 11 将00与01的行控制线一对一连接,10和11的行控制线一对一连接;00与10的列控制线一对一连接,01和11的列控制线一对一连接。最后,00和01的16根列控制线就是16x16的列控制线;00和10的行控制线就是16x16的

那16×16点阵就按16行,16列控制的。即需要两个锁存器,锁存16行数据。再需要两个锁存器,锁存16列的数据。

本点阵屏采用4块8*8点阵组合,形成一个16*16的点阵,以凌阳单片机为核心控制器,锁存器辅助控制。通过软件控制,本屏以动态扫描的显示方式,可显示文字、图形、动画等多种花样。再一特色就是显示文字时,还可同步语音播报。

首先,从Proteus元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面

单片机课设,四块8*8的LED拼成一块16*16的LED.

led电子显示屏工作原理 我们主要从三个方面来分析下 LED电子显示屏的工作原理:(一)LED电子显示屏系统组成 本系统由计算机专用设备、显示屏幕、视频输入端口和系统软件等组成。计算机及专用设备:计算机及专用设备直接决定了系统

led显示屏工作原理—\x0d\x0a(一)系统组成 \x0d\x0a本系统由计算机专用设备、显示屏幕、视频输入端口和系统软件等组成。 \x0d\x0a计算机及专用设备:计算机及专用设备直接决定了系统的功能,可根据用户对系统的

简述led点阵显卡的工作原理及主要途径:它是用动态显示的原理工作的,每个时刻只有一个LED被点亮,因为它的工作频率很高,所以人的眼睛看不出来它是动态的,LED点阵输入端有行和列,在不同的行和列之间接入信号相应的LED就会

LED显示屏的基本工作原理是动态扫描。动态扫描又分为行扫描和列扫描两种方式,常用的方式是行扫描。行扫描方式又分为8行扫描和16行扫描两种。在行扫描工作方式下,每一片LED点阵片都有一组列驱动电路,列驱动电路中一定有一

led点阵屏原理是以简单的8X8点阵为例,它共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮。要将第一个点点亮,则9脚接高电平13脚

LED它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。发光二极管的核心部分是由p型半导体和n型半导体组成的晶片,在p型半导体和n型

LED点阵显示屏是一种由许多单色LED组成的显示屏幕,可以用来显示文本、图形和图像。这些LED组成一个二维矩阵,并且通常都有相同的尺寸和形状。每个LED都能够单独控制,可以让它亮或灭,这样就可以创建出各种不同的图案和动画效

led点阵屏原理是什么

你好:在void set(void)里少了P2的设置.在下面的循环中,n=0和n=7时,显示相同,所以 点阵第一行总是不对,可能同第8行相同.可在n=7后加延时,以错开循环到n=0时,P2,P1的值.for(n = 0; n < 8; n++){ P2=

1. 程序设计内容 8X8点阵LED工作原理说明 :8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,

include include define uchar unsigned char sbit B0=P1^0;sbit B1=P1^1;sbit B2=P1^2;sbit B3=P1^3;uchar table[31]={0,10,20};uchar count;uchar way;uchar T;int tt;uchar flag,fl

移动速度调整y循环的次数。动态扫描一般是用定时中断来做的,你这个程序简单这样凑合着用也行。

下面是8×8的LED点阵程序,参考一下吧 include define uchar unsigned char define uint unsigned int uchar code TAB[]={ 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0x00,0x82,0xFE,0x82,0x80,0x

1.首先在Proteus下选择我们需要的元件,AT89C51、74LS138、MATRIX-8*8-GREEN(在这里使用绿色的点阵)。在Proteus 6.9中8*8的点阵总共有四种颜色,分别为MATRIX-8*8-GREEN,MATRIX-8*8-BLUE,MATRIX-8*8-ORANGE ,MATRIX-

单片机 8*8点阵C51程序

限流电阻肯定要,每段1个就要8个。用一个8位口接8个公共阳极,另一个8位口通过这8个电阻接8个阴极。5V单片机的限流电阻用1k~3k,如果不能点亮或亮度太暗,再加三极管,一般在三极管基极还要加一个1~10k电阻。

两片74HC595确实可以驱动一个8X8的LED点阵。LED的额定电流是10mA,可实际电流并不需要一定要达到额定电流啊,额定不等于实际的。这要看限流电阻是多大。现在LED点阵都高亮度的,电流达到3mA时,就很亮了,所以,不需要真到1

{ 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

我看了你写的,感到秋收的关键问题是不理解8×8点阵LED 驱动电路是如何工作的。这个8×8点阵LED 驱动电路是“行”和“列”的扫描方式工作的,这64个发光管,在每个瞬间只有一个亮。我画了一个简图,图中,红色的仅在1

单片机 8×8点阵LED 驱动电路

图5-5 双六十进制电路6. 利用CD4060、电阻及晶振连接成一个分频--晶振电路,见附图5-6。 图5-6 分频-晶振电路7. 利用74HC51D和74HC00及电阻连接成一个校时电路,见附图5-7。 图5-7 校时电路8. 利用74HC30和蜂鸣器连接成

仿真实例 供参考

1、一片AT89S51单片机2、由4个8*8点阵LED模块组成一个16X16点阵LED3、4个按键开关(功能预留)4、一个REST手动复位按键 注意:本电路板耗电较大,正常工作时LM7805稳压器比较烫手,有条件的客户可以加装散热器或者直接用5V/1A开关电源供电

上面的连接是5744的datasheet 把四个都用上吧,你那个138译码器是用来选择那个574工作的 你需要做的就是用单片机控制四个574管子工作输出,就那么简单 输出-锁存-输出-锁存不断的刷新,一个汉字就出来了 如果你想确保

这是1602电路,和时钟电路。元件基本差不多。电路如图 include define uchar unsigned char define uint unsigned int sbit ds1302_RST =P2^0;sbit ds1302_IO =P2^1;sbit ds1302_SCLK=P2^2;sbit ACC0

如果只有8*8的话只需要一个单片机,单片机复位基本电路,晶振基本电路,供电电源,一个点阵屏 原理图大概就是那样,画的不好,时间仓促,单片机和点阵加个座,用完可以回收。如果用其他芯片驱动的话,可以用595和138,这样

1、编写程序,用8255的PA口控制8X8点阵的行;8255的PC口控制8X8点阵的列;显示字符。2、按图连接线路;运行程序,观察实验结果,学会控制LED点阵显示字符。四、实验原理图 五、实验步骤 1、主机连线说明:B4区:CS(8255)

急需:求单片机80S51实训(带汇编程序) 题目要求:8乘8点阵显示 需原理图和器材清单

从图看出第三行是0010 0100,所以应该是24H,你说的3E应该是第三列数据:0011 1110,所以是3EH

当p1 = 0xff; p2 = 0xfe的时候,就是P2.0那个小灯点亮,其他7个灭,p2 = 0xfe的这个F就是8+4+2+1 =15,对应16进制里的f, 同理E=8+4+2+0 =14,对应16进制里的e。闪烁的话需要用到定时器,时间到了

ff转换成二进制是11111111,而1111转换成10进制为15,15是第16个数,就代表16进制里面的f,如果要让一盏灯亮其他都暗(高电平亮),0x80,也就是二进制的1000 0000,要把二进制快速转换成16进制的话 分为4个二进制分别

十六进制0xfe,对应二进制 1111_1110 这个二进制,对应引脚为 p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.1 p1.0 p1 = 0xfe,则对应p1.0为0,其他引脚输出1.你的led,必然是共阳极。所以p1.0对应的灯亮。

用单片机控制8×8点阵的每个LED的亮灭,要采用扫描方式实现。如下图的8×8点阵,用8系列线和8线条行线控制。在8条列线加高电平,逐条行线加低电平,就会逐行点亮。

怎么控制单片机8*8点阵每个点亮或不亮,每个点对应的十六进制是多少?

avr的静态点阵 #include unsigned char a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //控制低电平 unsigned char b[]={0xff,0x18,0x18,0xff,0x18,0x18,0x18,0xff}; //控制高电平 void delay(unsigned int cnt) { while(--cnt); } void main(void) { int i=0,n=0; DDRA=0xFF; DDRB=0xFF; while(1) { for (i=0;i<8;i++) { PORTA=a[i]; PORTB=b[i]; delay(300); } } } AVR的动态点阵 #include unsigned char a[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //列高电平控制端 unsigned char b[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //行低电平控制端 0x7e,0x76,0x76,0x00,0x00,0x76,0x76,0x7e, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; void delay(unsigned int cnt) { while(--cnt); } void main(void) { int i=0,n=0,k=0; DDRA=0xFF; DDRB=0xFF; while(1) { for(k=0;k<16;k++) { for(n=0;n<50;n++) { for (i=0;i<8;i++) //i循环8次进去下个语句 { PORTA=a[i]; PORTB=b[i+k]; delay(50); } } }
#include #define uint unsigned int #define uchar unsigned char uint i,j,num,aa; uchar code table12[]={ 0x04,0x82,0xff,0x80, 0xe2,0x91,0x89,0xc6}; uchar code table13[]={ 0x18,0x3c,0x7c,0xf8, 0x7c,0x3c,0x18,0x00}; void delay(uint); void main() { while(1) {for(aa=100;aa>0;aa--) {for(num=0;num<8;num++) { P2=num; P0=table12[num]; delay(2); } //delay(300); }; for(aa=100;aa>0;aa--) {for(num=0;num<8;num++) { P2=num; P0=table13[num]; delay(2); } //delay(300); } } } void delay(uint z) { for(i=z;i>0;i--) for(j=110;j>0;j--); }
见下图
这个问题不是很难! 我的理解是楼主可能只用单片机和点阵模块来实现,这需要单片现来做动态扫描。 首先需要你把点阵上要显示图形的代码写出来,即每种图形每行显示的数据,每个图形有8行数据,即占8个字节的空间! 如果楼主用51单片机来实现的话,可以使用P0口输出行数据,P1口作为点阵的行扫描控制。 其次要用按键控制,只需你把每种图形以不同的表存起来,再做一个按键扫描程序,当检测到有键按下时,把动态扫描的表头地址更换即可!
你好!这里有一个不是显示数字的,修改字模就能完成显示
我这有以前做来玩的 8x8 74164的 汇编 行么?
avr的静态点阵 #include unsigned char a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //控制低电平 unsigned char b[]={0xff,0x18,0x18,0xff,0x18,0x18,0x18,0xff}; //控制高电平 void delay(unsigned int cnt) { while(--cnt); } void main(void) { int i=0,n=0; DDRA=0xFF; DDRB=0xFF; while(1) { for (i=0;i<8;i++) { PORTA=a[i]; PORTB=b[i]; delay(300); } } } AVR的动态点阵 #include unsigned char a[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //列高电平控制端 unsigned char b[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //行低电平控制端 0x7e,0x76,0x76,0x00,0x00,0x76,0x76,0x7e, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; void delay(unsigned int cnt) { while(--cnt); } void main(void) { int i=0,n=0,k=0; DDRA=0xFF; DDRB=0xFF; while(1) { for(k=0;k<16;k++) { for(n=0;n<50;n++) { for (i=0;i<8;i++) //i循环8次进去下个语句 { PORTA=a[i]; PORTB=b[i+k]; delay(50); } } }
8X8点阵LED工作原理说明 :8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。 不知道你要实现什么样的显示,不过基本方法是一样的。我这有一个现成的8*8的程序,你可以根据这个去修改: 在8X8点阵LED上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。(要实现一根柱形的亮法:一根竖柱,对应的列置1,而行则采用扫描的方法来实现。 一根横柱,对应的行置0,而列则采用扫描的方法来实现。) 汇编源程序: 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,AINC 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 C51语言源程序 #include 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();}} } }
我靠,又一个大爷样的大神。 拍拍屁股留个邮箱走人。 我只能望其项背膜拜之。
Led显示屏程序设计 Led显示屏的程序本来是打算用VHDL语言写的,实际中将它要下载的FPGA芯片中,由于此处只是说明一下显示屏工作算法,故使用便于理解和描述的C语言写出,此以8×8为例。 ①水平左移 for(j=0;j<8;j++) //8组数据 { scan=0x80; //初始扫描信号 for(i=0;i<8;i++) //扫描周期 { if(i<j)P2=d[j-i+1]; //数组d里有要显示的内容 else P2=d[7+(j-i)]; P1=~scan; //输出扫描信号 selay1ms(2); //延迟2ms scan>>=1; //下一个扫描信号 } } 如果字开型跑得快,弄得看不清楚,可以多加一个k循环,如下: for(j=0;j<8;j++) //8组数据 for(k=0;k<10;k++) //扫描10周 { scan=0x80; //初始扫描信号 for(i=0;i<8;i++) //扫描周期 { if(i<j)P2=d[j-i+1]; //数组d里有要显示的内容 else P2=d[7+(j-i)]; P1=~scan; //输出扫描信号 selay1ms(2); //延迟2ms scan>>=1; //下一个扫描信号 } //结束1个扫描周期 } //结束10个扫描周期 ②水平右移 for(j=7;j>0;j--) //8组数据 for(k=0;k<10;k++) //扫描10周 { scan=0x01; //初始扫描信号 for(i=7;i>0;i--) //扫描周期 { if(i>j)P2=d[8+(j-i)]; //数组d里有要显示的内容 else P2=d[j-i]; P1=~scan; //输出扫描信号 selay1ms(2); //延迟2ms scan>>=1; //下一个扫描信号 } //结束1个扫描周期 } //结束10个扫描周期 ③上卷移动 由于此处要求更改数组d,因此声明一个disp[8],在开始显示之前,将数组d复制到disp中。即: For(i=0;i<8;i++) Disp[i]=d[i]; 在输出之前,对disp数组进行处理。 for(i=0;i<8;i++) If(disp[i]%2==1) //最右边位为1 {disp[i]>>=1; // 右移1位 Disp+=0x80;} // 加上0x80 Esle disp[i]>>=1; //最右边1位为0,直接右移一位 数据处理完成之后,就可以输出了。 For(k=0;k<10;k++) For(i=0;i<8;++) { P2=disp[i]; P1=scan; Delay1ms(2); Scan<<=1; } ④下卷移动,与上卷类似,只是数据处理时略有不同。 for(i=0;i<8;i++) If(disp[i]>=0x80) //最左边位为1 {disp[i]>>=1; // 左移1位 Disp+=0x01;} // 加上0x01 Esle disp[i]<<=1; //最右边1位为0,直接右移一位 杨代勇 201