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

[复制链接]
4431|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。
Metalor 发表于 2011-8-11 08:47 | 显示全部楼层
两个i是同一个么?谭浩强害人啊,一写程序到处都是i、j
NE5532 发表于 2011-8-10 22:19


这一看就是郭天祥教出来的,不关谭浩强事。
没事,先这样用着,以后知识丰富了自然知道改变的。
wuyuehua19 发表于 2011-8-11 09:08 | 显示全部楼层
在这个程序里主函数的i可以变成10吗
跬步 发表于 2011-8-11 09:20 | 显示全部楼层
变不了,这是变量的作用域问题
ayb_ice 发表于 2011-8-11 10:46 | 显示全部楼层
有些编程的基本问题还没有概念,不出问题的概念和中500W的机会差不多
puppyh 发表于 2011-8-11 11:35 | 显示全部楼层
uint i=0;  <----把这个去掉。
EA=1;
sysdriver 发表于 2011-8-11 12:56 | 显示全部楼层
而且,8位单片,没事干别老是uint。除非必须用。。。。
沈老 发表于 2011-8-11 13:25 | 显示全部楼层
volatile uint i=0;
linbei1988 发表于 2011-8-11 13:35 | 显示全部楼层
应该不至于有问题吧。。有时候我也这么直接用
是否关系有优化的问题
yibunihao 发表于 2011-8-11 13:41 | 显示全部楼层
呵呵,此i非彼i。
蓝色的云 发表于 2011-8-11 14:27 | 显示全部楼层
main 里面的i 与time0里面的i不一样

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

翻翻书或直接网上搜索,查查“作用域”就明白了
linbei1988 发表于 2011-8-11 14:39 | 显示全部楼层
main 里面的i 与time0里面的i不一样

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

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

对。。之前没看到main里面的定义
armmage 发表于 2011-8-11 15:41 | 显示全部楼层
哈哈 又见谭老师的徒弟了
monkey708 发表于 2011-8-11 22:02 | 显示全部楼层
恩 编程中一定要注意全局变量和局部变量的问题 最好不要用相同的名称~~
jimmychen 发表于 2011-8-12 00:19 | 显示全部楼层
郭天祥喜欢用这个 TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
Ryanhsiung 发表于 2011-8-12 16:37 | 显示全部楼层
两个不是一个 i
0sidamingbu0 发表于 2011-8-12 17:30 | 显示全部楼层
楼主搞笑了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

22

帖子

1

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