历史上的今天
今天是:2025年07月13日(星期日)
2019年07月13日 | AVRWARE++开发笔记5:蜂鸣器驱动实验
2019-07-13 来源:eefocus
本文只针对于初学者,高手请绕过!
1、实验目的
利用单片机的IO口,控制蜂鸣器,学会蜂鸣器的控制方法。
2、实验内容
编写一段程序,使蜂鸣器以1秒为间隔鸣叫。
3、硬件原理
蜂鸣器硬件原理图如下图所示,使用排线与端子P1相连,则单片机相应端口的第4引脚即与端子P1的BEEP引脚相连接(例如,使用排线将P10端子与P1端子相连接,则PD4引脚则连接到了BEEP引脚上,在这里需要注意的是,端口从0起排,而端子从1起排,不要混淆)。BEEP通过基级电阻R11控制三级管Q1的通断,由于Q1(8550)为PNP三极管,则BEEP给低电平的时候,Q1导通,给蜂鸣器供电,蜂鸣器鸣叫;BEEP给高电平的时候,Q1截止,蜂鸣器停止鸣叫。
4、实验参考程序及注解
更改映射层1_AbstractionLayer_HAL.h文件
//PortD
#define IO_PD_DIR 0b00010000 //此处指明第4引脚为输出
//该处为二进制表示方式,最低位为0
#define IO_PD_OUT 0b00010000 //此处指明第4引脚默认初始状态为高电平,也就是说在上电时,
//BEEP引脚给高电平,三极管不导通,蜂鸣器不鸣叫
//该处为二进制表示方式,最低位为0
////////////////////////////////////////////////////////////////////////////////////
#define BEEP BIT4 //BEEP与端口的第4引脚相连接
//功能宏定义
#define BEEP_OPEN CLRBIT(PORTD,BEEP) //蜂鸣器打开,将端口D的第4引脚(PD4)置低电平
#define BEEP_SHUT SETBIT(PORTD,BEEP) //蜂鸣器关闭,将端口D的第4引脚(PD4)置高电平
更改逻辑层0_logiclayer_main.c文件
//主程序
int main(void)
{
//目标板初始化,该函数会自动初始化相应的外设文件
TARGET_Init();
//后台主循环
while(1)
{
//在这里完成自己的项目逻辑
BEEP_OPEN;
TARGET_Delayms(1000,1);
BEEP_SHUT;
TARGET_Delayms(1000,1);
//喂狗语句,大部分的工程项目都不应该去除
#if WDT_MODE!=0
TARGET_WatchDogReset();
#endif
}
return 0; //永不执行
}
5、注解
a、IO_PD_DIR
IO_PD_DIR是系统预定义好的功能宏,表示端口引脚的方向,可以用一个8位的二进制来表示,0表示输入,1表示输出,本例把IO_PD_DIR定义为0b00010000表示,PD4引脚为输出,其余引脚为输入。
b、IO_PD_OUT
IO_PD_OUT 是系统预定义好的功能宏,表示端口引脚默认的初始状态的方向,可以用一个8位的二进制来表示,0表示低电平,1表示高电平,本例把 IO_PD_OUT 定义为0b00010000表示,PD4引脚上电时默认的初始状态为高电平,即三极管不导通,蜂鸣器不鸣叫。
c、 CLRBIT
CLRBIT是系统预定义好的功能宏,可以将1个字节(8位)的某1位置0,例如CLRBIT(PORTD,BIT4)表示的意思是将PORTD寄存器的第4位置成0。
d 、 SETBIT
SETBIT是系统预定义好的功能宏,可以将1个字节(8位)的某1位置0,例如SETBIT(PORTD,BIT4)表示的意思是将PORTD寄存器的第4位置成1。
e、 TARGET_Delayms
TARGET_Delayms位ms延时函数,带有2个参数,第1个参数是延时的ms数,例如1000指1000ms,即1秒;第2个参数是指在延时的时候是否执行喂狗操作,1是执行喂狗操作,0是不执行喂狗操作。
史海拾趣
|
IP网络摄像机的质变在哪里?其实很简单,就在于取消了模拟视频的环节。熟悉视频监控系统的人都知道,模拟摄像头+DVS组合实际上就是将模拟视频输出接入到DVS中进行数字化和网络化,而IP摄像头则从视频感光模块开始就已完成数字化,之后的所有环节都 ...… 查看全部问答> |
|
PADS助手:一个很好的软件献给用PADS Logic/Loyout(Power Logic/PCB)的人 [PADS助手]Logic自动编号+鼠标缩放拖拉图纸+键盘替代菜单快捷键 v2.0 Pads助手是一款帮助用户更方便地使用PADS Logic / PADS Layout(Power Logic / Power PCB)画图软件的辅助软件。 目前,Pads助手有三项主要功能: 1. 原理图元件批量编号功能 ...… 查看全部问答> |
|
人体特征识别方法,也叫生物特征识别方法,是指利用人的独特的生理及行为特征进行鉴别的身份验证的技术手段。它的产生及发展源于人们在迈进数字时代的过程中对身份验证方法的准确性与便捷性不断提高的需求。传统的身份验证方法主要包括身份标志 ...… 查看全部问答> |
|
SCCB总线 SCCB是简化的I2C协议,SIO-l是串行时钟输入线,SIO-O是串行双向数据线,分别相当于I2C协议的SCL和SDA。SCCB的总线时序与I2C基本相同,它的响应信号ACK被称为一个传输单元的第9位,分为Don’t care和NA。Don’t care位由从机产 ...… 查看全部问答> |




