中国领先的单片机及嵌入式资讯、教程、开发工具提供者!
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

如何严格1秒点亮一次

作者:逍遥王   来源:原创   点击数:  更新时间:2009年11月26日   【字体:

  C51设计,单片机晶振为11.0592MHz。P1.5口每1秒钟输出一次高电平或低电平,但高低电平时长不一样。还请各位高手帮我改进一下。
我也采用过for语句,但是设计不成严格的1s输出一次的方式。

#include<reg52.h>
sbit D1=P1^5;
unsigned int a;
void main()
{
 while(1)
 { a=46500;
  D1=0;
  while(a--);
  a=45701;
  D1=1;
  while(a--);
 }
}
 

-----------------------

版主回复:

 你上面这个延时是非常不精确,具体你可以看keil 里面的汇编文件就可分析出原因来,本站曾经发表过一篇精确延时的文章,希望对你有帮助 http://www.51hei.com/mcu/696.html,另外使用定时器也是非常简单的.

一般如果是用循环延时使用12M的晶振要方便些,如果是定时器则是用11.0592的要方便和精确一些.

发表评论】【告诉好友】【收藏此文】【关闭窗口

文章评论

相关文章