基于51单片机的程控增益放大器设计报告
- 格式:docx
- 大小:906.43 KB
- 文档页数:17
基于51单片机的程控增益放大器设计报告一、研究内容及系统功能运算放大电路在各种仪器仪表中能够完成小信号放大电路,本设计旨在利用单片机实现与数字电位器进行I2C通信,控制数字电位器输出,且能显示输出增益变化。
增益可控放大器可由基本运算放大器、数字电位器和控制逻辑组成。
本次设计要求实现以下功能:1、利用单片机、数字电位器、运算放大器设计一个增益可控及能够显示增益变化的电路。
增益变化范围1~50,步进为1。
2、提交设计硬件电路图及软件编程代码;二、程控增益放大器硬件电路设计为了能更好的了解程控增益放大器的原理,本章首先给出设计方案并介绍了程控增益放大器的基本原理,然后对其各模块进行了分析。
本设计程控增益放大器硬件电路的设计主要包含四个模块:电源模块、电路控制模块、增益放大模块以及液晶显示模块,其设计结构图如图2-1所示:图2-1 程控增益放大器设计结构图2.1 电源模块本设计电源模块包含四个部分:电源变压器、整流电路、滤波电路和稳压电路,电源模块原理框图及直流稳压电源波形变换图参见图2-2:图2-2 电源模块原理框图2.2.2 电源模块硬件电路设计本设计中,电源模块主要需要生+12V 、-12V 以及+5V 为控制模块、液晶显示模块以及增益放大模块供电。
电源模块硬件电路设计图参见图2-3及图2-4。
T A C 220VLM-317U1~~图2-3 电源电路U3+5V图2-4 电源电路本设计选取变压器规格为:功率50W ,220V 转双路15V 输出,整流电路采用4个整流二极管1N4007来构成单相桥式整流电路转换成直流电,经整流电路后,选取两只4700uF/50V 的电解电容作为滤波电容,滤波电路利用电容的充放电作用,会使得电压趋于平滑。
为保证电路获得稳定性好的直流电源,在整流、滤波电路后稳压电路部分选用LM317和LM337稳压芯片构成稳压电路,从而生成+12V和-12V为增益放大器模块的运放芯片供电保证其正常工作。
选用7805作为产生+5V电源的稳压芯片为后级单片机及数字电位器供电。
通常LM317稳压块的输出电压变化范围是Vo=1.25V--37V,LM337 的输出电压范围是 -1.25V 至 -37V,LM337和LM337硬件电路非常简单,仅需两个外接电阻来调节其输出电压,此外线性调整率和负载调整率也比其他标准固定稳压器好。
采用78系列三端稳压芯片组成的稳压电源在硬件电路连接上也只需要极少的外围元件,电路内部包含过流、过热及调整管的保护电路,使用起来可靠、方便,而且成本低廉,所以本设计电源模块选取了7805芯片来生成5V电压为电路控制模块及液晶显示模块供电。
2.2 增益放大模块在本设计中,前级用到电压跟随电路提高输入阻抗以及使用反相运算放大电路进行增益放大,电压跟随器后采用四级反相比例放大电路对信号进行增益放大,利用数字电位器控制四级运放的反馈电阻。
图2-5及图2-6分别为电压跟随器电路与增益放大电路:图2-5 电压跟随器图2-6 增益放大电路在本模块硬件电路设计中,选取了OP37芯片作为运放芯片,OP37可提供与OP27一样的高性能,但前者的设计针对增益大于5的电路进行了优化,可以使微弱电平信号得到精确的高增益放大,因而该器件是精密仪器仪表应用的理想之选。
并选用了反相比例运算放大电路,该电路具有增益变化范围宽的优势。
增益放大模块在对低频小信号进行放大时,信号Vi首先经过电压跟随器阻抗隔离,之后对跟随器的输出V O1,进行四级放大,由于设计内容增益变化范围为1-50,且反馈电阻选用X9241W数字电位器阻值变化最大值为10KΩ,变化范围较窄,所以设计每级反相放大器反相端输入电阻选取2KΩ固定电阻,通过单片机对反馈端数字电位器的控制来调整增益,实现每级增益变化范围为1-5,采用四级放大电路级联来实现高增益。
比如要实现信号50倍放大,可以通过软件调整使得第一级运放对输入信号Vi放大两倍,输出VW0,第二级运放对上一级输出信号VW0放大5倍,输出VW1,第三级运放再对上一级输出信号VW1放大5倍,输出VW2,最后一级作为倒相器,因此输入信号的总放大倍数为2*5*5*1=50,其他增益值可以通过同样的方式实现。
2.3 电路控制模块本设计电路控制模块仅需采用51单片机最小系统,所谓单片机最小系统是指能够实现单片机工作的基本条件,也就是能使单片机正常工作的最基本的外围配置,最小系统主要包括电源电路、复位电路以及时钟电路。
单片机的最小系统以及键盘控制电路参见图2-7及图2-8。
图2-7由单片机STC89C52构成的最小系统图2-8程控增益放大器开关键盘电路控制模块的电气连接中,我们选用11.0592M 晶振为系统提供基本时钟信号,串口选择上将使用P2.0与P2.1口分别模拟IIC 通信的数据传送线SDA 和时钟控制线SCL 实现对X9241W 数字电位器的控制,P0口连接LCD1602液晶显示屏编程控制增益显示,方便增益调节,电路连接时P0口需添加上拉电阻,采用P2.6、P2.7以及P1口连接开关键盘作为数字0-9,并以P3.2口由中断函数控制作为确认键。
电路实际工作时,当键盘键入对应增益值,通过软件检测P1口及P2.6、P2.7的高低电平变化对增益值做赋值操作。
例如,要想得到15倍的增益,编程设置为先键入数字1,程序上通过转换另其乘以10设为增益的10位,再键入数字5作为增益值的个位,这样就得到了增益值的赋值处理,然后通过确认件,系统通过键盘检测跳入中断完成根据对应增益值数字电位器直接跳转至相应档位从而引用阻值变化实现增益调节。
同理,需要8倍增益时,仅需键入数字0和8,再通过确认键输入即可。
2.4 液晶显示模块程控增益放大器需要对增益信息进行显示,该设计的显示将在LCD1602字符型液晶屏上实现。
图2-9为程控增益放大器液晶显示模块的硬件电路电气连接图。
图2-9 液晶显示模块LCD1602硬件电路硬件电路设计中,通过3管脚上电位器R1的的调节可以实现LCD液晶显示屏对比度的调节。
单片机的P0口接LCD1602的D0~D7,实现单片机对LCD进行命令写入或者数据通信,P0口需添加上拉电阻;P2.3接入LCD1602的使能端EN,控制液晶显示屏正常显示;P2.4接入LCD的读写选择端RW,用来选择对LCD进行读操作还是写操作;P2.5口为数据亮暗选择端RS ,用来控制从D0~D7写入的信息是数据还是命令。
2.5 程控增益放大器总设计图为了更好的了解程控增益放大器的设计原理,本节将提供程控增益放大器各个模块原理图及其分析。
T1A C 220VLM-317U1~~图2-10 电源模块U3+5V图2-11 电源电路图2-12 电路控制模块图2-13 按键开关及液晶显示模块图2-14 X9241数字电位器及电压跟随器电路图2-15 增益放大模块根据程控增益放大器硬件电路总设计图,本设计以电路控制模块以STC89S52单片机作为为控制核心,并采用开关键盘输入实际所需增益值并通过单片机模拟IIC通信控制增益放大模块的数字电位器的方式调整增益值实现增益可调,并选用LCD1602液晶显示屏作为液晶显示模块来实现增益显示的功能。
在硬件电路的设计上,电源模块为单独模块,独立生成+12V、-12V及+5V电压(实物上由插针引出),为后级电路供电。
控制模块单片机最小系统P0口控制LCD1602的显示,P1口及P2.6、P2.7连接开关键盘控制分别代表数字0—9,由编程控制输入表示方式,增益放大模块数字电位器的数据线SDA与时钟线SCL分别连接单片机的P2.0与P2.1口。
另外,其它剩余I/O口由插针引出方便功能拓展,各测试端都设有相应标号并引出插针方便电路调试。
三、程控增益放大器软件设计基于单片机控制数字电位器进而实现增益可调的方案较好地实现了程控增益放大器。
通常,编程的关键在于对数字电位器输出阻值的选择和控制,即如何确定电路设计所需电位器以及其滑动端计数寄存器(WCR)的值。
本设计系统主程序设计流程图3-1所示:图3-1 系统主程序设计流程本设计使用的编程语言为C语言,系统通过键盘选择实际应用所需增益值,电路控制模块STC89S52单片机与数字电位器之间模拟IIC通信来控制数字电位器阻值变化进而实现增益可调,编程思路为:主函数内对键盘扫描完成滑动端档位的赋值,并通过确认键进入软件中断函数更新数字电位器滑动端计数值(WCR)从而引起阻值变化并刷新液晶显示,本设计软件编程中中断函数采用边沿触发方式方便控制单元单片机与数字电位器间模拟IIC通信。
3.2 IIC总线驱动程序设计X9241W采用标准II 串行总线接口,控制模块单片机与数字电位器间采用模拟IIC 通信进而控制增益放大模块反馈电阻阻值的变化。
SDA和SCL在电气连接上必须加以上拉电阻接正电源,使得总线处于空闲状态时,时钟线和数据线都处于高电平状态。
IIC 每一根线路(SDA和SCL)进入器件后,内部都接有输入/输出两部分,输入部分的输入阻抗很高,可以不用理会其对线路的影响,但输出部分则必须是漏极开路的结构,因为漏极开路输出结构有如下特点:当拉低它时,它的输出为0;当抬高它时,输出端相当于与芯片“断开”,输出电平由外部的与上拉电阻所连接的高电平决定,而与器件的电源电压无关。
IIC总线驱动程序的软件编程是以X9241读写时序为基础的,也即对数字电位器的编程控制主要体现在IIC总线驱动的程序控制上的,软件编程时主要包含开始条件、发送应答子函数、接收应答子函数、向IIC总线发送单个字节数据、从IIC总线接收单个字节数据、以及连续读取X9241内部数据的函数。
在程序编写时,每更新一次滑动端计数寄存器(WCR)的值都需要调用开始条件子函数、发送器件型号及地址的子函数、写入数据的子函数、发送数字电位器电阻中间值VR0的子函数以及结束条件的子函数,X9241数字电位器内部4个电位器在编程时每个电位器地址以及读写滑动端计数寄存器(WCR)时的语句各不相同,由于X9241数字电位器内部4个电位器全部被用到,这也为程序的编写与实现增加了难度,因此对设备地址的设置是程序编写及硬件电路连接的难点和易错点,另外单片机与数字电位器模拟IIC通信时开始条件、发送数据、返回应答和结束条件间数据位与时钟信号传输的时间间隔问题也是本设计的难点。
故本节主要分析IIC总线驱动程序设计思路,控制单元STC89S52单片机与数字电位器间采用的模拟IIC通信驱动程序设计流程图参见图3-2:图3-2 IIC总线驱动程序流程图3.3 LCD1602显示模块程序设计根据第二章对液晶显示模块的介绍,液晶显示屏以其小体积、微功耗、显示内容丰富、超薄轻巧的诸多优点而应用广泛。