主页 > 单片机单片机彩灯一个一个亮代码怎么打

单片机彩灯一个一个亮代码怎么打

一、单片机彩灯一个一个亮代码怎么打

void disp1()                        //状态1 LED顺时针转一圈

{

        for(i=0;i<8;i++)

        {

                P2=table1[i];

                delay(100);

        }

        P2=0xff;

        for(i=0;i<8;i++)

        {

                P3=table1[i];

                delay(100);

        }

        P3=0xff;

        for(i=0;i<8;i++)

        {

                P1=table1[i];        

                delay(100);

        }

        P1=0xff;

        for(i=0;i<8;i++)

        {

                P0=table0[i];

                delay(100);

        }

        P0=0xff;

}

望采纳谢谢

二、用单片机原理,编一个跑马灯,要用到定时器,而且是0.5s闪一下,再3s闪一下,依次

定时器设置的延时时间是0.5s,然后用一个循环语句,就能实现3s的延时了。剩下的就简单啦

三、解释一下这个流水灯程序

#include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void) { uint i; uchar temp; while(1) { temp=0x01; //给初值,第一个灯灭 for(i=0;i<8;i++) //8个流水灯逐个闪动 { P1=~temp; //将temp取反再赋值给P1口 delay(100); //调用延时函数 temp<<=1; 流水灯左移 } temp=0x7F; //给初值,第一个灯亮。 for(i=0;i<8;i++) //8个流水灯依次反向全部点亮 { P1=temp; //将temp赋给P1 delay(100); //调用延时函数 temp>>=1; //流水灯右移 } } } void delay(uint t) //定义延时函数 { register uint bt; for(;t;t--) for(bt=0;bt<255;bt++); } temp 是自己定义的。名字可以随便取,没实际意义。是一个中间变量。。。

四、单片机LED闪烁程序的延时Delay()写在main()的后面,该怎么改啊

void delay(unsigned int t);

……main(void)

{

……

}

void delay(unsigned int t)

{

……

}

热门文章