51单片机实现蜂鸣器警车、救护车、消防车声Word下载.doc
- 文档编号:15403222
- 上传时间:2022-10-30
- 格式:DOC
- 页数:12
- 大小:50.50KB
51单片机实现蜂鸣器警车、救护车、消防车声Word下载.doc
《51单片机实现蜂鸣器警车、救护车、消防车声Word下载.doc》由会员分享,可在线阅读,更多相关《51单片机实现蜂鸣器警车、救护车、消防车声Word下载.doc(12页珍藏版)》请在冰豆网上搜索。
无
内容:
模拟警车发声
------------------------------------------------*/
#include<
reg52.h>
//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbitSPK=P1^2;
//定义喇叭端口
unsignedcharfrq;
voidDelayUs2x(unsignedchart);
//函数声明
voidDelayMs(unsignedchart);
/*------------------------------------------------
定时器初始化子程序
voidInit_Timer0(void)
{
TMOD|=0x01;
//使用模式1,16位定时器,使用"
|"
符号可以在使用多个定时器时不受影响
//TH0=0x00;
//给定初值
//TL0=0x00;
EA=1;
//总中断打开
ET0=1;
//定时器中断打开
TR0=1;
//定时器开关打开
}
主函数
main()
Init_Timer0();
//初始化定时器
while
(1)
{
DelayMs
(1);
//延时1ms,累加频率值
frq++;
}
uS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下T=tx2+5uS
voidDelayUs2x(unsignedchart)
{
while(--t);
mS延时函数,含有输入参数unsignedchart,无返回值
0~255这里使用晶振12M,精确延时请使用汇编
voidDelayMs(unsignedchart)
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
定时器中断子程序
voidTimer0_isr(void)interrupt1
TH0=0xfe;
//重新赋值
TL0=frq;
//低8位值在主程序中不断累加
SPK=!
SPK;
//端口电平取反
二
模救护车发声
unsignedchari;
frq=0;
for(i=0;
i<
60;
i++)//播放1s左右一种频率
DelayMs(10);
frq=100;
i++)//播放1s左右另外一种频率
{
}
三
模拟消防车发声
200;
i++)
//延时10ms,累加频率值
frq=i;
for(i=200;
i>
0;
i--)
//延时10ms,累减频率值
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 实现 蜂鸣器 警车 救护车 消防车