以第一个简单函数为例 蜂鸣器的主函数包括蜂鸣器启动函数和蜂鸣器停止函数 while (1)
{
OpenBuzz(4000); //以 4KHz 的频率启动蜂鸣器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鸣器
for (i=0; i<40000; i++);
OpenBuzz(1000); //以 1KHz 的频率启动蜂鸣器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鸣器
for (i=0; i<40000; i++);
} 蜂鸣器启动函数中定时器重载值得计算 reload = 65536 - (11059200/12)/(frequ*2); 这个是定时器初值的计算X=2^n-t/mc.,t是定时时间,mc是机器周期 实验室的单片机n=8,2的n次方为65536,1/(frequ*2)为时间,蜂鸣器是震荡发声电平要一高一低,所以频率要乘以二 机器周期为12/晶振,用这个公式计算出初值 再下面就是蜂鸣器启动函数和蜂鸣器停止函数以及中断函数的编写
|