C51 COMPILER V8.02 YSF 07/02/2010 14:31:44 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE YSF OBJECT MODULE PLACED IN ysf.OBJ COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE ysf.c BROWSE DEBUG OBJECTEXTEND line level source 1 /**************************************************************************** 2 “天祥电子” 倾情奉献 3 www.txmcu.cn 4 www.txmcu.com 5 ***************************************************************************** 6 程序功能: 比较循环移位与非循环移位。程序中,P1=m<<2;为非循环移位。 7 P1=_crol_(m,2);为循环移位。注意观察P1口相连的各发光led的亮灭变化, 8 进而比较两者间的差异。 9 当按键S2没有被按下时,执行的为循环移位;当按下时,执行非循环移位。 10 ****************************************************************************/ 11 #include 12 #include 13 14 sbit s2=P3^4; 15 16 void main() 17 { 18 1 19 1 unsigned char m=0xf3; 20 1 while(1) 21 1 { 22 2 if(s2==0) 23 2 P1=m<<2;//将左移运算结果送P1口,此运算符为不循环移动,即移出的数据将丢失,而后面的将补零 24 2 else 25 2 P1=_crol_(m,2);//这个为循环移位,即移出的那些位将被送入到低位。 26 2 //但是注意,调用这个_crol_(,)之前,要在头文件中包含intrins.h。 27 2 } 28 1 } 29 /*另外,>>为非循环右移运算符。而_cror_(,)为循环右移函数。 30 其包含于intrins.h头文件中,该文件还包含有其他移位函数, 31 有兴趣的同学可以查阅相关资料。*/ MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 29 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)