求单片机8*8点阵简单图案源代码。

如题所述

在8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左 平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次如此循环下去。
#include<AT89X52.H>

unsignedcharcodetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedcharcodetabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

voiddelay(void)
{
unsignedchari,j;

for(i=10;i>0;i--)
for(j=248;j>0;j--);
}

voiddelay1(void)
{
unsignedchari,j,k;

for(k=10;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);

}
voidmain(void)
{
unsignedchari,j;

while(1)
{
for(j=0;j<3;j++) //fromlefttoright3time
{
for(i=0;i<8;i++)
{
P3=taba[i];
P1=0xff;
delay1();
}
}

for(j=0;j<3;j++) //fromrighttoleft3time
{
for(i=0;i<8;i++)
{
P3=taba[7-i];
P1=0xff;
delay1();
}
}

for(j=0;j<3;j++) //fromtoptobottom3time
{
for(i=0;i<8;i++)
{
P3=0x00;
P1=tabb[7-i];
delay1();
}
}

for(j=0;j<3;j++) //frombottomtotop3time
{
for(i=0;i<8;i++)
{
P3=0x00;
P1=tabb[i];
delay1();
}追问

你的程序是错的,我是新手求帮忙

追答

没有错的,你不能直接用的,因为我不知道你的硬件电路,你需要根据你的硬件电路对程序做适当修改才能用。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-11
#include"reg52.h"

unsigned char code a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code b[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

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++)
{
for(i=0;i<8;i++)
{
P3=a[i];
P1=0xff;
delay1();
}
}

for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
P3=a[7-i];
P1=0xff;
delay1();
}
}

for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
P3=0x00;
P1=b[7-i];

delay1();
}
}

for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
P3=0x00;
P1=b[i];

delay1();
}
}
}
}

求个高手写个单片机控制8*8点阵的代码
P1 = (b[i+1]<<j)|(b[i+1]>>8-j);H=H<<1;} delayms(50);} } }

用51单片机驱动8*8点阵 的代码
{ 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...

我的单片机处理控制8×8LED点阵屏的显示。由于仅采用一个8×8LED点阵...
include <iom16v.h> include <macros.h> define uint unsigned int define uchar unsigned char void time(uint z) \/\/延时函数 { uint x,y;for(x=z;x>0;x--)for(y=10;y>0;y--);} uchar table[]= { \/\/高位到低位 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe };ucha...

51单片机 8*8点阵26个英文字母怎么样显示 ?要从上到下的编码
include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int\/\/---uchar code Table_of_Digits[40][8]={{0x1C,0x22,0x22,0x22,0x22,0x22,0x22,0x1C},\/\/0 {0x08,0x18,0x08,0x08,0x08,0x08,0x08,0x1C},\/\/1 {0x1C,0x22,0x02,0x02,0x...

求一个8*8LED点阵汉字显示C语言程序(C52)
include<reg52.h>\/\/单片机头文件 void delay1ms(unsigned int ms);\/\/延时ms函数声明(可根据实际情况更改)unsigned char code led0[]={};\/\/字码表,你自己把你要显示的字码放进去就可以了 void main(){ unsigned char w,i;while(1){ \/\/显示0 w=0x01; \/\/行变量为第一行 for(i=0;...

单片机什么代码能88点阵动态显示
硬件组成:单片机最小系统+88点阵+按键 图形移动模式 切换 1 跳动 2 上移 3 下移 4 左移 5 右移 显示内容汉字 一 二 三 四。四个字 仿真图:打开APP查看高清大图 程序:打开APP查看高清大图 源代码 include define uchar unsigned char define uint unsigned int \/\/ 左右...

...数字从0到9 的程序 急急急!!! 单片机、、、
何必一定用汇编

用51单片机以及8*8点阵显示英文字母或者数字(最好是全部数字和字母都说...
8*8点阵是动态扫描的 静态显示也是动态扫描的结果。比如说下面这个程序:include <AT89X52.H> include "74HC595.H"unsigned char code a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code b[]={0x00,0x7F,0x40,0x40,0x40,0x00,0x00,0x00};\/*"L",0*\/ void ...

单片机8*8点阵 利用中断控制显示0-3; 但是我只能显示一个“0” 不知道...
void timer0() interrupt 1 { TH0=0x0FC;TL0=0xe8;i++;if(i==8){i=0;} DataPortA=wei[i];sn=1; \/\/使能端 sn=0;DataPortA=0xff;DataPortA=duan0[i+ShowNumber*8];delay(50);} void timer1() interrupt 3 { TH1=(65536-50000)\/256;TL1=(65536-50000)%256;num++;} ...

51单片机 8*8点阵26个英文字母怎么样显示
你真厉害,一位数组显示点阵实验,点阵最好是用二位数组,基本思路也就是单片机两个IO口控制点阵的行和列,定义一个二位数组控制点阵每一行要亮拿几个灯,然后下一行亮那几个灯,以此类推,快速刷出没一个亮的灯就能让人感觉是一个字了,好啦,给你程序你自己看吧 unsigned char code table[]={...

相似回答