555定时器构成多谐振荡器
多谐振荡器由555定时器组成,如下图所示,
工作原理:电路无稳态,只有两个暂稳态,无需触发信号,使用电源VCC通过R1和R2向电容器C充电Uc逐渐上升,上升到2VCC/3时,Uo电容器C通过电阻跳转到低电平,放电端D导通R二、D端放电,使uC下降,降到VCC/3时,Uo跳转到高电平,D端截止,电源VCC又通过R1和R2向电容器C充电。这样的循环,振荡,电容器C在VCC/3和2VCC/3充放电,输出连续矩形脉冲,其波形如图所示(b)所示。
多谐振荡器两个暂稳态的维持时间取决于RC充放电电路参数。暂稳态Ⅰ维护时间,即输出Vo正脉冲宽度T1≈0.7(R1 R2)C;暂稳态Ⅱ维护时间,即输出Vo负脉冲宽度T2≈0.7R2C。因此,振荡周期T=T1 T2=0.7(R1 2R2)C,振荡频率f=1/T。正脉冲宽度T1与振荡周期T之比称矩形波的占空比D,可获得上述条件D=(R1 R2)/(R1 2R2),若使R2>>R1,则D≈1/2,即矩形波(方波),输出信号的正负脉冲宽度相等。
所以使用555定时器测电容的C=1.44/F(R1 2R2)
二、51单片机计数器测脉冲频率
采用定时器中断和定时器计数、定时器计数、定时器中断1秒、1秒内测量的脉冲数(或下降沿数)。
晶振频率12M,使用定时器1秒定时,使用定时器1秒T0脚定时器0做计数器,按键int触发后开始计数脉冲
void sys_init() { ET0=1; ET1=1; TMOD=0x16; TH0=0xff; TL0=0xff; TR0=0; TH1=(65536-50000)/256; TL1=(65536-50000)%6; TR1=0; IT0=1; EX0=1; EA=1; } void INT0_1sr()interrupt 0 { count=0; time=0; IT0=0; delay_ms(10); TH0 = TL0 =0xff; TH1=(65536-50000)/256; TL1=(65536-50000)%6; TR1=1; TR0=1; } void TM0_1sr()interrupt 1 { count ; } void time1() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%6; time ; if(time==20) { read_s=1; TR1=0; TR0=0; } }
按下按钮后,当read_s=1时,count就是T0脚脉冲频率。
三、proteus仿真
添加上LCD1602显示,自动换档功能获得以下电路:
proteus和程序源码:
https://download.csdn.net/download/hestering/85752982