焊接资讯

您现在的位置是:首页 > led灯 > 正文

led灯

51单片机点亮8个led灯(用51单片机点亮led灯)

工品易达2022-10-20led灯15

51单片机的八个LED循环点亮,如何写代码?

// 51单片机控制八个发光二极管 左右循环。

#includereg52.h

#define uchar unsigned char

#define uint unsigned int

unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; // 改变这里 LED 各种花样

uchar t,i;

void main()

{

TMOD=0x10;

TH1=(65535-50000)/256;  // 50ms一次

TL1=(65535-50000)%256;

EA=1;

ET1=1;//开定时器1中断

TR1=1;//启动定时器1

t=0;

i=0;

while(1)

{

}

}

void timer1() interrupt 3

{

TH1=(65535-50000)/256;  // 50ms一次

TL1=(65535-50000)%256;

t++;

if(t==20)

{

t=0;

P2=TAB[i];

i++;

if(i==18) { i=0;}

}

}

51单片机如何控制8个led程序

#includereg51.h 包含单片机专用头文件

#includeintrins.h 这个是什么俺也不知道,但这个程序不需要这个头文件

void Delay10ms(unsigned int c); 自定义的延时函数声明

main() 主函数

{

unsigned int LED; 建立一个数值型变量,变量名 LED

LED=0xfe; 给这个变量赋值,0xfe 换成二进制数为 1111 1110

while(1) 主循环

{

P2=LED; 点亮发光管,即先点亮右边的第一个

Delay10ms(50); 延时一段时间

LED=LED1; 点亮的发光管,向左移动一位

if (P2==0x00) 判断是否8个全部点亮了

{

LED=0xff; 如果全部点亮,则将全部发光管熄灭

}

}

}

void Delay10ms(unsigned int c)延时函数主程序

{

unsigned char a, b;建立两个变量 a b

for(;c0;c--)循环语句,不断改变变量数值,已达到延时目的

{

for(b=38;b0;b--)

{

for(a=130;a0;a--);

}

}

}

给你翻译了,希望能帮到你

用51单片机控制八个发光二极管

// 51单片机控制八个发光二极管 左右循环。

#includereg52.h

#define uchar unsigned char

#define uint unsigned int

unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; // 改变这里 LED 各种花样

uchar t,i;

void main()

{

TMOD=0x10;

TH1=(65535-50000)/256;  // 50ms一次

TL1=(65535-50000)%256;

EA=1;

ET1=1;//开定时器1中断

TR1=1;//启动定时器1

t=0;

i=0;

while(1)

{

}

}

void timer1() interrupt 3

{

TH1=(65535-50000)/256;  // 50ms一次

TL1=(65535-50000)%256;

t++;

if(t==20)

{

t=0;

P2=TAB[i];

i++;

if(i==18) { i=0;}

}

}

51单片机8个led向左循环依次点亮,按一下开关后往右循环一次后继续向左循环

#includereg51.h

#includeintrins.h

#define uchar unsigned char

uchar time=0,num,led=0xfe;

bit flag=0;

sbit key=P2^0;

void t0isr() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

time++;

if(time=10)

    {

    time=0;

    if(flag==0)

        {

        P0=led;

        led=_crol_(led,1);

        }

    else

        {

        P0=led;

        led=_cror_(led,1);

        num++;

        if(num8)flag=0;

        }

    }

}

main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;

while(1)

    {

    if(key==0)

        {

        while(key==0);

        flag=1;

        num=0;

        }

    }

}

51单片机点亮8个led灯的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用51单片机点亮led灯、51单片机点亮8个led灯的信息别忘了在本站进行查找喔。微信号:ymsc_2016

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~