OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4195|回复: 12

KEIL 51版本,在main函数中不加任何循环语句这个版本会直接循环运行,不知原因。

[复制链接]

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
发表于 2015-7-7 22:25:36 | 显示全部楼层 |阅读模式
5金钱

KEIL 51版本,在main函数中不加任何循环语句这个版本会直接循环运行,不知原因。

 我用的程序代码为:

#include<reg52.h> //包含头文件,一般情况不需要改动,
sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,


void Delay(unsigned int t); //函数声明
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{
 
  LED0=0;          
  Delay(10000);     
  LED0=1;          
  Delay(10000);

}
/*------------------------------------------------
 延时函数,含有输入参数 unsigned int t,无返回值
 unsigned int 是定义无符号整形变量,其值的范围是
 0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
 while(--t);
}

下载到STC89C52RC中后会循环运行,LED灯会不停闪烁,只有在最后加上while(1);才能停止。请遇到的朋友告知原因,谢谢。

最佳答案

查看完整内容[请看2#楼]

这个代码本来就是有问题的,程序运行到最后,程序就不知道该运行什么了 但是编译器可能帮你加上了while(1) 写一个错误的代码,还问为什么,也是醉了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13079
金钱
13079
注册时间
2012-11-26
在线时间
3809 小时
发表于 2015-7-7 22:25:37 | 显示全部楼层
这个代码本来就是有问题的,程序运行到最后,程序就不知道该运行什么了

但是编译器可能帮你加上了while(1)

写一个错误的代码,还问为什么,也是醉了
学无止境
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-7 22:25:37 | 显示全部楼层
回复【7楼】497795706@qq.com:
---------------------------------
main函数最后,一定要死循环。
简单说,就是main函数不能执行完。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2015-6-7
在线时间
39 小时
发表于 2015-7-8 09:10:44 | 显示全部楼层
自己溢出回来了?
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
 楼主| 发表于 2015-7-8 11:09:29 | 显示全部楼层
同样的程序我在IAR中就不会有这样的问题,我朋友在keil ARM版本中也没有出现问题,
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
 楼主| 发表于 2015-7-8 11:11:22 | 显示全部楼层
回复【2楼】jermy_z:
---------------------------------
没有明白你的意思
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
 楼主| 发表于 2015-7-8 11:13:44 | 显示全部楼层
回复【2楼】jermy_z:
---------------------------------
程序运行到main的最后一个花括号不就结束程序运行了吗,难道。。。。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
 楼主| 发表于 2015-7-8 11:19:58 | 显示全部楼层
请原子哥出来帮忙。。。
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13079
金钱
13079
注册时间
2012-11-26
在线时间
3809 小时
发表于 2015-7-8 11:24:32 | 显示全部楼层
回复【6楼】497795706@qq.com:
---------------------------------
基础C知识  还是自己百度吧!!!!!!
学无止境
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13079
金钱
13079
注册时间
2012-11-26
在线时间
3809 小时
发表于 2015-7-8 11:25:04 | 显示全部楼层
回复【5楼】497795706@qq.com:
---------------------------------
那看来你C语言基础知识太薄弱了!!!!
学无止境
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
 楼主| 发表于 2015-7-8 14:53:40 | 显示全部楼层
好吧,我也翻了书,也百度了,
void main(void)
{
  6DIR |= BIT26OUT |= BIT2;              //关电平转换
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  BCSCTL1 |= DIVA_3;                        // ACLK= LFXT1CLK/8
  CCTL2 = CM_1 + CCIS_1 + CAP + CCIE;       // CAP, ACLK, interrupt
  TACTL = TASSEL_2 + MC_2 + TACLR;          // SMCLK, cont-mode, clear
  5DIR |= 0x60;                            // 5.5,6 output
  5SEL |= 0x60;                            // 5.5,6 SMCLK, ACLK output

  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}
那么这个程序也是错了
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-7-7
在线时间
0 小时
 楼主| 发表于 2015-7-9 11:09:57 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
回复直接,谢谢原子哥。。。。
那个推荐答案怎么设置。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-9 22:57:29 | 显示全部楼层
回复【12楼】497795706@qq.com:
---------------------------------
提问者,和版主,有权限可以设置。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 11:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表