首页 > 其他分享 >17-基于NE555的信号发生与频率测量

17-基于NE555的信号发生与频率测量

时间:2023-10-21 22:44:06浏览次数:34  
标签:定时器 17 引脚 NE555 dat 电路 频率 SMG

555定时器的基本应用

1. 555定时器的简介

555定时器是美国Signetics公司1972年研制的用于取代机械式定时器的中规模集成电路,因输入端设计有三个5kΩ的电阻而得名

555定时器由于其易用性、低廉的价格和良好的可靠性,在波形的产生与变换、测量与控制、家用电器、电子玩具等领域都得到了应用

利用555定时器能极方便的构成施密特触发电路、单稳态电路和多谐震荡电路

2.555定时器的电路结构

20231021202818

由上可知该电路输入端是由3个5kΩ的电阻串联

C1和C2为两个电压比较器,比较的是TH(VI1的输入)与VR1参考电压之间的大小,C2比较器比较的式VR2参考电压与VI2之间的大小关系,之后两个电压比较器的比较结果进行RS锁存器,输出经过一个反向器得到Vo,以及下面的一个放电NPN三极管得到一个OC门输出

555定时器的封装结构图

不同的原理引脚一样,所展现的名字有些许差别

20231021203151

由上可知此电路封装图对应上电路结构的8个引脚

引脚功能如下:

1号引脚 Ground 接地
8号引脚 Power Supply 接电源
2号引脚\(\overline{TR}\) Trigger (低触发器)低于参考电压输出高电平
6号引脚TH Threshold(高触发端)高于参考电压,VR1有效(即输出高电平)
3号引脚OUT OUT,输出Vo
7号引脚DISC Discharge(OC门,承受较大电流),经上拉电阻接电源,输出与Vo相同
4号引脚\(\overline{RD}\)置零输入端 当接入低电平时,输出直接置为"0"
电路正常工作时,该引脚应接高电平
5号引脚CTRL电压控制端 接外接电压,改变参考电压VR1、VR2的值,该引脚不用时,串入一只0.01μF电容接地,以防高频干扰

555定时器的功能表

20231021212748

【题目要求】

在CT107D单片机综合实训平台上,利用NE555产生方波信号并测量其频率,具体功能要求如下:

[1] 上电开机运行时,关闭蜂鸣器、继电器和8个LED指示灯。

[2] 用短路环将J3中的SIGNAL与P34短接,NE555发生的信号输入到单片机的P34引脚。

[3]单片机测量信号频率,并显示在数码管中,频率数据显示用6位数码管,单位是Hz,当显示长度不足6位时,未使用到的数码管熄灭,在最左边的1位数码管用“F”作为提示符。显示格式如下:

20190406124837867

【特别提示】
本题是第10届蓝桥杯省赛编程题目的一个部分。

  因为很多考生反映,因为不懂NE555芯片,所以不会做这个题目。其实你不需要懂NE555芯片也可能会做这个题目,对于蓝桥杯竞赛平台CT107D板子上NE555电路,你只需要知道2点就可以:

[1] NE555电路是一个信号发生电路,其信号输出接到单片机的P34引脚,即单片机的T0引脚。

[2] 该信号的频率大小可以通过Rb3可调电位器改变。

 因为NE555芯片基本上就是一个纯硬件的设计,没有可编程的内容,因此,一点电路确定了,就没有变化了,单片机也不需要对它有任何的配置。所以,在整个单片机测量频率的过程中,跟NE555芯片一点儿关系都没有,实际上考查的是你应用定时/计数器测量信号频率的技术。

参考代码如下:

#include <REGX52.H>

unsigned char count_t;
unsigned  int dat_f,count_f;
// 无小数点
unsigned char SMG_NODot[10] = {
	0xC0,          //1100 0000  0    
	0xf9,		   //1111 1001  1   
	0xa4,		   //1010 0100  2
	0xb0,          //1011 0000  3
	0x99,          //1001 1001  4
	0x92,          //1001 0010  5
	0x82,          //1000 0010  6
	0xf8,          //1111 1000  7
	0x80,          //1000 0000  8
	0x90           //1001 0000  9
};


void _74HC138(unsigned char n) {
	switch(n) {
		case 4:
			P2 = (P2 & 0x1f) | 0x80;
			break;
		case 5:
			P2 = (P2 & 0x1f) | 0xa0;
			break;
		case 6:
			P2 = (P2 & 0x1f) | 0xc0;
			break;
		case 7:
			P2 = (P2 & 0x1f) | 0xe0;
			break;
	}
}
void Delay(unsigned int t) {
	while(t--);
}
void Display_SMG_Bit(unsigned char pos,unsigned char dat) {
	_74HC138(7);
	P0 = 0xff;
	_74HC138(6);
	P0 = 0x01 << pos;
	_74HC138(7);
	P0 = dat;
}

void Display_All(unsigned char dat) {
	_74HC138(6);
	P0 = 0xff;
	_74HC138(7);
	P0 = dat;
}



void Timer_Init(void) {
	// 定时器1为定时器
	// 定时器0为计数器
	TMOD =  0x16;      // 0001  0110
	TL0 = 0xff;
	TH0 = 0xff;
	
	TH1 = (65536 - 50000) / 256;
	TL1 = (65536 - 50000) % 256;
	
	ET0 = 1;
	ET1 = 1;
	EA = 1;
	TR0 = 1;
	TR1 = 1;
	
}

void Timer0_Rountine() interrupt 1 {
	count_f++;
	
}

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

void Display_SMG(void) {
	Display_SMG_Bit(0,0x8e);  // 1000 1110
	Delay(500);
	
	//Display_SMG_Bit(1,0xff);  
	//Delay(500);
	//Display_SMG_Bit(2,0xff);  
	//Delay(500);
	
	if(dat_f > 9999) {
		Display_SMG_Bit(3,SMG_NODot[dat_f/10000]);  
		Delay(500);
	}
	if(dat_f > 999) {
		Display_SMG_Bit(4,SMG_NODot[(dat_f/1000)%10]);  
		Delay(500);
	}
	if(dat_f > 99) {  
		Display_SMG_Bit(5,SMG_NODot[(dat_f/100)%10]);  
		Delay(500);
	}
	if(dat_f > 9) {
		Display_SMG_Bit(6,SMG_NODot[(dat_f/10)%10]);  
		Delay(500);
	}
		Display_SMG_Bit(7,SMG_NODot[dat_f%10]);  
		Delay(500);
	
	
		Display_All(0xff);
	
}

void main(void) {
	_74HC138(4);
	P0 = 0xff;
	_74HC138(5);
	P0 = 0x00;
	
	Timer_Init();
	
	while(1) {
		Display_SMG(); 
	}
}

标签:定时器,17,引脚,NE555,dat,电路,频率,SMG
From: https://www.cnblogs.com/bky111/p/17779702.html

相关文章

  • 【洛谷 8647】[蓝桥杯 2017 省 AB] 分巧克力
    #[蓝桥杯2017省AB]分巧克力##题目描述儿童节那天有$K$位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有$N$块巧克力,其中第$i$块是$H_i\timesW_i$的方格组成的长方形。为了公平起见,小明需要从这$N$块巧克力中切出$K$块巧克力分给小......
  • 2023-2024-1 20231317《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第四周作业)这个作业的目标<《C语言程序设计第三章》>作业正文...本博客链接https://www.cnblogs.com/......
  • 10.17 Java异常处理1
     eg:importjavax.swing.*;classAboutException{publicstaticvoidmain(String[]a){inti=1,j=0,k;k=i/j;try{k=i/j;//Causesdivision-by-zeroexception//thrownewException("Hello.Exception!&quo......
  • [LeetCode] 1726. Tuple with Same Product
    Givenanarray nums of distinct positiveintegers,return thenumberoftuples (a,b,c,d) suchthat a*b=c*d where a, b, c,and d areelementsof nums,and a!=b!=c!=d.Example1:Input:nums=[2,3,4,6]Output:8Explanation:Ther......
  • 文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题
    二、用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT。文心一言:在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构。对于一组同构对象,我们可以使用一个数组来存储它们的指针,每个指针指向一个对象。下面是使用Go语言实现ALLOCATE-OBJEC......
  • 文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题
    二、用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT。文心一言:在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构。对于一组同构对象,我们可以使用一个数组来存储它们的指针,每个指针指向一个对象。下面是使用Go语言实现ALLOCATE-OB......
  • 10.17日
    今日无事,简单度过。 ......
  • dolphinscheduler报错:Connect to 192.168.xx.xx:8088 [192.168.xx.xx/110.173.196.1]
    报错信息:在dophin中抽取mysql的数据到hive中报错[ERROR]2023-10-2015:33:10.461org.apache.dolphinscheduler.common.utils.HttpUtils:[73]-Connectto192.168.xx.xx:8088[192.168.xx.xx/110.173.196.1]failed:connecttimedoutorg.apache.http.conn.ConnectTimeout......
  • cuda visual studio integration vs2017安装失败
    版本不匹配?还是之前安装了旧的nvidia程序?参考1:https://zhuanlan.zhihu.com/p/150579521?utm_id=0()参考2:https://blog.csdn.net/qq_40963335/article/details/104907922(有用)删除任何已安装的nvidia相关程序包。再安装cuda就不报错了。 (以下信息仅适用于NsightVisualStudio功......
  • 1726. 同积元组
    1.题目介绍2.题解2.1方法一:哈希统计思路与算法假设当前给定元组(a,b,c,d)(a,b,c,d)(a,b,c,d)满足a×b=c×d,且此时满足a≠b≠c≠d,则可以知道该元组可以按照不同顺序组合,组成8个不同的元组,且这个8个元组均满足题目要求:(a,b,c,d),(a,b,d,c)(b,a,c,d),(b,a,c,d)(c,d,a......