关于_cror_();

[复制链接]
4124|3
 楼主| k412178 发表于 2011-5-23 11:27 | 显示全部楼层 |阅读模式
/*******************************************************
  KEY_1.c
  作者:liang
  日期:2011.5.22
*********************************************************/

#include<regx51.h>
#include<intrins.h>
#define uint8 unsigned char
#define uint16 unsigned int

sbit key_1=P0^0;
sbit key_2=P0^1;

/************************************************
  延时子程序
*****************************************************/
void delay(uint8 t)
{
  uint8 i;
  for(;t>0;t--)
   for(i=0;i<120;i++);
}

/**************************************************************  主程序
**************************************************************/
void main()
{
     uint8 da=0xfe;
while(1)
  {

   _cror_(da,1);
   P2=da;
   delay(100);
  }
}

我想用这个程序去循环点亮一排8个LED灯(共阳),可是一真高的只有第一个,根本不动,我DEBUG时发现程序会直接跳过 _cror_(da,1);去执行下一句。
是我 _cror_(da,1);用错了,还是什么别的原因呢?
xwj 发表于 2011-5-23 12:29 | 显示全部楼层
汗~

不要把汇编的习惯带进C里,先去熟读C语言的教材吧。
 楼主| k412178 发表于 2011-5-23 12:37 | 显示全部楼层
呵呵。。明白啦。。谢谢!
liang7143 发表于 2011-5-23 12:39 | 显示全部楼层
da =  _cror_(da,1);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:淡定。。。。

0

主题

34

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部