标题:
哪位大神能给我改一下下面的程序,我是个小白,请大家帮帮忙,谢谢了!
[打印本页]
作者:
十一十七
时间:
2017-2-9 21:52
标题:
哪位大神能给我改一下下面的程序,我是个小白,请大家帮帮忙,谢谢了!
#include <reg52.h>
#define ON=0;
#define OFF=1;
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
sbit LED0=P0^0;
sbit LED1=P0^1;
sbit LED2=P0^2;
sbit LED3=P0^3;
sbit LED4=P0^4;
sbit LED5=P0^5;
sbit LED6=P0^6;
sbit LED7=P0^7;
sbit LED8=P1^0;
sbit LED9=P1^1;
unsigned char x,y;
unsigned int tt=70;
void delay (unsigned int xms)
{
unsigned int i,j;
for(i=xms,i>0,i--)
for(j=112,j>0,J--);
}
void main()
{
void disp0() //状态1 ,300ms间隔2次。
{
for(x=0;x<3;x++)
{
P0=0X00; P1^0=0; P1^1=0;
delay(300);
P0=0Xff; P1^0=1; P1^1=1;
delay(300);
}
}
void disp1() //状态2,左
{
for(x=0;x<1;x++)
{
P0^0=0; P0^1=0;
delay(100);
P0^0=1; P0^1=1;
delay(100);
}
}
void disp2() //状态3,右
{
for(x=0;x<1;x++)
{
P0^2=0; P0^3=0;
delay(100);
P0^2=1; P0^3=1;
delay(100);
}
}
void disp3() //状态4;嘴巴。
{
for(x=0;x<1;x++)
{
P0^4=0;P0^5=0;P0^6=0;P0^7=0;
delay(100)
P0^4=1;P0^5=1;P0^6=1;P0^7=1;
delay(100)
}
}
void disp4() //状态5,顺时针一圈
{
for(i=0;i<8;i++)
{
P0=table1[i];
delay(100);
}
P0=0X00;
delay(1000);;
for(i=0;i<8;i++)
{
P1=table1[i];
delay(100);
}
P1^0=0;
P1^1=0;
delay(1000);
}
void disp5() //状态6,逆时针一圈
{
for(i=0;i<8;i++)
{
P0=table0[i];
delay(100);
}
P0=0X00;
delay(1000);
for(i=0;i<8;i++)
{
P1=table0[i];
delay(100);
}
P1^0=0;
P1^1=0;
delay(1000);
}
void disp6() //自下而上灯亮。
{
while(1)
{
LED5=ON;
LED6=ON;
delay(300);
LED4=ON;
LED7=ON;
delay(300);
LED1=ON;
LED3=ON;
delay(300);
LED0=ON;
LED2=ON;
delay(300);
LED8=ON;
LED9=ON;
delay(300);
}
}
void disp7() //状态8,灯常亮。
{
for(x=0;x<1;x++)
{
P0=0X00; P1^0=0; P1^1=0;
}
}
}
作者:
yzwzfyz
时间:
2017-2-12 08:08
删除你的程序也是一种改动,那是你需要的吗?连需要改成什么样都不说,真是糊涂。
作者:
utzuzu
时间:
2017-2-14 16:45
呵呵..呵呵..
作者:
天涯咫尺
时间:
2018-4-1 22:15
这个是心形灯?电路图有没有?改成什么样子?
作者:
angmall
时间:
2018-4-1 23:35
#include <reg52.h>
#define uchar unsigned char
#define ON 0
#define OFF 1
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
sbit LED0=P0^0;
sbit LED1=P0^1;
sbit LED2=P0^2;
sbit LED3=P0^3;
sbit LED4=P0^4;
sbit LED5=P0^5;
sbit LED6=P0^6;
sbit LED7=P0^7;
sbit LED8=P1^0;
sbit LED9=P1^1;
unsigned char x,y;
unsigned int tt=70;
void delay (unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void disp0() //状态1 ,300ms间隔2次。
{
unsigned int x;
for(x=0;x<3;x++)
{
P0=0X00; LED8=0; LED9=0;
delay(300);
P0=0Xff; LED8=1; LED9=1;
delay(300);
}
}
void disp1() //状态2,左
{
unsigned int x;
for(x=0;x<1;x++)
{
LED0=0; LED1=0;
delay(100);
LED0=1; LED1=1;
delay(100);
}
}
void disp2() //状态3,右
{
unsigned int x;
for(x=0;x<1;x++)
{
LED2=0; LED3=0;
delay(100);
LED2=1; LED3=1;
delay(100);
}
}
void disp3() //状态4;嘴巴。
{
unsigned int x;
for(x=0;x<1;x++)
{
LED4=0;LED5=0;LED6=0;LED7=0;
delay(100);
LED4=1;LED5=1;LED6=1;LED7=1;
delay(100);
}
}
void disp4() //状态5,顺时针一圈
{
unsigned int i;
for(i=0;i<8;i++)
{
P0=table1[i];
delay(100);
}
P0=0X00;
delay(1000);
for(i=0;i<8;i++)
{
P1=table1[i];
delay(100);
}
LED8=0;
LED9=0;
delay(1000);
}
void disp5() //状态6,逆时针一圈
{
unsigned int i;
for(i=0;i<8;i++)
{
P0=table0[i];
delay(100);
}
P0=0X00;
delay(1000);
for(i=0;i<8;i++)
{
P1=table0[i];
delay(100);
}
LED8=0;
LED9=0;
delay(1000);
}
void disp6() //自下而上灯亮。
{
unsigned int i;
// while(1)
for(i=0;i<8;i++)
{
LED5=ON;
LED6=ON;
delay(300);
LED4=ON;
LED7=ON;
delay(300);
LED1=ON;
LED3=ON;
delay(300);
LED0=ON;
LED2=ON;
delay(300);
LED8=ON;
LED9=ON;
delay(300);
}
}
void disp7() //状态8,灯常亮。
{
unsigned int x;
for(x=0;x<1;x++)
{
P0=0X00; LED8=0; LED9=0;
}
}
void main()
{
disp0();
disp1();
disp2();
disp3();
disp4();
disp5();
disp6();
disp7();
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1