基于proteus的51单片机仿真实例七十七、使用555实现定时功能应用实例

1、555芯片能够实现精确的定时功能。在延时模式下,利用外部的电阻和电容可以实现比较准确的定时。
本例即利用这个功能:程序启动后,按下按键会使555输出一段时间的高电平,小灯也被点亮,同时单片机检测到高电平后,让蜂鸣器发出声音,延时时间结束后,小灯熄灭,蜂鸣器停止鸣叫。
 
2、在keil c51中新建工程ex65编写如下程序代码,编译并生成ex65hex文件
//555定时器实验,
#include
sbit signal = P1^0;
sbit BEEP = P3^7;
//延时函数
void delayms(unsigned int x)
{
  unsigned char i;
  while(x--)
  {
    for(i = 0;i < 120;i++);
  }
}
//主函数
void main(void)
{
  while(1)
 {
   if(signal)    //检测555输出的电平高低
  {
    BEEP = ~BEEP;   //
   delayms(3);
  }
 }
}
3、在proteus中新建仿真文件ex65dsn,电路原理图如下所示

基于proteus的51单片机仿真实例七十七、使用555实现定时功能应用实例_第1张图片
4、将ex65hex文件载入at89c51中,启动仿真,按动拨码开关,观察运行结果。下图是某一时刻程序运行结果
基于proteus的51单片机仿真实例七十七、使用555实现定时功能应用实例_第2张图片

你可能感兴趣的:(51单片机)