這個里面的補齊和左移一位讓多一個燈點亮是什么原理,求大神講解,謝謝了
- #include<reg52.h> //52單片機頭文件
- #include <intrins.h> //包含有左右循環(huán)移位子函數(shù)的庫
- #define uint unsigned int //宏定義
- #define uchar unsigned char //宏定義
- void delay(uint z) //延時函數(shù),z的取值為這個函數(shù)的延時ms數(shù),如delay(200);大約延時200ms.
- { //delay(500);大約延時500ms.
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main() //主函數(shù)
- {
- uchar a,i,j;
- while(1) //大循環(huán)
- {
- a=0xfe; //賦初值
- for(j=0;j<8;j++)
- {
- for(i=0;i<8-j;i++) //左移
- {
- P1=a; //點亮小燈
- delay(200); //延時200毫秒
- a=_crol_(a,1); //將a變量循環(huán)左移一位
- }
- a=_crol_(a,j); //補齊,方便下面的左移一位
- P1=0xff; //全部關閉
- a=a<<1; //左移一位讓多一個燈點亮
- }
- }
- }
復制代碼
|