单片机~运算放大器控制语音控制电路http://www.Sina.com/http://www.Sina.com /说明:使用时v与V-之间无压差不进行电路放大,有压差则为运算放大器
)1)单电源: V V-时,输出1 (输出电压为1表示的VCC(VCC若为多少伏则输出多少伏) ),vvv-时,输出0输出0V。
)2) 2电源时)连接的正电压和伏电压(正负分别表示1和0 ) http://www.Sina.com/http://www.Sina.com /
(一)驻极体话筒:
(二)运算放大器:
3 .综合起来,Vout=VIn/VR1VR1 VIn/VR1VRF
AV=1 RF/R1 (简化上式得到倍率与v相比放大了多少倍) ) ) ) ) ) ) ) ) )。
因此,通过调整R1和RF电阻,倍率http://www.Sina.com/http://www.Sina.com /
2 .原理上,负反馈同样与V-连接,V=V-,因此在R1之后连接GND (下图),因此Vout=VRF,V-流过R1时电压为0,因此I=v-/R1=
由于电流不流过运算放大器,因此RF的电流与R1电流相同(相当于在Vout中流出)。
3 .综上所述,Vout=-VIn/R1*RF (输出为负)
AV=-RF/R1 (3)负反馈:
根据断断续续和虚短的原理:
vin=v=v-=vout http://www.Sina.com /
注意前提条件:
R2=R3;
射频RF=R1; 3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /
电流流动:
(4)运算放大器乘法运算~同向比例放大器:注意前提:
R2=R4;
射频RF=R3;
解释:由前提可知,v为R4电压=V-;
此外,由于R3=RF,因此v-=(vin2vout )/2; 即=V=Vin1/2;
最终得到Vout=Vin1-Vin2;解释:1. 当负反馈电路接上时,Vout的输出电压(就是Vout到接地的电路电压)Vout==VRF+VR1,由于负反馈接在V-,所以可以使用电流求电压。
如果不知道就好: vout=-RC[d(vin )/dt; * 2. 由于运放使用时有虚短和续断,所以V+和V-无电流流入,且V+电压 = V-电压 =VIn(自己设的,把V+电压赋值过来),这个电压就是R1上的结点电压,下面是GND,所以R1的电压就是VIn
同样,记住结果就可以了。 http://www.Sina.com/http://www.Sina.com /轨道对轨道:
1 .输出导轨对导轨:
2 .输入轨道对轨道(别名共模电压范围)的意思是Vin的偏置值必须在VSS-1.5V以内,不能大于。
输出电流:http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /
输入失调电压温度漂移:
输入失调电流温度漂移:反向比例放大器:
(五)NE555时基电路芯片说明:注意红字,电容抗干扰用,RST复位电路要接高电平,不能让其为0,,引脚5如果不需要用来调节V-电压的话就要接地加电容抗干扰。
三极管导通时,6,7两个引脚会变成0V,截至时是5V(接下图解释)。
自己要学会分析:
话筒传感器驱动电路分析:
对于芯片来说:
首先,话筒内部震动电容检测到声音信号后将电路接通到NE555的第一个运放的V-上,然后Vout输出和第一个V-连接并将第一个运放的Vout联通在第二个运放上Vin2-,之后同样对第二个运放进行相同处理。最后导出电路到KSIN(口哨)和HTZS(掌声)进行输出。
之后由于两个运放的电路都放大RF/R1=10倍,所以叠加起来就是100倍。
注意:V+为什么要VCC和GND中间还带两个电阻,导致两个运放V+输出结为2.5V:
是因为如果低的话输出0就达不到双电源的效果,所以将X轴提升到2.5V的位置,这样就可相等于两个电源供电了。
声控传感器代码: #include"reg52.h"typedef signed char int8;typedef signed int int16;typedef signed long int32;typedef unsigned char uint8; //字符型typedef unsigned int uint16;typedef unsigned long uint32;sbit GK = P1 ^ 7; //光控模块sbit SK = P1 ^ 6; //声控模块bit SK_flag; //声控触发标志位sbit JDQ = P2 ^ 0;sbit SHIFT_CLOCK_595 = P1 ^ 4; //74HC595sbit data_A_595 = P1 ^ 0;sbit LATCH_CLOCK_595 = P2 ^ 3;void delay(uint16 x_ms) //延时毫秒{uint16 i, j;for (i = x_ms; i > 0; i--)for (j = 114; j > 0; j--);}void xp74HC595(uint16 dat){uint16 i;for (i = 0; i < 8; i++){data_A_595 = (dat << i) & 0X80;SHIFT_CLOCK_595 = 0;//时钟上升沿SHIFT_CLOCK_595 = 1;}LATCH_CLOCK_595 = 0; //给锁存器脉冲,上升沿LATCH_CLOCK_595 = 1;}void main(void){P1=0XFF;xp74HC595(0X40);xp74HC595(0X00); //关电器GK =1;SK =1;SK_flag = 0; //初始化while(1){if(SK==1){delay(10);if(SK==1){SK_flag = ~ SK_flag; //取反if(SK_flag==1) xp74HC595(0X08);else{ xp74HC595(0X00); delay(300);} }}}}