标题: 怎么在这单片机程序的基础上 ,让led灯依次闪烁三下再灭掉 再到下一个 现在是依次灭... [打印本页]

作者: 蒋蒋丫丫    时间: 2022-6-13 12:59
标题: 怎么在这单片机程序的基础上 ,让led灯依次闪烁三下再灭掉 再到下一个 现在是依次灭...
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b;
void time0()interrupt 1
{
    a++;b++;TL0=0XFF;TH0=0X4B;
}
void main()
{   uchar temp;
    P1=0xfe;                //1111 1110
    TMOD=0X01;
    TL0=0XFF;         //定时器赋初值50ms
    TH0=0X4B;
    ET0=1;         //开中断
    EA=1;
    TR0=1;        //开定时器
    while(1)
    {
        if(b<420)
        {
            if(a==20) //设定1s
            {
                temp=P1;
                temp=_crol_(temp,1);  //左移动一位
                P1=temp;
                a=0;
            }
            if(b==160)
            {P1=0x00;  } //全亮

            if(b==200)                   //以下依次灭
            {P1=0x01;}

            if(b==220)
            {P1=0x03;}

            if(b==240)
            {  P1=0x07;}

            if(b==260)
            {P1=0x0f; }

            if(b==280)
            { P1=0x1f;}

            if(b==300)
            { P1=0x3f;}

            if(b==320)
            {  P1=0x7f; }

            if(b>340)                  //3闪
  {
                P1=0xff;
                if(b==344)
                {
                    a=0;
                    P1=~P1;
                    while(a!=18);
                    P1=~P1;
                    while(a!=18);
          }
                if(b==364)
                        {
                    a=0;
                    P1=~P1;
                    while(a!=18);
                    P1=~P1;
                    while(a!=18);
                }
                if(b==384)
                {
                    a=0;
                    P1=~P1;
                    while(a!=18);
                    P1=~P1;
                    while(a!=18);
          }
                                P1=0xff;
   }

            if(b>360)                //全灭
            {  P1=0xff;}

        }
        else
        { b=0; break;}
    }
}


作者: buyuziyu    时间: 2022-6-15 14:49
以后直接把工程发出来吧
作者: lkc8210    时间: 2022-6-15 15:38
如此类推
  1.                         if(b==200)                   //以下依次灭
  2.                         {
  3.                                 P1=0x01;
  4.                                 if(++flash3<3)
  5.                                 {
  6.                                         b=160;
  7.                                 }else{
  8.                                         flash3 = 0;
  9.                                 }
  10.                         }
  11.                         if(b==220)
  12.                         {
  13.                                 P1=0x03;
  14.                                 if(++flash3<3)
  15.                                 {
  16.                                         b=200;
  17.                                 }else{
  18.                                         flash3 = 0;
  19.                                 }
  20.                         }
复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1