请教如何用C51实现2位循环
2010年02月02日 10:44 发布者:ydz0515
意思是这样,我想得到一个两bit循环:01,10,01.....。请教各位老师入户用c51实现: 网友评论
忘情天书 2010年02月03日
用if-else就可以了。switch都可以。不知道你要干什么?
用if-else就可以了。switch都可以。不知道你要干什么?
f.luo 2010年02月03日
if(P0=0)
P0=0x01;
else
P0=0;
lz,这样可否?
if(P0=0)
P0=0x01;
else
P0=0;
lz,这样可否?
terrysun 2010年02月03日
什么用途介绍一下,是用来产生方波?
什么用途介绍一下,是用来产生方波?
McuPlayer 2010年02月03日
a = 1;
while(1)
{
a ^= 0x03;
}
a = 1;
while(1)
{
a ^= 0x03;
}
kbgyzp 2010年02月04日
ls的方法很简练,建议采用
ls的方法很简练,建议采用
kbgyzp 2010年02月04日
ls的方法很简练,建议采用
ls的方法很简练,建议采用
忘情天书 2010年02月04日
呵呵,毛片果然是软件老鸟,思路独特。
呵呵,毛片果然是软件老鸟,思路独特。
Netjob 2010年02月04日
假如 要移位的 8位宽的 TEMP ;
char A,B;
TEMP=0x55; // 0x01010101
while(1)
{
A=TEMP; // A=0x55
B=TEMP; // B=0x55;
A>>=6; // 高2位 循环到低2位 0x000000[ 01 ] A=0x01
B<<=2; // 左移 两位 0x010101 B=0x54
B|=A; // 整合起来; 0x010101 B=B|A 0x54|0x01 =0x55;
TEMP=B; // 回写 TEMP=0x55;
}
假如 要移位的 8位宽的 TEMP ;
char A,B;
TEMP=0x55; // 0x01010101
while(1)
{
A=TEMP; // A=0x55
B=TEMP; // B=0x55;
A>>=6; // 高2位 循环到低2位 0x000000[ 01 ] A=0x01
B<<=2; // 左移 两位 0x010101 B=0x54
B|=A; // 整合起来; 0x010101 B=B|A 0x54|0x01 =0x55;
TEMP=B; // 回写 TEMP=0x55;
}
宇宙飞船 2010年02月04日
对于取反,‘毛片’写的已是最简的了。
俺咋一看标题,还以为楼主想做胃反转。
对于取反,‘毛片’写的已是最简的了。
俺咋一看标题,还以为楼主想做胃反转。
ydz0515 2010年02月05日
6楼 McuPlayer 高明,已经采纳到程序中。感谢。
例如系统有2个状态A、B:A状态01转换到B状态10或反之,像一个钟摆:那么用McuPlayer的方法就是:
switch(current_state^3); // 很巧妙。正规。
3状态转换我还是想不出来:001,010,100,001,010,100,001......
或者01,10,11,01,10,11,01,........
4、5、6、状态?
6楼 McuPlayer 高明,已经采纳到程序中。感谢。
例如系统有2个状态A、B:A状态01转换到B状态10或反之,像一个钟摆:那么用McuPlayer的方法就是:
switch(current_state^3); // 很巧妙。正规。
3状态转换我还是想不出来:001,010,100,001,010,100,001......
或者01,10,11,01,10,11,01,........
4、5、6、状态?
Netjob 2010年02月23日
#define WIDTH 8
#define BITSIZE 3
char B;
TEMP=0x55;
while(1)
{
B=TEMP;
TEMP= (B<>(WIDTH -BITSIZE ))
}
#define WIDTH 8
#define BITSIZE 3
char B;
TEMP=0x55;
while(1)
{
B=TEMP;
TEMP= (B<
}
alpha321 2010年06月28日
O,原来简单问题可以得到这么多大师的指点.
O,原来简单问题可以得到这么多大师的指点.
孤独小行星 2011年03月26日
高手啊!
高手啊!
怎么没人解答?太简单了还是太难了?