打印

菜鸟求助:请教关于c51 的位操作问题

[复制链接]
1655|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
epdcty|  楼主 | 2008-5-29 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟初学单片机,想做个程序,以计数器的形式(0-15)体现在p1口上,在proteus中用数码管显示,但是按照自己写的代码在keilc中观察p1都不对,更别说显示了.
麻烦高人指点一下.还有就是位访问,不知道我这样写对不对?
#include <AT89X51.h> 
void main(void) 
{ unsigned int a;
  int pp=0;

do
 { for(a=0; a<50000; a++);  //一次循环
     P1_0=pp^0;
     P1_1=pp^1;
     P1_2=pp^2;
     P1_3=pp^3; 
 }while(pp++<16);
 }

相关帖子

沙发
soso| | 2008-5-29 21:37 | 只看该作者

这是想干啥?

pp^0 可并不是取 pp 的第零位,而是 pp 和 0 做异或

pp^1, pp^2, pp^3 也都是如此

main 中应该有个无限 loop

使用特权

评论回复
板凳
epdcty|  楼主 | 2008-5-29 21:43 | 只看该作者

那请问怎么访问pp的第0

使用特权

评论回复
地板
computer00| | 2008-5-29 21:56 | 只看该作者

用位与操作。&1就是取最低位,&2就是取次低位...

使用特权

评论回复
5
epdcty|  楼主 | 2008-5-29 22:02 | 只看该作者

谢谢computer00

对了,忘记这种法子了
非常感谢computer00 

使用特权

评论回复
6
HELLO_LEI| | 2008-5-29 22:13 | 只看该作者

idata pp;

idata pp;
可位寻址字节定义

使用特权

评论回复
7
wxj1952| | 2008-5-30 10:31 | 只看该作者

LS?

bdata  char  pp;

使用特权

评论回复
8
ayb_ice| | 2008-5-30 11:00 | 只看该作者

果然是菜鸟

使用特权

评论回复
9
liwentao0| | 2008-5-30 17:50 | 只看该作者

单片机

  大哥真行,程序能写成这样.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝