5-51单片机-蜂鸣器实验

一 主要涉及到的知识点:

  1. 对系统默认的数据类型进行重定义,u8,u16;

2.延时函数,主要是将传过来的整数进行减减实现延时;

3.还用到了while()循环;

二 代码分析:

  1. 首次定义一个变量,主要是为了延时蜂鸣器响亮的时长;

2.通过while()循环,使得Buzzer_Port产生脉冲信号,从而使蜂鸣器响;

3.最后将i清零,然后将Buzzer_Port置0关闭蜂鸣器;

三 源代码:

//5-蜂鸣器实验

#include "reg52.h"

//对系统默认的数据类型进行重定义

typedef unsigned char u8;

typedef unsigned int u16;

//延时函数定义

void delay_10us(u16 tiem_num_us)

{

while(tiem_num_us--);

}

sbit Buzzer_Port = P2^5; //将P2.5管脚定义为Buzzer_Port

int main()

{

u16 i = 2000;

while(1)

{

while(i--)//循环2000次

{

Buzzer_Port = !Buzzer_Port; //产生一定频率的脉冲信号

delay_10us(100);

}

i = 0; //清零

Buzzer_Port = 0; //关闭蜂鸣器

}

return 0;

}

相关推荐
今夜有雨.1 小时前
51单片机--DHT11温湿度传感器实验代码
单片机·嵌入式硬件·51单片机
py有趣1 小时前
LeetCode算法学习之鸡蛋掉落
学习·算法·leetcode
小马爱打代码2 小时前
RabbitMQ:系统学习笔记
笔记·学习·rabbitmq
YJlio2 小时前
进程和诊断工具速查手册(8.13):VMMap / DebugView / LiveKd / Handle / ListDLLs 一页式现场排障清单
数据库·笔记·学习
CoderBob3 小时前
【EmbeddedGUI】简易Page开发模式
c语言·图像处理·单片机
青衫码上行3 小时前
【Java Web学习 | 第12篇】JavaScript(6)DOM
java·开发语言·前端·javascript·学习
YangYang9YangYan4 小时前
中专生学历提升与职业发展指南
大数据·人工智能·学习·数据分析
深蓝海拓4 小时前
YOLO v11的学习记录(五) 使用自定义数据从头训练一个实例分割的模型
学习·yolo
Gary Studio4 小时前
鋰電池充電芯片學習
学习
法号:行颠4 小时前
Chaos-nano:Arduino Pro Mini 轻量级操作系统解析与实战应用
单片机·mcu·系统架构