单片机——蜂鸣器

news/2024/10/30 21:28:18/

1.这部分代码定义了两个新的数据类型,uchar和uint,分别表示无符号字符型和无符号整型。这里使用了#define预处理指令,将uchar和uint分别定义为unsigned char和unsigned int的别名,方便在代码中使用。

另外,还声明了两个变量i和j,i是一个无符号整型变量,j是一个无符号字符型变量。这些变量在程序中用于计数、循环等操作。这里使用了unsigned关键字,将变量定义为无符号类型,即只能表示非负数,可以增加程序的稳定性和可移植性。同时P2.3引脚对应蜂鸣器。
在这里插入图片描述

 #include <reg52.h>#define  uchar unsigned char#define  uint unsigned intuint i	;uchar j ;sbit fengmingqi=P2^3;

2.延时部分
uint k中的变量k是表示延时的时间,单位是毫秒(ms)。在函数delay()中,循环的计算是通过一个嵌套的for循环来实现的。内层的for循环用来控制延时的时间,外层的for循环则用来重复执行内层的循环,以实现总的延时时间。
具体来说,内层的for循环中的变量j用来计数,每循环一次就增加1,当j的值达到230时,for循环结束,就意味着已经延时了一定的时间(因为在运行单片机程序时,每个循环的时间是一定的,因此可以通过控制循环次数来实现精确的延时)。而外层的for循环则用来重复内层的延时操作,即执行多次内层的循环以实现总的延时时间。内层循环的次数由参数k来控制,每执行一次外层的循环,变量i就增加1,直到i的值达到k为止,整个延时过程就结束了。因此,函数delay()的参数k实际上是用来控制延时时间的。在main()函数中调用delay()时,传入的参数值就是控制LED灯闪烁间隔的时间,也就是1秒,即delay(1000)。内层循环中的空语句{ ; }不做任何操作,只是用来占用一定的CPU时间,产生一个粗略的延时效果。

 void delay(uint k){for (i=0;i<k;i++){for (j=0;j<113;j++){;}}}

3.主函数
进入while循环,开始执行主程序。
将LED灯的引脚P2.3置为低电平,即让蜂鸣器响起来。调用延时函数delay(1000),延时1秒钟。将LED灯的引脚P2.3置为高电平,即关闭蜂鸣器。再次调用延时函数delay(1000),延时1秒钟。回到while循环的开始处,继续亮灯灭灯操作,使LED灯每隔一秒钟闪烁一次。
其中while(1)是一个死循环,它的意思是在程序运行过程中一直执行循环内的语句,因为条件表达式的值始终为真(非零),所以这个循环将无限执行下去,直到单片机复位或程序被手动停止

   void main (){while(1){fengmingqi=0;delay(1000);fengmingqi=1;delay(1000);}}

http://www.ppmy.cn/news/359620.html

相关文章

tcd1304驱动

参照 地址&#xff1a; https://tcd1304.wordpress.com/ https://zzi.io/?p1091 fM – the master clock, must run at 0.8-4 MHz SH – the shift gate ICG – the integration clear gate fm引脚主要是时钟引脚 &#xff0c;可以输出0.8到4Mhz sh ICG FM 单片机都是用定时…

蜂鸣器原理与驱动方式

目录 一、蜂鸣器简介 二、有源蜂鸣器驱动 三、无源蜂鸣器驱动 频率计算方法 四、蜂鸣器程序实现 一、蜂鸣器简介 蜂鸣器是一种一体化结构的电子讯响器&#xff0c;采用直流电压供电&#xff0c;广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机…

蜂鸣器、风扇、震动马达

本实验采用STM32MP157A 头文件&#xff1a; #ifndef __PWM_H__ #define __PWM_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_tim.h" #include "stm32mp1xx_rcc.h" //仨头文件里是别人封装好的地址结构体和宏定义//初始化 void pwm_i…

「精研科技」× 企企通,全球MIM龙头借助采购供应商数字化向多领域突破

近日&#xff0c;金属粉末注射成型&#xff08;MIM&#xff09;龙头企业江苏精研科技股份有限公司&#xff08;以下简称“精研科技”&#xff09;与企企通达成合作。双方将共同构建完整的采购管理和供应商协同平台&#xff0c;加强供应商管理&#xff0c;提高采购效率&#xff…

灵动新品牌国产32位单片机MM32SPIN360C 电机控制专用

通用32位mcu产品及解决方案供应商,提供MM32 MCU基于ARM Cortex-M系列内核200多个型号&#xff0c;MM32 MCU被广泛应用于工业、电机、家电、消费玩具、手机平板配件、医疗、交通出行、显示及交互等领域。灵动可以为客户提供从优异芯片产品到核心算法和从完备参考设计方案到整机开…

灵动微再添12寸晶圆新品MM32F0040系列32位MCU

自2020年开始的半导体缺货持续时间长&#xff0c;到目前没有明显好转的趋势。为解决产能受限的问题&#xff0c;灵动微电子从2021年初就开始全力将工艺切换到产能更为充裕的12寸晶圆上&#xff0c;仅半年时间便完成了数款12寸晶圆新产品的流片&#xff0c;并全部实现一次流片即…

Golang | Web开发之Gin路由访问日志自定义输出实践

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折&#xf…

一公司禁止婚外情和出轨,称如果员工出现此类情况,将予以辞退处理

大家好&#xff01;我是老洪。 刚看到一则有意思的资讯。 一家公司发布了禁止婚外情和出轨的通知&#xff0c;称如果员工出现此类情况&#xff0c;将予以辞退处理。 这份通知称&#xff0c;公司已婚员工如有婚外情、出轨、包养小三等不良情况&#xff0c;将辞退处理。 公司竟然…