“_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--);
- }
复制代码 |