51单片机实现蜂鸣器警车、救护车、消防车声

上传人:豆浆 文档编号:28939602 上传时间:2018-01-21 格式:DOC 页数:12 大小:78.50KB
返回 下载 相关 举报
51单片机实现蜂鸣器警车、救护车、消防车声_第1页
第1页 / 共12页
51单片机实现蜂鸣器警车、救护车、消防车声_第2页
第2页 / 共12页
51单片机实现蜂鸣器警车、救护车、消防车声_第3页
第3页 / 共12页
51单片机实现蜂鸣器警车、救护车、消防车声_第4页
第4页 / 共12页
51单片机实现蜂鸣器警车、救护车、消防车声_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《51单片机实现蜂鸣器警车、救护车、消防车声》由会员分享,可在线阅读,更多相关《51单片机实现蜂鸣器警车、救护车、消防车声(12页珍藏版)》请在金锄头文库上搜索。

1、1./*-名 称 : 喇 叭论 坛 : 编 写 : shifang日 期 : 2009.5修 改 : 无内 容 : 模 拟 警 车 发 声-*/#include /包 含 头 文 件 , 一 般 情 况 不 需 要 改 动 , 头 文 件 包 含 特 殊 功 能 寄 存 器 的 定 义sbit SPK=P12; /定 义 喇 叭 端 口unsigned char frq; void DelayUs2x(unsigned char t);/函 数 声 明 void DelayMs(unsigned char t);/*-定 时 器 初 始 化 子 程 序-*/void Init_Timer0(v

2、oid)TMOD |= 0x01; /使 用 模 式 1, 16 位 定 时 器 , 使 用 |符 号 可 以 在 使 用 多 个 定 时 器 时 不 受 影 响/TH0=0x00; /给 定 初 值 /TL0=0x00;EA=1; /总 中 断 打 开ET0=1; /定 时 器 中 断 打 开TR0=1; /定 时 器 开 关 打 开/*-主 函 数-*/main()Init_Timer0(); /初 始 化 定 时 器while(1)DelayMs(1); /延 时 1ms, 累 加 频 率 值frq+;/*-uS 延 时 函 数 , 含 有 输 入 参 数 unsigned char t

3、, 无 返 回 值unsigned char 是 定 义 无 符 号 字 符 变 量 , 其 值 的 范 围 是0255 这 里 使 用 晶 振 12M, 精 确 延 时 请 使 用 汇 编 ,大 致 延 时长 度 如 下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t) while(-t);/*-mS 延 时 函 数 , 含 有 输 入 参 数 unsigned char t, 无 返 回 值unsigned char 是 定 义 无 符 号 字 符 变 量 , 其 值 的 范 围 是0255 这 里 使 用 晶 振 12M, 精 确 延 时 请 使

4、 用 汇 编-*/void DelayMs(unsigned char t)while(t-)/大 致 延 时 1mSDelayUs2x(245);DelayUs2x(245);/*-定 时 器 中 断 子 程 序-*/void Timer0_isr(void) interrupt 1 TH0=0xfe; /重 新 赋 值 TL0=frq; /低 8 位 值 在 主 程 序 中 不 断 累 加SPK=!SPK; /端 口 电 平 取 反二/*-名 称 : 喇 叭论 坛 : 编 写 : shifang日 期 : 2009.5修 改 : 无内 容 : 模 救 护 车 发 声-*/#include

5、/包 含 头 文 件 , 一 般 情 况 不 需 要 改 动 , 头 文 件 包 含 特 殊 功 能 寄 存 器 的 定 义sbit SPK=P12; /定 义 喇 叭 端 口unsigned char frq; void DelayUs2x(unsigned char t);/函 数 声 明 void DelayMs(unsigned char t);/*-定 时 器 初 始 化 子 程 序-*/void Init_Timer0(void)TMOD |= 0x01; /使 用 模 式 1, 16 位 定 时 器 , 使 用 |符 号 可 以 在 使 用 多 个 定 时 器 时 不 受 影 响

6、 /TH0=0x00; /给 定 初 值/TL0=0x00;EA=1; /总 中 断 打 开ET0=1; /定 时 器 中 断 打 开TR0=1; /定 时 器 开 关 打 开/*-主 函 数-*/main()unsigned char i;Init_Timer0(); /初 始 化 定 时 器while(1)frq=0;for(i=0;i /包 含 头 文 件 , 一 般 情 况 不 需 要 改 动 , 头 文 件 包 含 特 殊 功 能 寄 存 器 的 定 义sbit SPK=P12; /定 义 喇 叭 端 口unsigned char frq; void DelayUs2x(unsign

7、ed char t);/函 数 声 明 void DelayMs(unsigned char t);/*-定 时 器 初 始 化 子 程 序-*/void Init_Timer0(void)TMOD |= 0x01; /使 用 模 式 1, 16 位 定 时 器 , 使 用 |符 号 可 以 在 使 用 多 个 定 时 器 时 不 受 影 响 /TH0=0x00; /给 定 初 值/TL0=0x00;EA=1; /总 中 断 打 开ET0=1; /定 时 器 中 断 打 开TR0=1; /定 时 器 开 关 打 开/*-主 函 数-*/main()unsigned char i;Init_Ti

8、mer0(); /初 始 化 定 时 器while(1)for(i=0;i0;i-)DelayMs(10); /延 时 10ms, 累 减 频 率 值frq=i; /*-uS 延 时 函 数 , 含 有 输 入 参 数 unsigned char t, 无 返 回 值unsigned char 是 定 义 无 符 号 字 符 变 量 , 其 值 的 范 围 是0255 这 里 使 用 晶 振 12M, 精 确 延 时 请 使 用 汇 编 ,大 致 延 时长 度 如 下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t) while(-t);/*-mS 延

9、 时 函 数 , 含 有 输 入 参 数 unsigned char t, 无 返 回 值unsigned char 是 定 义 无 符 号 字 符 变 量 , 其 值 的 范 围 是0255 这 里 使 用 晶 振 12M, 精 确 延 时 请 使 用 汇 编-*/void DelayMs(unsigned char t)while(t-) /大 致 延 时 1mSDelayUs2x(245);DelayUs2x(245);/*-定 时 器 中 断 子 程 序-*/void Timer0_isr(void) interrupt 1 TH0=0xfe; /重 新 赋 值 TL0=frq; /低 8 位 值 在 主 程 序 中 不 断 累 加SPK=!SPK; /端 口 电 平 取 反

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号