点阵led课程设计
❶ 请问8*8点阵字符显示怎么设计,课程设计报告。(高分)
要用单片机如AT89S52单片机,外围再扩展一些电路如8255、74LS164等,然后再连到8*8字符点阵显示。如果纯粹的只是要两个汉字显示,最简单的方法就是多连几快点阵数码管组成一个平面,然后把相应LED灯点亮就可以了,最多加些限流电阻防止点阵数码管烧坏
❷ 大家帮帮忙课程设计急需!编写程序LED8X8点阵,用8255的PA口控制8X8点阵的行;8255的PC口控制列
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define com8255 XBYTE[0xff2b] //根据自己的8255地址修改
#define pa8255 XBYTE[0xff28]
#define pb8255 XBYTE[0xff29]
#define pc8255 XBYTE[0xff2a]
uchar code hang[] = {0xFF,0xDD,0xD5,0xD5,0xD5,0xEB,0xFF,0xFF, //w
0xFF,0xC1,0xDF,0xDF,0xC1,0xDF,0xDF,0xC1, //e
0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0x81,0xFF,}; //所有字母横向取模
uchar code lie[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar i,j=0;
void delay(uint t)
{
uchar x,m;
for(m=0;m<t;m++)
for(x=0;x<=148;x++);
}
void ITT0() interrupt 1
{
TH0=0x00; //初始赋初值
TL0=0x00;
delay(10); //延时随意,自己定
j++;
}
void main()
{
com8255=0x80; //8255初始化
TMOD=0X01;
TH0=0x00;
TL0=0x00;
ET0=1;
EA=1;
TR0=1;
while(1)
{
for(i=0;i<8;i++)
{
pc8255=lie[i]; //根据共阴还是共阳来确定是否要取反
pa8255=hang[i+j];
}
if(j==16) //16这个数根据hang[]中的个数确定
{
j=0;
}
}
}
❸ 电子课程设计—LED点阵驱动电路设计
进我空间有答案,这东西嘛,很义贼。
[email protected]..各位大侠,加油咯!
❹ 数电课程设计,LED点阵驱动电路设计,不用单片机
这个有点麻烦,我以前做过类似的东西,但不是驱动的动态点阵,是静态显示。
27C64存储要显示的数据,做成表格形式。
555振荡的时钟输出,用4040计数,级数不够可以多个串起来。
计数的低3位驱动138做74HC373的锁存,带8片,就可以显示64位静态的LED。
其余的高位做地址访问27C64,27C64的RD信号可以接555的输出,具体的有效电平记不清了。
27C64的8位数据与8片373的输入接到一起,鉴于27系统的扇出能力比较弱,带8路输入有点不保险,可以增加一片244做线驱动。
上面的是静态显示的,我用过,细节记不清了,原理差不多就这样了。
如果用动态的,可以把138的输出驱动列,用一片373驱动行,应该就可以做8乘8的动态显示,不过没试过。
❺ 课程设计:单片机的8乘8LED点阵显示屏的设计
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Table_of_Digits[]=
{
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, //0
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, //1
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, //2
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, //3
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, //4
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, //5
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, //6
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00, //7
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00, //9
0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff
};
uchar code xdat[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar code ydat[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar i=0,j=0,t=0,Num_Index,key,xi,yi;
//主程序
void main()
{
P1=0x80;
Num_Index=0; //从0 开始显示
TMOD=0x01; //T0 方式0
TH0=(65536-2000)/256; //2ms 定时
TL0=(65536-2000)%256;
IE=0x82;
key=0;
xi=0;
yi=0;
EX0=1;
IT0=1;
TR0=1; //启动T0
while(1);
}
//T0 中断函数
void ext_int0() interrupt 0
{
key++;
key&=0x03;
}
void LED_Screen_Display() interrupt 1
{
TH0=(65536-2000)/256; //2ms 定时
TL0=(65536-2000)%256;
switch(key)
{
case 0:
P0=0xff; //输出位码和段码
P0=~Table_of_Digits[Num_Index*8+i];
P1=_crol_(P1,1);
if(++i==8) i=0; //每屏一个数字由8 个字节构成
if(++t==250) //每个数字刷新显示一段时间
{
t=0;
if(++Num_Index==10) Num_Index=0; //显示下一个数字
}
break;
case 1:
P0=~xdat[xi];
P1=0xff;
P1=ydat[yi];
if(++t==250) //每个数字刷新显示一段时间
{
t=0;
yi++;
if(yi>7){yi=0;xi++;}
if(xi>7)xi=0;
}
break;
case 2:
P0=0xff; //输出位码和段码
P0=~Table_of_Digits[80+j];
if(j==0)P1=0x80;
P1=_crol_(P1,1);
if(++j==8) j=0; //每屏一个数字由8 个字节构成
break;
default:
key=0;
i=0;
j=0;
t=0;
xi=0;
yi=0;
Num_Index=0;
P0=0xff;
P1=0x80;
break;
}
}
❻ 电子课程设计:8x8点阵屏显示笑脸,需要哪些元件以及如何操作呢
8*8的话。。。
一片stc15f2k60s2,一片8*8点阵,一个电容用来电源滤波,一些排针接到烧录口就行
虽然我想这么说。。。但你既然问这种问题,那多半是几乎啥都不懂了。。。
想显示笑脸,纯数字器件搭建也不是不行,做个8位计数器跑循环,用来给8块8路三态门提供信号,每次显示一行的图像,8列一个循环扫下来,跑快了就是一个8*8。参考老电视的扫描原理。每个三态门输入接8个拨动开关,对应0或1,这样子会有64个开关,对应点阵的每一个点。非常麻烦的方法。。。
最简单还是乖乖写代码,51一片,138一片,8*8点阵一片,其他小电路找网上最小系统,参考8位数码管的教程,原理上一模一样。
❼ EDA课程设计 16*16点阵 应该怎么做啊会的来 谢谢
利用Proteus仿真一块16×16LED点阵,并在其上循环显示汉字“郑州大学”。
Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本例的显示任务。
首先,从Proteus元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。并注意要将行线和列线引出一定长度的引脚,以便下面我们使用
\
❽ 怎样使16X16LED点阵滚动显示 单片机课程设计
元器件很简单的 16*16点阵,单片机(单片机最小系统),直接I/O口驱动应该可以的,只是亮度比较暗,不行的话再加驱动芯片。程序就和矩阵键盘相似