蓝桥杯单片机学习13 | 您所在的位置:网站首页 › 最高端的单片机 › 蓝桥杯单片机学习13 |
NE555
简介引脚图原理图真值表工作原理频率测量原理定时器测量频率方法代码实现总结(一堆废话)
简介
NE555是一种高度稳定的控制器,内部用三个阻值为5KΩ的电阻分压,因此叫做555芯片。能够产生精确的定时脉冲。单稳态工作时,延时由一个外部电阻和一个电容控制。工作稳定,频率和占空比由两个外部电阻和一个电容器精确控制。具有以下特点: 【1】:大电流驱动能力(200mA) 【2】:占空比可调 【3】:温度稳定性高,灵敏度高 【4】:定时范围广,(微妙级~小时级) 【5】:广泛应用于精确定时,产生脉冲、方波信号 引脚图
前面讲过,NE555芯片的2脚和6脚以此两引脚电平保持一致,所以下表直接给出了电平一致的情况,忽略了其他不存在的情况。 4引脚(复位引脚)6引脚(输出)2引脚(输入)3引脚(输出)0XX01>2/3Vcc>2/3Vcc011/3Vcc < Vth Timer_Init(); //定时器初始化 LS138_Init(); //和LS138相关部分初始化 } //数码管显示函数,Fre为需要显示的频率值 void SEG_Show(unsigned int Fre) { if(Fre%10) //显示个位 { SEG_Write(7,Fre%10); if(Fre/10%10) //显示十位 { SEG_Write(6,Fre/10%10); if(Fre/100%10) //显示百位 { SEG_Write(5,Fre/100%10); if(Fre/1000%10) //显示千位 { SEG_Write(4,Fre/1000%10); if(Fre/10000%10) //显示万位 { SEG_Write(3,Fre/10000%10); } } } } } } main() { Init(); //初始化函数调用 while(1) { SEG_Show(Frequence); //显示频率 } } //定时器0中断服务函数 void Timer0_Handler() interrupt 1 { Count++; //频率加一 } //定时器1中断服务函数,,每1ms触发一次 void Timer1_Handler() interrupt 3 { static int i =0; i++; if(i>=1000) //1s进来一次 { Frequence = Count; //读取当前的频率值 Count = 0; //Count清零 i = 0; //i清零 } }实现原理如下: 定时器0设置为计数器,八位自动重装载模式,初值为0xFF,即每捕获到一个脉冲信号,触发一次定时器0中断,Count++;定时器1设置为定时器十六位自动重装载,初值位65535-1000,即每1ms触发一次,内部变量i++;当i >=1000,即时间到达1S,读取Conut的值,为测量到的频率,通过读取到的频率,通过数码管显示出来。调节Rb3的阻值,改变产生的方波信号频率,测量得到的频率随之改变。 总结(一堆废话)到这里,我们蓝桥杯单片机上常考的内容就已经全部介绍完了,接下来我会出几期关于历年省赛题目的实现示例、及代码思路,然后就结束蓝桥杯单片机学习的系列………… 再然后就是关于,以后会不会继续写博客的事情。这里我想讲一些题外话,或者说是废话………… 起初,我开始写蓝桥杯单片机学习的博客,主要目的就是记录我自己的学习过程,希望可以那个奖什么的………… 到后来,写博客成为了我学习的一部分,我发现我有很多的问题可以在写博客的过程中解决,我学到了很多………… 与此同时,我也渐渐的不知所措,不知道接下来该怎么办,是要继续写,还是停笔封书,不知道我的内容会不会有人看,会不会有人喜欢,总之,我迷茫了………… 如果可以的话,给我点建议,留下你们的看法 |
CopyRight 2018-2019 实验室设备网 版权所有 |