码迷,mamicode.com
首页 > 其他好文 > 详细

单片机---控制蜂鸣器以0.5s的周期工作

时间:2015-04-19 21:02:10      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

 1 /*采用定时的方法让继电器切换,切换频率大约为0.5s*/
 2 #include <reg52.h>      //52系列单片机头文件
 3 sbit Relay = P3^3;         //声明单片机P3口的第4位
 4 
 5 /*定时器T0初始化:主要是一些寄存器的配置
 6   定时时间是0.25ms。
 7 */
 8 void InitT0(void)
 9 {
10      TMOD = 0x02; /*8位自动重装载定时器,当溢出时将TH0存放的值自动重装入TL0*/
11      TL0 = 0x1A;//晶振11.0592MHz
12      TH0 = 0x1A;
13      TR0 = 1;//启动定时器 
14 }
15 
16 void main (void)             /*主函数*/
17 { 
18     unsigned short int RelayDelayCnt = 0;
19     InitT0();/*调用定时器初始化函数,进行相应配置*/
20     while (1)
21     {
22          if (TF0)/*判断定时器是否计满溢出*/
23          {
24             TF0 = 0;/*清楚溢出标志,准备下次溢出的判断*/
25             if (RelayDelayCnt++ >= 2000)//2000*0.25ms = 0.5s
26             {
27                 RelayDelayCnt = 0;/*清计数,重新开始计数*/
28                 Relay = ~Relay;/*翻转继电器控制电平,让其切换*/
29             }
30          }
31     }
32 }

2015-04-19

/*延时法-周期0.5s切换继电器*/
#include <reg52.h>      //52系列单片机头文件
sbit Relay = P3^3;	     //声明单片机P3口的第4位
/*延时基准约为1ms*/
void DelayXms(unsigned short int xms)
{									 
    unsigned char dly;
    while(xms--)
    {
        dly = 100;
        while(dly--);
    }
}
void main (void)		     /*主函数*/
{ 
    while (1) /*循环*/
	{
        DelayXms(500);/*延时一段时间*/
        Relay = ~Relay;/*IO口电平的翻转,继电器来回切换,发出咔哒咔哒声音*/
	}
}

  

单片机---控制蜂鸣器以0.5s的周期工作

标签:

原文地址:http://www.cnblogs.com/zhaoruiqi/p/4439705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!