/* ch03-3-1.c - 蜂鸣器实验程序 */
//==声明区====================================
#include <reg51.h> // 定义8051暂存器的标头档,P2-17~19
sbit buzzer = P3^7 ; // 声明蜂鸣器的位置为Port 3之bit 7
void delay(int); // 声明延迟函数
void pulse_BZ(int,int,int); // 声明蜂鸣器发声函数
//==主程序====================================
main() // 主程序开始
{ while(1) // 无穷循环,程序一直跑
{ pulse_BZ(100,1,1);
// 蜂鸣器发声100 (0.5m+0.5m)=0.1s
delay(1000); // 延迟1000 0.5m=0.5秒
} // while循环结束
} // 主程序结束
//==子程序=====================================
/* 延迟函数开始,延迟x 0.5ms */
void delay(int x) // 延迟函数开始
{ int i,j; // 声明整数变量i,j
for (i=0;i<x;i++) // 计数x次,延迟约x 0.5ms
for (j=0;j<60;j++); // 计数60次,延迟约0.5ms
} // 延迟函数结束
/* 蜂鸣器发声函数,count=计数次数,TH=高态时间,TL=低态时间 */
void pulse_BZ(int count,int TH,int TL) // 蜂鸣器发声函数开始
{ int i; // 声明整数变数i
for(i=0;i<count;i++) // 计数count次
{ buzzer=1; // 输出高态
delay(TH); // 延迟TH 0.5ms
buzzer=0; // 输出低态
delay(TL); // 延迟TL 0.5ms
} // for循环结束
} // 蜂鸣器发声函数结束
|