单片机报警声
2016-11-23 来源:eefocus
两个简单的报警程序,希望能对大家有所启发,让单片机发出更美妙的音响
/***********************************************
* 标题: 简单报警声程序
* 日期: 2008-4-30
* yongsheng.gys@163.com
***********************************************/
#include
#include
sbit SPK = P3^4;
unsigned char frq;
void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void timer0() interrupt 1 using 1
{
TH0 = 0xfe;
TL0 = frq;
SPK = ~SPK;
}
main()
{
TMOD = 0x01;
frq = 0x00;
TH0 = 0x00;
TL0 = 0xff;
TR0 = 1;
IE = 0x82;
while(1)
{
frq++;
delayms(1); //改变此处可以改变报警声的节奏长度
}
}
/***********************************************
* 标题: 单片机演奏消防车的报警声音
* 日期: 2008-4-30
* yongsheng.gys@163.com
***********************************************/
#include
#include
sbit SPK = P3^4; //喇叭接到P3.4上
unsigned char frq;
unsigned char flag;
void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void timer0() interrupt 1 using 1
{
TH0 = 0xfe;
TL0 = frq;
SPK = ~SPK;
}
void main()
{
TMOD = 0x01;
frq = 0x00;
TH0 = 0x00;
TL0 = 0xff;
TR0 = 1;
IE = 0x82;
flag=0;
while(1)
{
switch(flag)
{ case 0:frq++;break; //flag标志置0时,frq递增
case 1:frq--;break; //flag标志置1时,frq递减
}
if (!(frq^0xff)) flag=1; //当frq增加到FFH时,flag置1,准备frq递减
if (!(frq^0x00)) flag=0; //当frq递减到00H时,flag置0,准备frq递增
delayms(15); //^为逻辑异或改变此值可改变节奏
}
}
上一篇:简单的并口扩展演示
下一篇:c51写的93C46的读写程序
- 英飞凌与西门子将嵌入式汽车软件平台与微控制器结合 为下一代SDV提供所需功能
- 英飞凌携手马瑞利采用AURIX™ TC4x MCU系列推动区域控制单元创新
- 纳芯微联合芯弦推出NS800RT系列实时控制MCU
- GD32F103C8单片机的PWM输出试验
- GD32F103C系列单片机的PWM捕获功能
- 设计笔记 | 采用GD32F130系列MCU设计冰箱压缩机变频板方案
- 基于GD32L235系列MCU的微型便携式微型电源方案
- 基于GD32L235系列MCU的土壤湿度检测带磁力翻转式显示方案
- GD32VF103:采用RISC-V内核设计的MCU
- 德州仪器推出新款实时微控制器系统 可在汽车与工业应用中实现更智能的处理流程