蓝桥杯单片机快速开发笔记——NE555测频

一、原理分析

 

3fcf3a0afc2e4370a7b32c35078cf7e4.png

08fac7fdfc774e05a9c73a975e410296.png

        NE555作为一种多功能集成电路,在信号发生和频率测量方面具有广泛的应用。通过合理配置和连接外部元件,可以实现不同类型的信号发生和频率测量功能。

原理:

  1. 信号发生器

    • NE555可以配置为多种不同的振荡器电路,包括单稳态(单脉冲)和多谐振荡器(方波、正弦波等)。
    • 在单稳态模式下,NE555可以生成一个脉冲信号,当输入触发脉冲时,输出会产生一个固定宽度的脉冲。
    • 在多谐振荡器模式下,NE555可以生成稳定的方波信号,其频率由外部电路元件(电阻和电容)决定。
  2. 频率测量

    • NE555可以用作频率测量器的基础元件,通过测量NE555输出的方波信号的周期来计算频率。
    • 频率测量的原理是利用NE555输出的方波信号的周期与频率成反比的关系,通过测量周期来计算频率。

应用:

  1. 信号发生器

    • NE555可以用于产生各种频率的信号,常用于音频信号发生器、脉冲信号发生器等。
    • 在电子实验和原型设计中,NE555经常被用作简单的信号发生器,用于测试和验证电路功能。
  2. 频率测量

    • NE555可以用作简单的频率测量器,通过测量NE555输出的方波信号的周期来计算频率。
    • 频率测量在电子实验、通信领域和控制系统中具有广泛的应用,用于测量信号的频率和周期。

考点分析

  1. 使用短路环将J13中的NAL与P34引脚短接,将NE555产生的信号输入到单片机的P34引脚。

  2. NE555电路是一个信号发生器,其输出信号连接到单片机的P34引脚。

  3. 通过调节Rb3可调电位器,可以改变该信号的频率大小。

  4. 利用定时器/计数器来测量信号的频率。

二、思维导图

5d9df40400174998934b61be5f4fc295.png

定时器设置部分可以参考本栏:蓝桥杯单片机快速开发笔记——定时器-CSDN博客

三、示例框架

unsigned int dat_f = 0;
unsigned int count_f = 0;
unsigned char count_t = 0;

#define TSMG 500

void delay_smg(unsigned int t)
{
	while(t--);
}

void hc573(unsigned char channel, unsigned char dat)
{
	P2 = (P2 & 0x1f) | 0x00;
	P0 = dat;
	
	switch(channel)
	{
		case 4:
			P2 = (P2 & 0x1f) | 0x80;   //LED  0亮
		break;
		case 5:
			P2 = (P2 & 0x1f) | 0xa0;   //蜂鸣器、继电器  1开
		break;
		case 6:
			P2 = (P2 & 0x1f) | 0xc0;   //数码管位选  1亮
		break;
		case 7:
			P2 = (P2 & 0x1f) | 0xe0;   //数码管段选  0亮
		break;
		
	}
	
	P2 = (P2 & 0x1f) | 0x00;
	
}

code unsigned char Seg_Table[] = 
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //9
0x88, //A
0x83, //b
0xc6, //C
0xa1, //d
0x86, //E
0x8e //F
};

void smg_all(unsigned char dat)
{
	hc573(6, 0xff);
	hc573(7, dat);
}

void smg_bit(unsigned char pos, unsigned char dat)
{
	hc573(6, 0x01 << pos);
	hc573(7, dat);
	delay_smg(TSMG);
	hc573(6, 0x01 << pos);
	hc573(7, 0xff);
}

void smg_display()
{
	if(dat_f > 99999)
	{
		smg_bit(2, Seg_Table[(dat_f / 100000) % 10]);
	}
	
	if(dat_f > 9999)
	{
		smg_bit(3, Seg_Table[(dat_f / 10000) % 10]);
	}
	
	if(dat_f > 999)
	{
		smg_bit(4, Seg_Table[(dat_f / 1000) % 10]);
	}
	
	if(dat_f > 99)
	{
		smg_bit(5, Seg_Table[(dat_f / 100) % 10]);
	}
	
	if(dat_f > 9)
	{
		smg_bit(6, Seg_Table[(dat_f / 10) % 10]);
	}
	
	if(dat_f > 0)
	{
		smg_bit(7, Seg_Table[dat_f % 10]);
	}
}


void init_sys()
{
	hc573(5, 0x00);
	smg_all(0xff);
	Init_Timer();
}

void Init_Timer()
{
	TH0 = 0xff;        
	TL0 = 0xff;
	
	TH1 = (65536 - 50000) / 256;        
	TL1 = (65536 - 50000) % 256;
	
	TMOD = 0x16;     //0x16 = 0001 0110
	                 //定时器1用方式1,16位定时器;
	                 //定时器0用方式2,自动重装载8位计数器
	
    ET0 = 1;
    ET1 = 1;
	EA = 1;
	
	TR0 = 1;
	TR1 = 1;
}

void Service_T0() interrupt 1
{
	count_f++;
}
 
void Service_T1() interrupt 3
{
    TH1 = (65536 - 50000) / 256;        
	TL1 = (65536 - 50000) % 256;
	count_t++;
	if(count_t == 20)
	{
		dat_f = count_f;
		count_f = 0;
		count_t = 0;
	}
}

void main()
{
	init_sys();
	while(1)
	{
		smg_display();
	}
}

        通过NE555产生的信号频率来测量并显示在数码管上,通过定时器来计算频率并更新显示。

  1. 定义了全局变量 dat_fcount_f 和 count_t,分别用于存储数据、计数和时间。

  2. 定义了宏 TSMG 用于设置数码管显示的延时时间。

  3. 实现了 delay_smg 函数用于实现延时功能。

  4. 实现了 hc573 函数用于控制数码管、LED、蜂鸣器等外设的显示和控制。

  5. 定义了数码管显示的编码表 Seg_Table,包含了0到F的显示编码。

  6. 实现了 smg_allsmg_bit 和 smg_display 函数用于数码管的全显、位显和数据显示。

  7. 初始化系统的函数 init_sys 中设置了初始状态和调用了 Init_Timer 函数初始化定时器。

  8. Init_Timer 函数初始化了定时器0和定时器1,并设置了定时器的工作模式和中断使能。

  9. 定时器0中断服务函数 Service_T0 用于计数。

  10. 定时器1中断服务函数 Service_T1 用于定时并更新数码管显示的数据。在每20次中断后,将计数值赋给 dat_f,并清零计数器。

  11. 在 main 函数中初始化系统并进入一个无限循环,不断更新数码管显示。

 

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
NE555频率计算器是一种基于NE555定时器芯片设计的电子仪器,用于测量和计算电路中的频率。NE555是一种经典的定时器/脉冲宽度调制器集成电路,常被用于各种电子设备和电路中。 NE555频率计算器的工作原理是通过测量一个周期内的脉冲数来计算频率。NE555芯片的输出引脚是一个方波信号,频率与电路中的元件参数相关。 在NE555频率计算器中,通过选择合适的电阻和电容值,可以设置一个特定的时间常数。NE555芯片根据这个时间常数控制输出方波的频率。通常,NE555频率计算器使用一个旋钮或按键来调节电阻和电容值,从而实现对频率的调节。 使用NE555频率计算器时,首先将需要测量频率的电路连接到输入引脚。然后,通过设置电阻电容值,调节频率计算器使其与电路中的频率相适应。当连接启动引脚时,NE555芯片开始工作,输出方波信号。利用内置的计数器或外部计数器,可以方便地读取并记录周期内的脉冲数。 接下来,将记录的脉冲数除以时间常数,即可得到频率的计算结果。根据输入电路的特性以及所使用的电阻和电容值,NE555频率计算器可提供准确的频率测量结果。 总之,NE555频率计算器是一种基于NE555定时器芯片的工具,用于测量和计算电路中的频率。通过调节电阻和电容值,可以准确地测量和计算频率,并在实际电子电路设计和调试中具有广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木不迷茫(˵¯͒¯͒˵)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值