⑴ 单片机8×8点阵简单显示程序
这个显示程序其实非常简单,因为这个是点正髓的话,可以用单片机里面去进行测量的。
⑵ 单片机32*64点阵显示两排16*16的汉字的程序……
/*************************************
** Header:
** File Name: 16*16点阵滚动显示汉字
** Author:
** Date:
*************************************/
#include <AT89X52.H>
unsigned char code digittab[]={
0x40,0x04,0x47,0xC2,0x44,0x41,0x44,0x42,0xFE,0x7C,0x40,0x00,0x01,0xF2,0x7D,0x22,
0x49,0x22,0x49,0x22,0x4F,0xFE,0x49,0x22,0x49,0x22,0xFD,0x26,0x41,0xF3,0x00,0x00 /* qiang---竖直向下从左到右 */
};
unsigned char code lie[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
unsigned int timecount;
unsigned char cnta;
unsigned char cntb;
unsigned char k,i=0;
void main(void)
{
TMOD=0x01;
TH0=(65536-3000)/256;
TL0=(65536-3000)%6;
TR0=1;
ET0=1;
EA=1;
k=0;
while(1)
{;
}
}
void t0(void) interrupt 1 using 0
{
P0=0x00;
P2=0x00;
TH0=(65536-3000)/256;
TL0=(65536-3000)%6;
P1=lie[k];
k ;
if(k==16) k=0;
l ;
P0=digittab[i];/*此处和字模有关*/
i ;
P2=digittab[i];
i ;
if(i==32)
i=0 ;
}
⑶ 51单片机控制LED点阵显示汉字程序
小伙而,不是说随便找个HEX文件都能去点亮你连的电阵,这个是肯定的,如果你是毕业设计,主要就是叫你写程序,如果只是你玩的我可以给你仿真文件和HEX文件,你拿去直接点机运行就可以了。
⑷ 单片机1616点阵显示汉字程序
首先要用取模软件,获得要显示的汉字的字模,每行两个字节,共32字节。然后单片机控制每次送一行的数据,并进行显示,轮流16次,再反复即可。
⑸ 单片机8*8点阵程序
avr的静态点阵
#include <iom16v.h>
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 <iom16v.h>
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);
}
}
}
⑹ 单片机 8*8点阵C51程序
一.基于51的点阵屏显示:(1)点亮第一个8*8点阵:
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-RED。
在这里请牢记:红色的为上列选下行选;其它颜色的为上行选下列选!而所有的点阵都是高电平选中列,低电平选中行!也就是说如果某一个点所处的行信号为低,列信号为高,则该点被点亮!此结论是我们编程的基础。
2.在选择完以上三个元件后,我们开始布线,具体如下图:
这里P2是列选,P3连接38译码器后作为行选。
选择38译码器的原因:38译码器每次可输出相应一个I/O口的低电平,正好与点阵屏的低电平选中行相对,并且节省了I/O口,大大方便了我们的编程和以后的扩展。
3.下面让我们把它点亮,先看一个简单的程序:
(将奇数行偶数列的点点亮,效果如下图)
下面是源代码:
/************8*8LED点阵屏显示*****************/
#include<reg51.h>
void
delay(int
z)
//延时函数
{
int
x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void
main()
{
while(1)
{
P3=0;
//行选,选择第一行
P2=0x55;
//列选,即该行显示的数据
delay(5);
//延时
/*****下同*****/
P3=2;
//第三行
P2=0x55;
delay(5);
P3=4;
//第五行
P2=0x55;
delay(5);
P3=6;
//第七行
P2=0x55;
delay(5);
}
}
上面的程序实现了将此8*8点阵的奇数行偶数列的点点亮的功能。重点让我们看while循环内,首先是行选P3=0,此时38译码器的输入端为000,则输出端为01111111,即B0端为低电平,此时选中了点阵屏的第一行,接着列选我们给P2口赋0x55,即01010101,此时又选中了偶数列,紧接着延时。然后分别对第三、五、七行进行相同的列选。这样就点亮了此点阵屏奇数行偶数列交叉的点。
完成这个程序,我们会发现其实点阵屏的原理是如此简单,和数码管的动态显示非常相似,只不过换了一种方式而已。
对不起啦,我传了三次图片都没传上,郁闷哪!希望你能理解哈!
不过我有传一份WORD文档在我的空间里面