“_crol_” 與“_cror_”其實就是左右循環代碼,其具有程序代碼簡單執行效率高的優點!
現實中的應用很多,例如我們經常見到的流水燈,廣告牌,馬路上的紅綠燈 等。。。
下面是最基本的流水燈代碼,流水燈移動的快慢可以改變“void delay()”子程序進行修改,例如:你選用的是20M的精震,你要改成一秒移動一格,那么你就將“for(x=50;x>0;x--)”和“for(y=100;y>0;y--)”的X值和Y值改成500! 改變方向更加簡單,只需將“_crol_” 與“_cror_”的代碼互換就可以了!
下面是程序代碼“
- #include<reg52.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar temp;
- uint temp1;
- uchar i;
- void delay();
- void main()
- {
- temp=0xfe;
- temp1=0x7f;
- while(1)
- {
- for(i=0;i<8;i++)
- {
- P2=temp;
- temp=_crol_(temp,1);
- delay();
- }
- for(i=0;i<8;i++)
- {
- P2=temp1;
- temp1=_cror_(temp1,1);
- delay();
- P2=temp;
- }
- }
- }
- void delay()
- {
- uint x,y;
- for(x=50;x>0;x--)
- for(y=100;y>0;y--);
- }
復制代碼 |