//**************************************************
//实验目的:
//熟悉使用单片机驱动蜂鸣器产生警报声
//**************************************************
//**************************************************
//硬件设置:
//1、硬件不需设置
//**************************************************
//**************************************************
//*****************定义头文件**********************
//**************************************************
#include<PIC.h>
//**************************************************
//******************定义配置位*********************
//**************************************************
__CONFIG(0x3545);
//FLASH代码不保护,RB6和RB7为调试模式,FLASH不写保护,数据代码不保护
//RB3为数字IO口,低电压复位使能,上电延时开,看门狗开,4M晶体XT振荡器
//**************************************************
//******************定义常量***********************
//**************************************************
#define uchar unsigned char
#define uint unsigned int
//***********************************************
//函 数 名:delayms(uchar time);
//入口参数:time
//出口参数:无
//函数作用:延时
//说 明:
//***********************************************
void delayms(uchar time)
{
uint i;
while(time--)
{
for(i=93;i>0;i--){;}
}
}
//***********************************************
//函 数 名:port_init(void);
//入口参数:无
//出口参数:无
//函数作用:端口初始化
//说 明:
//***********************************************
void port_init(void)
{
PORTA=0X00; //RA口输出低电平
ADCON1=0X07; //设置RA口,RE口为普通IO口
TRISA=0X00; //设置RA为输出口,关闭并行口
OPTION=0X8F; //分频给WDT,分频比为128
}
//***********************************************
//函 数 名:buzzer(void);
//入口参数:无
//出口参数:无
//函数作用:产生警报声
//说 明:
//***********************************************
void buzzer(void)
{
RA5=1; //RE1输出高电平
delayms(150);
RA5=0; //RE1输出低电平
delayms(50);
RA5=1; //RE1输出高电平
delayms(150);
RA5=0; //RE1输出低电平
}
//***********************************************
//函 数 名:main(void);
//入口参数:无
//出口参数:无
//函数作用:MAIN函数
//说 明:
//***********************************************
void main(void)
{
port_init(); //调用端口初始化函数
while(1)
{
buzzer(); //调用报警函数
delayms(250); //总延时1秒
CLRWDT(); //清看门狗
delayms(250);
delayms(250);
delayms(250);
CLRWDT(); //清看门狗
}
}
上一篇:PIC单片机驱动步进电机先正转后反转
下一篇:PIC16F630的I/O口的操作流水灯
推荐阅读最新更新时间:2024-03-16 15:20