求单片机C程序

2019-07-15 23:21发布

本帖最后由 dongyumin 于 2013-8-2 07:44 编辑

要求:1、按下按钮K后,5个LED灯由D1、D2、D3、D4、D5依次点亮,间隔1秒,最后全亮;
2、再次按下按钮K后,5个LED灯由D5、D4D、D3、D2、D1依次熄灭,间隔1秒,最后全灭;



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
DAOMIN
2019-07-16 06:04
本帖最后由 DAOMIN 于 2013-8-2 07:30 编辑

#include<reg52.h>
#define uchar unsigned char
#define  uint unsigned int

sbit k1=P2^0;

uint num;
uchar cishu;
uchar 0xfe,0xfd,0xfb,0xf7,0xef,0x00;

void main()
{
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    ET0=1;
    EA=1;
    TR0=1;
    num=0;
    while(1)
    {
        if(k1==0)
       {
            while(k1==0);
            cishu++;

         if(cishu==1)
         {

               if(num==0)
               {
                    P1=0xfe;
               }
               if(num==20)
               {
                    P1=0xfc;
               }

               if(num==40)
               {
                    P1=0xf8;
               }

               if(num==60)
               {
                    P1=0xf0;
               }

               if(num==80)
               {
                    P1=0xe0;
               }

               if(num==100)
               {
                    P1=0x00;
                  
               }

       if(cishu==2)
       {

               if(num==120)
               {
                    P1=0xf0
               }
               if(num==140)
               {
                    P1=0xf8;
               }

               if(num==160)
               {
                    P1=0xfc;
               }

               if(num==180)
               {
                    P1=0xfe;
               }

               if(num==200)
               {
                    P1=0xff;                       num=0;
               }
            }
             if(cishu==3)
            {
                cishu=0;
            }
        }
    }
}

void t0() interrupt 1
{
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;

    TR0=1;
    num++;
}




一周热门 更多>