//试验意图:
//了解运用单片机驱动蜂鸣器发生警报声
//**************************************************
//**************************************************
//硬件设置:
//1、硬件不需设置
//**************************************************
//**************************************************
//*****************界说头文件**********************
//**************************************************
#include
//**************************************************
//******************界说装备位*********************
//**************************************************
__CONFIG(0x3545);
//FLASH代码不维护,RB6和RB7为调试形式,FLASH不写维护,数据代码不维护
//RB3为数字IO口,低电压复位使能,上电延时开,看门狗开,4M晶体XT振荡器
//**************************************************
//******************界说常量***********************
//**************************************************
#defineucharunsignedchar
#defineuintunsignedint
//***********************************************
//函数名:delayms(ucharTIme);
//进口参数:TIme
//出口参数:无
//函数效果:延时
//阐明:
//***********************************************
voiddelayms(ucharTIme)
{
uinTI;
while(time–)
{
for(i=93;i》0;i–){;}
}
}
//***********************************************
//函数名:port_init(void);
//进口参数:无
//出口参数:无
//函数效果:端口初始化
//阐明:
//***********************************************
voidport_init(void)
{
PORTA=0X00;//RA口输出低电平
ADCON1=0X07;//设置RA口,RE口为一般IO口
TRISA=0X00;//设置RA为输出口,封闭并行口
OPTION=0X8F;//分频给WDT,分频比为128
}
//***********************************************
//函数名:buzzer(void);
//进口参数:无
//出口参数:无
//函数效果:发生警报声
//阐明:
//***********************************************
voidbuzzer(void)
{
RA5=1;//RE1输出高电平
delayms(150);
RA5=0;//RE1输出低电平
delayms(50);
RA5=1;//RE1输出高电平
delayms(150);
RA5=0;//RE1输出低电平
}
//***********************************************
//函数名:main(void);
//进口参数:无
//出口参数:无
//函数效果:MAIN函数
//阐明:
//***********************************************
voidmain(void)
{
port_init();//调用端口初始化函数
while(1)
{
buzzer();//调用报警函数
delayms(250);//总延时1秒
CLRWDT();//清看门狗
delayms(250);
delayms(250);
delayms(250);
CLRWDT();//清看门狗
}
}