51单片机~蜂鸣器,数码管的使用

蜂鸣器:是一种一体化结构的电子讯响器,采用直流电压供电,分为压电式蜂鸣器和电磁式蜂鸣器(无源和有源),51开发板一般是压电式的。

根据网上查的资料可以知道无源和有源的区别:

⑴有无震荡源

无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。

⑵价格不同

有源蜂鸣器往往比无源蜂鸣器贵,就是因为里面多个震荡电路。

怎么区分?有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。

无源蜂鸣器通过脉冲频率才能发声

51单片机~蜂鸣器,数码管的使用_第1张图片

51单片机~蜂鸣器,数码管的使用_第2张图片

#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16;

sbit BEEP=P2^5;
void delay_10us(u16 ten_us)
{
	while(ten_us--);
}
void main()
{
	u16 i=2000;

	while(1)
	{
		while(i--)
		{
			
			BEEP=!BEEP;
			delay_10us(100);	
		}
		i=0;//赋0就不会再响了
		BEEP=1;//这赋0或者1都行
	}
	
	while(1);
}

数码管:

51单片机~蜂鸣器,数码管的使用_第3张图片

51单片机~蜂鸣器,数码管的使用_第4张图片

51单片机~蜂鸣器,数码管的使用_第5张图片

 51单片机~蜂鸣器,数码管的使用_第6张图片51单片机~蜂鸣器,数码管的使用_第7张图片

静态数码管:

 单个数码管循环输出0-9代码:

#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;

#define SMG_A_F_PORT P0//宏定义数码管P0端口
u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
							0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//定义数组存放0-F段码,gsmg中g代表全局变量
void delay_10us(u16 ten_us)
{
	while(ten_us--);
}
void main()
{
	
	u8 i=0;
	u8 sz=sizeof(gsmg_code)/sizeof(gsmg_code[0]);//数组元素个数
	
	while(1)
	{
		for(i=0;i

 实验现象:https://b23.tv/rZFXi3D

动态数码管:静态和动态数码管本质区别是:静态数码管中只要给了段码数码管就一定工作(显示只取决于段码端),动态数码管中段码端给了段码值后还需要COM端配合才能点亮数码管

快速切换工作的数码管,动态数码管利用了人眼的视觉暂留,则人看到的是所有的数码管都在亮(其实亮度是比静态驱动低的)。肉眼看到的范围是20-50ms

51单片机~蜂鸣器,数码管的使用_第8张图片

51单片机~蜂鸣器,数码管的使用_第9张图片

要学会看芯片手册!!!!(虽然我还看不懂)

3-8译码器芯片:

51单片机~蜂鸣器,数码管的使用_第10张图片51单片机~蜂鸣器,数码管的使用_第11张图片

 头上有一横表示在低电平时有效

 真值:L:表示低电平0        H:表示高电平1      X:表示无论是高电平还是低电平都不影响真值

51单片机~蜂鸣器,数码管的使用_第12张图片

 代码:

#include "reg52.h"


typedef unsigned int u16;
typedef unsigned char u8;

#define SMG_A0_F_PORT P0//宏定义数码管P0端口
sbit A0=P2^2;
sbit A1=P2^3;
sbit A2=P2^4;
u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
			  0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//定义数组存放0-F段码,gsmg中g代表全局变量
void delay_10us(u16 ten_us)
{
	while(ten_us--);
}
void main()
{
	u8 i=0;
	while(1)
	{
		for(i=0;i<8;i++)
		{
			switch(i)
			{
				case 0:A0=1;A1=1;A2=1;break;//Y7//板子从左边数第一个数码管,下面以此类推
				case 1:A0=0;A1=1;A2=1;break;//Y6
				case 2:A0=1;A1=0;A2=1;break;//Y5
				case 3:A0=0;A1=0;A2=1;break;//Y4
				case 4:A0=1;A1=1;A2=0;break;//Y3
				case 5:A0=0;A1=1;A2=0;break;//Y2
				case 6:A0=1;A1=0;A2=0;break;//Y1
				case 7:A0=0;A1=0;A2=0;break;//Y0
			}
			SMG_A0_F_PORT=gsmg_code[i];
			delay_10us(100);//延时1毫秒左右
			SMG_A0_F_PORT=0x00;//消影
			
		}
	}
	while(1);
}

没消影的实验现象:

                                 51单片机~蜂鸣器,数码管的使用_第13张图片

 消影后:

51单片机~蜂鸣器,数码管的使用_第14张图片

你可能感兴趣的:(51单片机,51单片机,单片机,嵌入式硬件)