怎样用八个二极管演示八位二进制数累加的过程

[复制链接]
 楼主| leaoking 发表于 2009-8-3 19:11 | 显示全部楼层 |阅读模式
本帖最后由 leaoking 于 2009-8-3 19:12 编辑

如题,最近在学单片机,却在刚入门儿的时候被一个似乎是很简单的程序给卡到这儿了。
我自己想的是这样的。
#include<reg52.h>
#define uint unsigned int
sbit a=P1;
void delay(uint);
main()
{
  while(1)
  {
      a=0xfe;
      while(a!=0x00)
      {
         delay(20);
         a--;
      }
  delay(20);
}
}
void delay(uint z)
{
    uint x,y;
    for(x=110;x>0;x--)
       for(y=z;y>0;y--);
}
结果是错误的,显示的是
1.C(13): error C193: '--': illegal operation on bit(s)
这样的一条提示信息。
高手指点下。似乎是说a不能这么减,那这个程序改怎么写?
 楼主| leaoking 发表于 2009-8-3 19:13 | 显示全部楼层
占座,帖子顶起,等待回答。。。
laibour 发表于 2009-8-3 19:43 | 显示全部楼层
sbit 是C51中定义位变量用的,这一位可以使0或者1。不能进行自减操作。你根本不用sbit 操作,直接用P1就可以了。
 楼主| leaoking 发表于 2009-8-3 19:51 | 显示全部楼层
先试一下。。。。
寒自己一个。。。
 楼主| leaoking 发表于 2009-8-3 19:56 | 显示全部楼层
3楼正解!
问题可以关闭。
谢谢!!!
mcumi 发表于 2009-8-3 20:21 | 显示全部楼层
可以用define定义,我也刚学。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

56

帖子

0

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

7

主题

56

帖子

0

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