打印

求大神,变量i可以达到10,却进不了if语句块,急急急!!!

[复制链接]
3295|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
菜鸟来也|  楼主 | 2011-8-10 21:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。。
#include<reg52.h>                 
#define uint unsigned int
uint i=0;

sbit LED=P1^1;
void main()
{
    uint i=0;
    EA=1;                    //开总中断
    ET0=1;                    //中断使能定时器0
    TMOD=0x01;                //设置定时器0为工作模式1
    TR0=1;                    //启动定时器0
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    LED=0;
    while(1)
    {
        if(i==10)
        {
            i=0;
            LED=~LED;
           
        }
            
    }
}

void time0() interrupt 1
{
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;   
    i++;
   
}

相关帖子

沙发
NE5532| | 2011-8-10 22:19 | 只看该作者
两个i是同一个么?谭浩强害人啊,一写程序到处都是i、j

使用特权

评论回复
板凳
经常补钙| | 2011-8-10 23:10 | 只看该作者
一个是全局变量i,一个是局部变量i。把main里面的i变量声明删除即可。

使用特权

评论回复
地板
ahgao| | 2011-8-11 00:06 | 只看该作者
i也没有什么不好。我每次都把无固定意义的循环控制变量叫i。

使用特权

评论回复
5
Metalor| | 2011-8-11 08:47 | 只看该作者
两个i是同一个么?谭浩强害人啊,一写程序到处都是i、j
NE5532 发表于 2011-8-10 22:19


这一看就是郭天祥教出来的,不关谭浩强事。
没事,先这样用着,以后知识丰富了自然知道改变的。

使用特权

评论回复
6
wuyuehua19| | 2011-8-11 09:08 | 只看该作者
在这个程序里主函数的i可以变成10吗

使用特权

评论回复
7
跬步| | 2011-8-11 09:20 | 只看该作者
变不了,这是变量的作用域问题

使用特权

评论回复
8
ayb_ice| | 2011-8-11 10:46 | 只看该作者
有些编程的基本问题还没有概念,不出问题的概念和中500W的机会差不多

使用特权

评论回复
9
puppyh| | 2011-8-11 11:35 | 只看该作者
uint i=0;  <----把这个去掉。
EA=1;

使用特权

评论回复
10
sysdriver| | 2011-8-11 12:56 | 只看该作者
而且,8位单片,没事干别老是uint。除非必须用。。。。

使用特权

评论回复
11
沈老| | 2011-8-11 13:25 | 只看该作者
volatile uint i=0;

使用特权

评论回复
12
linbei1988| | 2011-8-11 13:35 | 只看该作者
应该不至于有问题吧。。有时候我也这么直接用
是否关系有优化的问题

使用特权

评论回复
13
yibunihao| | 2011-8-11 13:41 | 只看该作者
呵呵,此i非彼i。

使用特权

评论回复
14
蓝色的云| | 2011-8-11 14:27 | 只看该作者
main 里面的i 与time0里面的i不一样

把main里面的 uint i=0;  去掉就可以了

翻翻书或直接网上搜索,查查“作用域”就明白了

使用特权

评论回复
15
linbei1988| | 2011-8-11 14:39 | 只看该作者
main 里面的i 与time0里面的i不一样

把main里面的 uint i=0;  去掉就可以了

翻翻书或直接网上搜索,查查“作用域”就明白了
蓝色的云 发表于 2011-8-11 14:27

对。。之前没看到main里面的定义

使用特权

评论回复
16
armmage| | 2011-8-11 15:41 | 只看该作者
哈哈 又见谭老师的徒弟了

使用特权

评论回复
17
monkey708| | 2011-8-11 22:02 | 只看该作者
恩 编程中一定要注意全局变量和局部变量的问题 最好不要用相同的名称~~

使用特权

评论回复
18
jimmychen| | 2011-8-12 00:19 | 只看该作者
郭天祥喜欢用这个 TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;

使用特权

评论回复
19
Ryanhsiung| | 2011-8-12 16:37 | 只看该作者
两个不是一个 i

使用特权

评论回复
20
0sidamingbu0| | 2011-8-12 17:30 | 只看该作者
楼主搞笑了

使用特权

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

本版积分规则

0

主题

22

帖子

1

粉丝