51例程---跑马灯

原理分析:什么是跑马灯

(1)跑马灯和流水灯非常像,不同的是:流水灯是8颗LED其中7灭1亮,亮的在移动;跑马灯是8颗LED7亮1灭,灭的在移动。
   01111111 0x7f 10000000
  10111111 0xbf 01000000
  11011111 0xdf 00100000


(2)编程实现跑马灯,必须用到C语言的2种技巧:左移(右移)、按位取反;
          C语言中~这个符号表示对一个数字按位取反,譬如一个数01111111按位取反后变成了10000000。而11011111按位取反后变成了00100000

          相反 01 左移


例程:

#include<reg51.h>




void delay(void)
{
   unsigned char i = 100;
   unsigned char j = 100;
   while(i--)
   {
     while(j--);
}
} //延时函数


void main(void)
{  
     unsigned char i = 0;
unsigned char initial_value = 0x80;
     while(1)
{
  
       for(i = 0; i < 8; i++)
  {
  P0 = ~(initial_value>>i);
  delay();
  }


}


}  

猜你喜欢

转载自blog.csdn.net/qq_35576988/article/details/78358552