如何用C语言编写一个LED灯渐变的程序

如何用C语言编写一个LED灯渐变的程序,第1张

#include<reg51.h>

//设CPU是时钟12MHz的8051系列

data unsigned char ms

sbit K1=P0^0

void SetupTimer0()

{

    TMOD &= 0XF0 //仅保留T1信息

    TMOD |= 0X02 //设置T0: 定时功能,方式2,自动重载8位定时器/计数器

    TH0 = 256-250//定时每0.25ms中断一次

    TL0 = 256-250

    TR0 = 1      //开启定时器

    ET0 = 1      //定时器0中断打开

}

void Timer0_ISR() interrupt 1 //中断服务程序

{

    static data unsigned char us250

    if (++us250>=4) {++ms us250=0}

}

void main()

{

    data unsigned char p1,p2

    ms=0

    SetupTimer0()

    EA = 1               //全局中断打开

    K1 = 1

    while(1)

    {

        if (K1) {P1=p1=0XFF P2=p2=0x00 ms=0 continue}

        if (ms<150) continue

        ms=0

        p1<<=1        P1=p1

        p2<<=1 p2|=1 P2=p2

    }

}

//P1外接8

LED

低电平发光.

//

列程序

PROTEUS

仿真

#include<reg52.h>

//-----------------------------

void

delay_ms(unsigned

int

s)

{

unsigned

int

x

for(s

s

>

0

s--)

{

x

=

98

while(x--)

}

}

//-----------------------------

void

main()

{

char

i,

j

while(1)

{

for(j

=

0

j

<

8

j++)

{

P1

=

255

//全灭,

P1外接LED,

低电平发光.

delay_ms(500)

//稍等片刻.

for(i

=

0

i

<

8

i++)

{

P1

<<=

1

delay_ms(900

-

100

*

j)

//延

渐短

}

}

}

}

//-----------------------------

#include <iom16.h>

#include <avr_macros.h>

void Init_IO(void)

 {

   DDRA = 0xFF

   PORTA = 0x00

 }

 /*以上代码51忽略*/

void LED1 (unsigned char x,unsigned char LEDx)

{

  unsigned char Count = 0

  Count = LEDx * 36    //最小0,最大 7 * 36 = 252,char型最大不能超过255;

  Count = Count + 1    // 加1的目的是针对LED0不亮

   if(x <= Count)  // <= 是针对LED0不亮

     PORTA |= (1 << LEDx)  //51怎么改?。 P0 |= (1 << LEDx) PWM正占空

    else

     if(x > Count)

       PORTA &= ~(1 << LEDx) //51怎么改?。 P0 &= ~(1 << LEDx) PWM负占空 

}

void main( void )

{

  unsigned char delay = 0

  unsigned char LEDx = 0

  Init_IO()

  while (1)

   {

      delay ++

      if(delay == 250)

       {

         delay = 0

         LEDx ++

         if(LEDx > 7)

           LEDx = 0

       }

      LED1(delay,LEDx)

   }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8135025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存