3793|4

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51单片机控制led灯的问题,程序死循环,退不出 [复制链接]

UINT cnt = 0;
void main()
{
    void allLed();
    TMOD = 0X01;
    TH0 = (65536 - 50000) / 256;
    TL0 = (65536 - 50000) % 256;
    EA = 1;
    ET0 = 1;
    TR0 = 1;   
    allLed();//按理说2s后函数调用就会结束了。怎么好像程序一直在执行这个函数。灯一直是在闪。我的目的是8个灯隔200ms进行闪烁
     
   
}

void allLed()
{
    P1 = 0x00; //刚开始所有的灯都亮      
    while(cnt <= 40) // 2s
    {
        if(cnt % 4 == 0) //每隔200ms取反
            P1 = ~P1;
        while(cnt % 4 == 0); // 200ms的时间保持闪或灭的状态      
    }
}


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

最新回复

要不是上面的程序怎么不会停止?  详情 回复 发表于 2010-5-19 16:25
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
结束后单片机又从MAIN开始执行了

在MAIN后加个死循环就可以
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
哦。知道了。谢谢你。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
楼上见解很新,程序执行完后还会自已从main重新开始执行么?
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 jbb0523 的回复:
楼上见解很新,程序执行完后还会自已从main重新开始执行么?


要不是上面的程序怎么不会停止?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表