打印

我这个程序问题在哪里

[复制链接]
1797|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zxser09|  楼主 | 2009-12-23 19:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#include <intrins.h>
#define unc unsigned char
#define unt unsigned int
/*unc code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
       0x7d,0x07,0x7f,0x6f};
sbit duan=P1^0;
sbit wei=P1^1;*/
sbit liu=P0;
void delay(unt);
void init();
void main()
{
init();
while(1)
{
liu=_crol_(liu,1);
P0=liu;
delay(1000);
}
}
void delay(unt e)
{
  unt x,y;
  for(x=e;x>0;x--)
   {
   for(y=110;y>0;y--);
   }
}
void init()
{
liu=0xfe;
}

为什么我这个程序流水灯不会流呢?望解答,谢谢!

相关帖子

沙发
NE5532| | 2009-12-23 20:29 | 只看该作者
告诫所有新入门的单片机初学者:程序不要写上一大堆再来调,你认为你是在“奋笔疾书”,我认为你是在“粪”笔疾书。

解决方案参考:《脱离仿真器玩单片机》

使用特权

评论回复
板凳
zxser09|  楼主 | 2009-12-23 20:48 | 只看该作者
:(,我有开发版的··但是我想先通过仿真器先玩玩先,这样程序和硬件可以都得到提高撒!1

使用特权

评论回复
地板
NE5532| | 2009-12-23 20:50 | 只看该作者
你就是用仿真,也得一步一步写了来仿真。光写不调,不要说对初学者,对我都是灾难!我最怕就是写上2、300行都没有调试过的程序!

使用特权

评论回复
5
Dai_Weis| | 2009-12-23 21:38 | 只看该作者
从基本功能开始写,开始调,一点一点完成,别一口气把程序抄完,那样就没有意义了

使用特权

评论回复
6
zxser09|  楼主 | 2009-12-23 22:10 | 只看该作者
我是想用用 延时 和初始化功能``哪知道不行。

使用特权

评论回复
7
chfirst| | 2009-12-23 22:36 | 只看该作者
sbit liu=P0;
sbit不是定义位的嘛,这不对吧。

使用特权

评论回复
8
zxser09|  楼主 | 2009-12-23 22:59 | 只看该作者
也就是说 sbit liu=P1^0;  
要这样具体到某个引脚吗?

使用特权

评论回复
9
norman33| | 2009-12-24 10:28 | 只看该作者
sbit是定义单个的位变量,P0口有P0.0~P0.7 8个端口也就有8位,如果要操作P0口就要定义成unsigned char型,对于单个的P0.0或者P0.1等就用sbit定义 例如P0.0端口的话sbit liu=P0^0,其余的可以依葫芦画瓢

使用特权

评论回复
10
杜专| | 2009-12-24 12:01 | 只看该作者
盲调

使用特权

评论回复
11
反质子| | 2009-12-24 16:10 | 只看该作者
恩 sbit liu=P0 错
直接P0左移啊

使用特权

评论回复
12
yangjiang1989| | 2009-12-30 23:58 | 只看该作者
#include<reg51.h>
#include <intrins.h>
#define unt unsigned int
#define uchar unsigned char
uchar liu;
void delay(unt);
void init();
void main()
{
init();
while(1)
{
P0=liu;
liu=_crol_(liu,1);
delay(1000);
}
}
void delay(unt e)
{
unt x,y;
for(x=e;x>0;x--)
{
for(y=110;y>0;y--);
}
}
void init()
{
liu=0xfe;
}

使用特权

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

本版积分规则

81

主题

208

帖子

0

粉丝