【【51单片机的蜂鸣器发声】】

这篇具有很好参考价值的文章主要介绍了【【51单片机的蜂鸣器发声】】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简简单单蜂鸣器,让它发声没问题

我们在设置板子的时候要翻转
翻转IO口是因为使用了步进电机的多余的芯片管脚
我们翻转之后还想让它保持一段时间
就是先翻转500次 Delay(1)之后 就是最小的单位每隔1ms 周期就是2ms 频率就是500HZ文章来源地址https://www.toymoban.com/news/detail-594074.html

main.c

#include <REGX52.H>
#include"Delay.h"
#include"key.h"
#include"Nixie.h"
#include"Buzzer.h"



unsigned char KeyNum;


void main()
{
	Nixie(1,0);
	while(1)
	{
		
		KeyNum=key();
		if(KeyNum)
		{
			
		
			Buzzer_Time(1000);
			Nixie(1,KeyNum);
			}	
					
			
		}

}

key.c

#include <REGX52.H>
#include"Delay.h"
//获取独立按键键码
//无参数
//返回值为按下的那个按键
unsigned char key()
{
	unsigned char keynumber=0;
	if(P3_1==0) { Delay(20);while(P3_1==0);Delay(20);keynumber=1;}
		if(P3_0==0) { Delay(20);while(P3_0==0);Delay(20);keynumber=2;}
		if(P3_2==0) { Delay(20);while(P3_2==0);Delay(20);keynumber=3;}
		if(P3_3==0) { Delay(20);while(P3_3==0);Delay(20);keynumber=4;}
	
	return keynumber;
}

Delay.c

void Delay(unsigned int xms)
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

key.h

#ifndef __KEY_H_
#define __KEY_H_

unsigned char key();

#endif

Delay.h

#ifndef __DELAY_H__
#define __DELAY_H__

void Delay(unsigned int xms);

#endif

Nixie.c

unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//数码管显示子函数
void Nixie(unsigned char Location,Number)
{
	switch(Location)		//位码输出
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];	//段码输出
	//Delay(1);				//显示一段时间
	//P0=0x00;				//段码清0,消影
}

Nixie.h

#ifndef __NIXIE_H__
#define __NIXIE_H__

void Nixie(unsigned char Location,Number);

#endif

Buzzer.h

#ifndef __BUZZER_H_
#define __BUZZER_H_

void Buzzer_Time(unsigned int ms);

#endif

Buzzer.c

#include <REGX52.H>
#include<INTRINS.H>


//蜂鸣器端口   
//蜂鸣器私有延时函数 延时500us



sbit Buzzer=P2^5;

void Buzzer_Delay500us()		//@12.000MHz
{
	unsigned char i;

	_nop_();
	i = 247;
	while (--i);
}

//蜂鸣器发声
//参数是ms 发声时长
//返回值 无 





void Buzzer_Time(unsigned int ms)
  {  
		unsigned int i;
		for(i=0;i<ms*2;i++)
			{
			Buzzer=!Buzzer;
		Buzzer_Delay500us();
			
			}	
			
			
		}

到了这里,关于【【51单片机的蜂鸣器发声】】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

            1. 对系统默认的数据类型进行重定义,u8,u16;         2.延时函数,主要是将传过来的整数进行减减实现延时;         3.还用到了while()循环;         1. 首次定义一个变量,主要是为了延时蜂鸣器响亮的时长;         2.通过while()循环,使得Buzzer_Port产生脉冲信号,从而使蜂

    2024年04月16日
    浏览(45)
  • 【【51单片机蜂鸣器实现起风了】】

    前面的有两个非常关键的点希望兄弟们明白 我一开始也失算了 这里兄弟们注意务必改成int 不然会超出 就会出现播放一半从头开始的情况 下面是两份起风了代码直接附上main.c 因为另外的其实和我之前说的模板都一样复制粘贴就行 为什么是2份因为什么ABCD大调我不懂啊 我看乐

    2024年02月16日
    浏览(114)
  • 【【51单片机的蜂鸣器实现小星星】】

    我们在设置板子的时候要翻转 翻转IO口是因为使用了步进电机的多余的芯片管脚 我们翻转之后还想让它保持一段时间 就是先翻转500次 Delay(1)之后 就是最小的单位每隔1ms 周期就是2ms 频率就是500HZ 蜂鸣器播放音乐 我们首先在前面到现在必须明白一个道理 就是我们的蜂鸣器发

    2024年02月16日
    浏览(47)
  • stm32单片机/51单片机蜂鸣器不响(proteus模拟)

    1提高蜂鸣器电阻,这样根据分压原理,可以提升蜂鸣器2段电压 2更改蜂鸣器的工作电压为更小的值,这个可以通过在proteus内设置探针查看电压值,更改为其值就可以了 我觉得如果不是仿真的话,蜂鸣器额定电压是不能改的,如果电压不够的话好像就只能够选用合适的三极管

    2024年02月11日
    浏览(41)
  • MCU-51:单片机蜂鸣器播放音乐和提示音

    蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定 无源蜂鸣器:内部不带振荡源,需要控制器提供振

    2024年02月02日
    浏览(45)
  • 33、基于51单片机老人防跌倒蜂鸣器报警系统加速度检测

    背景技术 老年人出门由于身体不灵活、视力较差,容易发生跌倒,现用的老年人跌倒报警装置是通过无线对讲系统研发的,它外观精美,自动化程度高,有很强的专业性,但是,设计者忽略了一个问题,因为大多数老年人使用现代化产品不熟练,随着视力、操作能力的下降,

    2023年04月08日
    浏览(82)
  • 【51单片机】:闪灯、流水灯(从左往右)、流水灯(从右往左)、蜂鸣器。

            言归正传,一切都回归本源,从51再来一次,首先就是最简单的点灯大师。         这么些年从51 到  32  再到  arduino  再到  ESP  等等,都是从点灯大师开始的。 于是介绍如下: 闪灯 流水灯(从左往右) 流水灯(从右往左) 蜂鸣器         LED灯的原理:LED是发

    2024年02月11日
    浏览(49)
  • 单片机学习-蜂鸣器如何发出声音

    BEEP =! BEEP    为何使用 非运算,这里面 P2 的管脚默认 有上拉电阻,P2^5 输出高电平 每次循环 非运算一下 为低电平 ,产生那种评率 0 1  0 1  0 1 循环下去 

    2024年02月11日
    浏览(47)
  • 单片机学习-蜂鸣器电子元件

    蜂鸣器是有什么作用的? 蜂鸣器 是 一种 一体化结构 的电子训响器,可以发出声音的电子元器件 蜂鸣器分类? ①压电式蜂鸣器(图左) 称: 无源蜂鸣器 ②电磁式蜂鸣器(图右) 称: 有源蜂鸣器  组成: ①压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣

    2024年02月11日
    浏览(45)
  • 蓝桥杯单片机学习2——蜂鸣器和继电器

    我们上次做了一个流水灯,这次我们来尝试一下控制蜂鸣器和继电器 话不多说,我们直接看原理图 这里我先来看然后控制继电器,想要控制继电器那我们就要先知道怎么继电器的工作原理 [注]这个m1应该是在触点的上方。 对应到原理图上就是这样子,原理图上的RELAY—SPOT就

    2023年04月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包