[STC单片机] 本人初学,遇到个问题

[复制链接]
 楼主| oldguan 发表于 2015-7-21 23:45 | 显示全部楼层 |阅读模式
下面两段代码为什么下载到 stc89c52rc上得到的效果不一样呢?

测试目的用p0口控制8个led

代码1
#include <reg51.h>
#define uchar unsigned char

uchar tmp;
void main()
{
    tmp = 0x92;
    P0 = tmp;
}
代码2
#include <reg51.h>
#define uchar unsigned char

void main()
{
    P0 = 0x92;
}
ecoren 发表于 2015-7-22 09:53 | 显示全部楼层
加上while循环
while(1)
{
    //code
}
或者
//code
while(1);
 楼主| oldguan 发表于 2015-7-22 19:15 | 显示全部楼层
本帖最后由 oldguan 于 2015-7-22 20:46 编辑

直接用 P0 = 0x92; led亮度正常的,为什么用变量赋值就要加上while呢?这里有什么说法吗?
就做你的小二 发表于 2015-7-23 01:36 来自手机 | 显示全部楼层
我只知道你这样写程序指针会继续自加进入你没有编程的代码区导致系统不受你编写的程序控制。
ningling_21 发表于 2015-7-23 08:25 | 显示全部楼层
oldguan 发表于 2015-7-22 19:15
直接用 P0 = 0x92; led亮度正常的,为什么用变量赋值就要加上while呢?这里有什么说法吗?
...

不是一定要加(楼主这样的状况可以不加),很多情况下代码前面的初始化部分只需执行一次,如果没有while(1){...}

就会不断执行初始化代码,导致正常代码不能正常运行
ayb_ice 发表于 2015-7-23 08:42 | 显示全部楼层
后面加个while(1)就正常了


你这是不正常的代码,动作以后的流程没有定义,完全是无政府状态
 楼主| oldguan 发表于 2015-7-24 09:28 | 显示全部楼层
谢谢各位!!!
zhoukaiyue 发表于 2017-2-15 19:47 | 显示全部楼层
学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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

1

主题

3

帖子

0

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