标题: 按键小灯左右移的单片机程序 [打印本页]

作者: BME王    时间: 2018-10-15 23:31
标题: 按键小灯左右移的单片机程序
#include<reg52.h>
#define uchar unsigned char
sbit key1=P3^5;
sbit key2=P3^4;
void delay(uchar k)
{
     uchar i,j;
     for(i=k;i>0;i--)
         for(j=110;j>0;j--);
}
void moveleft()
{
    if(P1 == 0x7f)    //0111 1111
         P1 = 0xfe;    //1111 1110
    else
         P1 = (P1 << 1) + 1 ; // 1111 1100 ->  1111 1101
}
void moveright()
{
    if(P1 == 0xfe)
         P1 = 0x7f;
    else
         P1 = (P1 >> 1) + (1 << 7);
}
void main()
{
    P1 = 0xfe;    //1111 1110
    P3 = 0xff;    //1111 1111
    while(1)
    {
          if(key1 == 0)
          {
                delay(20);
                if(key1 == 0)  
                {
                      while(!key1); //等待按键抬起
                      moveleft();
                 }
           }
  
           if(key2 == 0)
           {
                delay(20);
                if(key2 == 0)
                {
                     while(!key2);
                     moveright();
                }
           }
     }
}






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