




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、测控系统综合训练报告题 目: 程控放大器的设计 班 级: 姓 名: 学 号: 指导教师: 成 绩: 江苏理工学院电气信息工程学院2014年12月29日2015年1月23日目录摘 要2第1章 绪 论31.1 课题研究背景31.2 设计思路3第2章 系统总体设计42.1 方案选择42.1.1程控部分方案选择42.1.2显示部分方案选择52.2系统设计要求62.3 系统结构与总体设计6第3章 系统硬件设计63.1单片机的应用与选择73.2芯片简介73.2.1 STC89C51性能简介73.2.2 STC89C51的主要特性73.2.3 STC89C51管脚功能73.3 控制显示电路93.4按键输入电
2、路103.5 D/A转换电路113.5.1 管脚功能113.5.2 D/A转换电路模块133.6 转换电路13第4章 系统软件设计144.1软件开发环境简介154.2 C语言简介154.3软件总体设计154.4部分程序段代码164.4.1 DAC0832程序段164.4.2 LCD液晶显示代码17第5章 系统仿真调试195.1 系统仿真结果19第6章 整机实物调试与分析206.1 增益测试206.2 带宽测试21 6.3 误差分析24第7章 学习总结247.1 心得体会247.2 参考文献24附录:25附录一 总程序代码25附录二 实物图30附录三 整机电路31摘 要在电子信息技术中,常常需要
3、对输入信号进行放大。特别是对于一些输入信号幅度变化较大的系统,常常需要实时改变其放大倍数,以保证其输出信号能满足系统的要求。为了满足该需求市面上出现了多种程控放大器。但该类放大器多采用价格昂贵的专用芯片实现,从而性价比不高。针对以上问题,本文设计出一种可通过程序实现改变信号增益的高增益高精度信号放大器。该放大器利用电流型DAC内部的倒梯形网络配合运算放大器组成反馈网络实现程控放大的功能。本设计采用与之相关的STC89C51单片机,TL084放大器,DAC0832DA转换器的概况及应用。本文介绍了目前程控放大器的各项技术特征,并且阐述了其工作过程和要求,硬件系统设计以及软件系统设计,简单地对可编
4、程控制器(PLC)系统结构、工作原理及控制原理进行了分析,详细阐述了程控放大器的外观设计、放大过程、硬件设计、软件程序设计的实现过程。关键词:STC89C51单片机、DAC0832、运算放大器第1章 绪 论1.1 课题研究背景程控放大器,又名可编程放大器,是一种放大倍数由程序控制的放大器。程控放大器可以通过软件改变增益,利用模数转换器可以自动适应大范围变化的模拟信号电平,因此越来越多地应用在自动控制系统、智能化仪器仪表中。本课题适用于科学教研、生产实践和教学实验等领域。它是用STC89C51单片机、DAC0832、TL084等通过按键来实现增益的产生与切换。1.2 设计思路本系统的主控制模块是
5、由单片机最小系统,四个独立按键构成的,每一个按键对应一种调整模式,分别为设置、增加、减小、移位。按下按键后,会执行相应的按键功能,松开后停止。程控放大器的输出电压U0与DAC0832的Rf端口的输入信号的关系式:U0=-(Vref·Rf)/2nD(Dn-1·2n-1+Dn-2·2n-2+.+D0·20)。Vref为系统的反馈信号输入线电阻,D为DAC0832的数字输出量,就相当于改变系统的增益。具体实现过程:系统上电后先对DAC0832和LCD1602液晶初始化,再对按键进行扫描。当按键有按下时,系统产生相应的变化,从而改变系统的增益,使得输出电压发生相
6、应的变化。系统的放大倍数和输出电压通过液晶实时显示。第2章 系统总体设计2.1 方案选择2.1.1程控部分方案选择方案一: 采用压控放大器(如AD603)实现高增益程控放大。将可程控的电压源加到压控放大器的控制端,通过调整电压的幅值即可调整输入信号的放大倍数,实现程控放大。但这种方法所能实现的程控增益有限,很难满足题目中的高增益要求,并且在高增益时所加电压有小的纹波都会引起增益的较大变化,所以需要配合一个高精度的DAC以及一个高精度的参考电源,所需成本较高。故不采用此方案。方案二:采用分级PGA芯片配合分压电阻网络和多路开关实现程控放大器。此方案的多路开关实现程控放大的原理如图2-1所示,可实
7、现高增益程控放大。程控放大器利用选通开关,控制放大器的反馈电阻阻值,实现改变放大倍数的原理工作。图2-1 多路开关实现程控放大的原理图利用数模开关选通不同的开关通道,通过反馈电阻的搭配可以实现多种数值的放大,但要小步进的增益控制,则需要很复杂的电阻网络和通道选择,控制难度大,成本也相应的增加,只能进行较为简单的放大倍数控制。方案三:利用数字电位器作为放大器的反馈电阻,实现放大器的放大倍数改变。此方案和方案二原理基本相同,都是通过调节反馈电阻来实现对增益的控制,不同的是选用数字电位器来实现,缺点是数字电位器为了扩大使用电压范围,内部附加了由振荡器组成的充电泵,因而会产生有害的高频噪声。方案四:采
8、用固定增益放大器与利用D/A芯片的倒梯形权电阻网络的程控放大器级实现。可利用数模转换器内部所具有的电阻网络作为反馈电阻。电流输出型D/A芯片的参考电压引脚和电流输出引脚之间等效于一个数控的电阻网络,该网络较为精准和易于控制。采用该种方案的程控放大器,增益的细分程度取决于D/A转换器的精度(即位数)。固定增益部分由两级放大电路实现,程控放大部分由DAC和低噪声运放程控放大,在信号经过选频网络之后经过后期固定增益档位的可控放大使输出结果更为理想。该方案的优点是灵活性相当大,增益调节范围很宽,容易实现高精度、高分辨率的高增益程控放大。故综合考虑选择方案四。2.1.2显示部分方案选择为便于系统简化和满
9、足人机交互基本功能,显示部分方案选择比较:方案一:用LED数码管作显示。采用七段码显示时,数据管中的每一段相当于一个发光二极管。对于共阳极数码管,内部每个发光二极管的阳极被连在一起,成为该各段的公共选通线,发光二极管的阴极则成为段选线。对于共阴极数码管,则正好相反,内部发光二极管的阴极接在一起,阳极成为段选线。这两种数码管的驱动方式是不同的。当需要点亮共阳极数码管的一段时,公共段需接高电平,该段的段选选线接低电平。从而该段被点亮。当需要点亮共阴极数码管的一段时,公共段需接低电平,该段的段选接高电平,该段被点亮。LED数码管显示清晰明亮,适合用于白天等强光条件下显示,能使用时间长久,价格低廉,但
10、LED数码管显示单一,且显示电路处理麻烦,很占控制器的资源。方案二:用液晶LCD1602作显示。LCD1602可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里,只要一个最小的微处理系统,就可以方便操作模块。LCD1602液晶极其省电,且能显示26个英文字母和一些简单的图标,在人机交互,可以有更多的选择,灵活多变,且价格低廉,占用控制器的资源少。综合以上几种方案的优缺点,本设计采用方案二,用液晶LCD1602作显示。2.2系统设计要求本系统设计的
11、程控放大器可以实现如下功能:(1)输出的值可通过LCD1602液晶显示;(2)可以通过按键输入改变放大器的放大倍数。2.3 系统结构与总体设计 从总体结构上来看,整体结构可以分为两块。增益程控模块和信号输出模块,其中增益信号模块主要利用按键来给芯片的信号输入来调节增益,继而用LCD显示。而信号输出模块主要利用用DAC0832芯片的R-2R电阻网络来进行对输入信号进行增益,在通过单极型差动运放和方向比例运放来形成输出信号。图2-2 系统结构框图第 31 页 共 31页第3章 系统硬件设计3.1单片机的应用与选择8051是MCS-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了
12、硬件乘除法器、21个专用控制寄存器、64kB的程序存储器 、256B字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。由于MCS-51集成了几乎完善的8位中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理机及各种逻辑运算和转移指令,这给应用提供了极大的便利。3.2芯片简介3.2.1 STC89C51性能简介 STC89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电
13、压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.2.2 STC89C51的主要特性(1)4K字节可编程FLASH存储器(寿命:1000写/擦循环);(2)全静态工作:0Hz-24KHz;(3)三级程序存储器保密锁定;(4)128*8位内部RAM;(5)32条可编程I/O线;(6)两个16位定时器/计数器;(7)5个中断源;(8)可编程串行通道。3
14、.2.3 STC89C51管脚功能MCS-51系列单片机芯片均为40个引脚,HMOS工艺制造的芯片采用双列直插(DIP)方式封装,其引脚示意及功能分类如图3-1:图3-1 STC89C51引脚图MCS-51系列单片机的40个引脚中有2个专用于主电源的引脚,2个外接晶体的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。 VCC:供电电压。 GND:接地。(1)P0口(P0.0P0.7) 为双向8位三态IO口,当作为I/O口使用时,可直接连接外部I/O设备。它是地址总线低8位及数据总线分时复用口,可驱动8个TTL负载。一般作为扩展时地址/数据总线口使用。(2) P1口
15、(P1.0P1.7) 为8位准双向IO口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1),可驱动4个TTL负载。(3) P2口(P2.0P2.7) 为8位准双向IO口,当作为I/O口使用时,可直接连接外部I/O设备。它是与地址总线高8位复用,可驱动4个TTL负载。一般作为扩展时地址总线的高8位使用。(4)P3口(P3.0P3.7) 为8位准双向IO口,是双功能复用口,可驱动4个TTL负载。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间
16、,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。综上所述,MCS-51系列单片机的引脚作用可归纳为以下两点:(1)单片机功能多,引脚数少,因而许多引脚都具有第2功
17、能;(2)单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线;由ALE、PSEN/、EA/与P3口中的INT0/、INT1/、T0、T1、WR/、RD/共10个引脚组成控制总线。3.3 控制显示电路本设计用STC89C51单片机最小控制系统,显示部分采用LCD1602液晶显示器LCD引脚图如图3-2所示。图3-2 LCD1602引脚图此液晶属于工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位
18、都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 本设计中液晶主要用于显示放大器的倍数和方便设置放大器的倍数。由于液晶显示以及程序设计灵活,可以省去数码管显示的繁琐操作。同时液晶显示更加人性化,且现在液晶成本低廉,在本设计中是一个很好的选择。图中单片机的P0口作为液晶显示的数据端口。由于51单片机设计者为了满足多电平的兼容性。在设计时P0口作输出时,设计为集电极开路输出,因此本
19、设计作为液晶的数据端口,P0口输出增加上拉电R2将P0口输出上拉至VCC。以保证单片机输出1时,液晶数据口接收到的信号为高电平。3.4按键输入电路按键输入电路如图3-4所示,通过按键控制放大倍数。P1.0接放大设置按钮,P1.1接放大倍数增加按钮,P1.2接放大倍数减小按钮,P1.3接移位按钮。图3-4 按键输入电路3.5 D/A转换电路D/A转换电路采用DAC0832来实现,首先来介绍下DAC0832芯片。3.5.1 管脚功能DAC0832管脚功能如图3-5所示。图3-5 DAC0832引脚图DAC0832的主要特性参数如下:(1)分辨率为8位;(2)输出为电流信号,电流的建立时间为1us;
20、(3)可单缓冲、双缓冲或直接数字输入;(4)只需在满量程下调整其线性度;(5)单一电源供电(+5V+15V),低功耗,20mW;(6)参考电压可以达到±10V;(7)直接的数字接口可以与任何一款单片机相连。DAC0832的引脚功能: (1)D0D7:8位数据输入线,TTL电平,通常与单片机的数据总线相连,用于输入CUP送来的待转换数字量。有效时间应大于90ns(否则锁存器的数据会出错);(2)ILE:数据锁存允许控制信号输入线,高电平有效;(3):片选信号输入线(选通数据锁存器),低电平有效;(4):数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、的逻辑组合产生
21、LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;(5):数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;(6):DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由、的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。(7)IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;(8)IOUT2:电流输出端2,其值与IOUT1值之和为一常数; 当DAC寄存器内容全为1时,IOUT1为最大,IOUT2=0;当DAC寄存
22、器内容全为0时,IOUT1=0,IOUT2为最大;为了保证输出电流的线性,应将IOUT1 及IOUT2接到外部运算放大器的输入端上。(9)Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;(11)Vcc:芯片工作电源,范围为+5V+15V;(12)VREF:基准电压输入线,VREF的范围为-10V+10V;(13)AGND:模拟信号地,为模拟信号和基准电源的参考地;(14)DGND:数字信号地,为工作电源地和数字逻辑地3.5.2 D/A转换电路模块D/A转换电路如图3-6所示,单片机的P2口输出信号给0832的8位并口数据输入,控制端口接地。输出信号至运算放大器。图3-6 D
23、/A转换电路3.6 转换电路运放与DAC0832连接的运放电路如图3-6所示。DAC0832输出的转换结果为电流信号,在本设计中利用TL084运算放大器将其转换为模拟电压信号。运放的反馈接到运放的Vref端口。图中所示运算放大器U3的作用是反向器,是输出的电压与D/A转换的电压相同。运放与DAC0832连接的运放电路如图3-7所示。图3-7 运放与DAC0832连接电路第4章 系统软件设计4.1软件开发环境简介 本设计中选用德国KEIL公司推出的uVision4集成开发环境作为主机程序设计的编译器。该软件集成了业内最领先的技术。Keil software的8051开发工具提供以下程序,可以用它
24、们来编译C程序代码,汇编源程序,连接和重定位目标文件和库文件,创建HEX文件以及调试目标程序。4.2 C语言简介C语言是一种结构化的语言,它层次清晰,便于按模块化的方式组织程序,易于调试和维护,语言简洁,紧凑,使用方便灵活。其次,它丰富的运算和数据类型,便于实现各类复杂的数据解耦。第三,可以直接访问内存地址,能进行位操作的特点,使其能够胜任开发炒作系统的工作。第四,由于C语言可以对硬件进行编程操作,因此,它既有高级语言的功能,同时也有低级语言的优势。不仅可用于系统软件的开发,同时也适用于应用软件的开发。另外,C语言还有效率高的,可移植性强等特点。例如,原来使用的汇编语言编写的程序,由于别人编写
25、的程序不易被读懂,在一段时间后再去做升级和维护就会感觉非常的不方便。但在使用和维护C语言编写的程序时,就不会遇到这样的困扰,这时候C语言的优势就大大的体现出来了。4.3软件总体设计如图4-1所示为系统的软件流程图。主程序中,首先对系统进行初始化。初始化所完成的是对系统中所用到的资源的控制寄存器等赋初值(如按键端口、液晶端口I/O方向进行初始化、液晶LCD1602显示初始化、放大器控制初始化等),默认放大倍数为1。各程序段,主要包括DAC0832程序段和LCD1602液晶显示程序段。首先,系统进行初始化,包括液晶初始化和和各端口的初始化,并设定默认倍数为1,根据相应的放大倍数和D/A值关系,输出
26、D/A控制命令,然后,程序进行入按键扫描段,如果“选择/确定”键按下,则进入放大倍数修改段。根据扫描的键值,进行相应的修改,如,若“加”键被按下,相应位上加1;若“减”键被按下,相应位减1;若”移位”键被按下,光标移位。最后,程序根据修改的放大倍数值,根据相应的放大倍数和D/A值关系,输出D/A控制命令。图4-1 系统软件流程序4.4部分程序段代码4.4.1 DAC0832程序段首先,DAC0832输出一个默认的放大倍数1,然后根据键值做出相应的改变,根据键值和放大倍数的对应数学关系,计算出DAC0832应输出的控制命令。如下为DAC0832程序段:/* 对第一片DAC0832进行赋值设置*/
27、void DAC0832_SET(uint16 Data) uint8 i; uint16 buffer; buffer=Data+0x1000; SYNC=0; for(i=0;i<16;i+) SCLK=1; if(buffer&0x8000)SDIN=1; else SDIN=0; SCLK=0; buffer<<=1; SYNC=1; 4.4.2 LCD液晶显示代码 液晶的显示部分采用带一款字符型液晶1602,此模块的程序结构较简单,难点也只是液晶读写的时序,本程序中只需要时时对液晶写入数据,便于人机交互,只要对液晶驱动了后写数据也就相应的简单了,通过查看液晶
28、的时序图4-2,然后再模拟时序编程别能驱动液晶了。液晶操作的命令码可以查询LCD1602官方给出的命令码表。首先对液晶进行初始化,然后,根据相应的键值,作出相应的变化,如若“加”键被按下,相应位上加1,输出对应的ASCII值;若“减”键被按下,相应位减1,输出对应的ASCII值;若“移位”键被按下,光标移位等。图4-2 读操作时序图1602液晶驱动程序:void LCD_init(void) LCD_write_com(0x38); /*显示模式设置*/ delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); de
29、lay_ms(5); LCD_write_com(0x38); LCD_write_com(0x08); /*显示关闭*/ LCD_write_com(0x01); /*显示清屏*/ LCD_write_com(0x06); /*显示光标移动设置*/ delay_ms(5); LCD_write_com(0x0C); /*显示开及光标设置*/void LCD_write_com(uint8 com) RS_CLR; RW_CLR; EN_SET; P0 = com; delay_us(5); EN_CLR;/* 写入数据函数 */*/ void LCD_write_Data(uint8 Dat
30、a) RS_SET; RW_CLR; EN_SET; P0 = Data; delay_us(5); EN_CLR;/* 清屏函数 */*/ void LCD_clear(void) LCD_write_com(0x01); delay_ms(5);第5章 系统仿真调试5.1 系统仿真结果当输入信号为正弦信号,且幅度为10mv,频率为100Hz时,信号从A通道输入,从D通道输出,仿真输出结果如图5-1所示。图5-1 仿真结果如图5-1所示,初始放大倍数为1,A通道输入的原始信号与D通道输出的信号一致,实现了原始信号的正确输出;通过按键改变放大倍数为5,D通道旋转按钮显示为50mv,经过简单计算
31、,可得输出信号被放大了5倍,由此得出,仿真结果如预期所想。第6章 整机实物调试与分析6.1 增益测试当输入信号为正弦,峰-峰值为400mvpp,频率为1kHZ,则各增益如表6-1所示。A0表示理论增益(db),UO表示输出电压(v),A1表示实际增益(db)。表6-1 不同增益下测试结果A01234615162027UO0.501.001.552.02.857.447.849.6813.7A11.02.03.145.714.915.619.327.4误差(%)0%0%3.3%0%5%0.7%2.5%3.5%1.5%如表所示,输入信号乘以增益与输出信号的关系基本表明此设计实现了程控放大,且在不同
32、增益下误差基本稳定在一定范围内,除个别测试数据误差较大外,可剔除(如表6-1中增益为10时)。测试波形如图6-1所示,分别对应表6-1中的不同增益。图6-1 不同增益下测试波形6.2 带宽测试当输入信号为正弦,峰-峰值为500mvpp,频率为1kHz,增益为5时测试频率与输出信号的关系如表6-2所示,fo表示频率(khz),Uo表示输出电压,A表示放大增益(db)。fo1251012141516172040Uo2.52.52.352.031.91.771.741.71.621.50.9A554.74.063.83.543483.43.2431.8表6-2 增益为5时的测试数据其幅频特性曲线如图
33、6-3所示。图6-2 增益为5的幅频特性曲线当输入信号为正弦,峰-峰值为500mvpp,频率为1kHz,增益为6时测试频率与输出信号的关系如表6-3所示,fo表示频率(khz),Uo表示输出电压(v),A表示放大增益(db)。fo1234567891011Uo2.902.852.812.742.702.612.502.422.332.242.18A5.85.75.625.485.45.225.004.844.664.484.36表6-3增益为6时的测试数据其幅频特性曲线如图6-3所示。图6-3 增益为6的幅频特性曲线当输入信号为正弦,峰-峰值为500mvpp,频率为1kHz,增益为7时测试频率
34、与输出信号的关系如表6-4所示,fo表示频率(khz),Uo表示输出电压(v),A表示放大增益(db)。表6-4 增益为7时的测试数据fo1234567891011Uo3.593.553.483.403.313.163.073.002.832.752.64A7.187.16.966.86.626.326.146.005.665.55.28其幅频特性曲线如图6-4所示。图6-4 增益为7的幅频特性曲线 由上三张幅频特性曲线分析可得,增益分别5、6、7对应的-3dB截止频率分别约为15.2kHz,15.4kHz,15.8kHz,则其带宽分别为15.2kHz,15.4kHz,15.8kHz。由图6-
35、5可得系统截止频率为 =15.923kHz,实测值都小于理论值,且都接近一定值,符合数字式程控放大器设计原理。图6-5 电压跟随器电路6.3 误差分析误差来源主要分以下几个方面:1) 信号源输出的信号在幅值很小时,其幅值不够精确。在放大倍数比较小时,放大精度高很多,例如,放大100倍时,误差为4%,而放大2倍时,误差只有1%,这是因为测试放大2倍的被测信号的峰峰值为1Vpp,而测试放大100倍的被测信号的峰峰值为10mVpp,10mVpp的信号源输出则相对1pp的信号来说,其精确度不够;2) 系统使用的8位D/A数字程控放大,其中D/A在放大倍数比较小时,其连续性更好,即放大倍数会更精确,在放
36、大倍数比较大时,其放大倍数精确度相对来说要差很多,所以要想在放大倍数比较大时取得理想的精确度,则需要使用位数更多的D/A数模转换器;3) 系统设计时没有考虑滤波,成生的杂波没有很好的经过滤波部分,对系统结果有一定的影响。第7章 学习总结7.1 心得体会本次试验我们通过仿真和实物同步进行的方法,相互映证,使得解决问题的效率有所提高。同时锻炼我们对于仿真和实物的综合运用的能力。同时对于组员之间的相互配合和分工合作进一步加强。而且在本实验的关于程控放大器工作原理分析及其设计安装与调试,加深了我对程控放大器工作原理的理解,同时对线性电子线路的理论与实践应用知识有了新的认识,并且提高基本的实验技能与试验
37、分析技巧,提高运用理论知识解决实际问题的能力。在实验过程中,通过选取元件、确定电路形式、以及计算等等,提高我的实践动手操作能力,同时通过调试来发现自己的错误并分析及排除这些故障。7.2 参考文献1王炜.程控放大器及其典型应用的实例J.中国科学院长春光学精密机械研究所.19982周春光.程控放大器在数据采集系统中的应用J.电子技术应用.19873傅越千.程控放大器的设计与应用J.宁波高等专科学校学报,20024房慧龙.程控放大器的实现方法J.常州信息职业技术学院电子信息工程系.20045邵雄凯,张文灿,黄文斌.一种程控放大器的分析与实现J.湖北工学院学报,19976吴建平,李建强.数字程控放大器
38、设计与应用J.成都理工学院报,20027余锡存,曹国华编著.单片机原理及接口技术M.西安:西安电子科技大学出版社,20008彭楚武主编.微机原理与接口技术M.长沙:湖南大学出版社,20049童诗白,华成英主编.模拟电子技术基础M.北京:高等教育出版社,200110胡斌,蔡月红.放大器电路识图与故障分析轻松入门M.北京:人民邮电出版社,2003附录:附录一 总程序代码#include "regx52.h"#include "typedef.h"#include "delay.h"#include "LCD.h"#in
39、clude "Key_scan.h"#include "DAC7811.h"int8 Cursor_Pos,Key_Value,Gain4;uint16 Gain_Set,Gain_Set1;void SYSYTEM_INIT(void) LCD_init();void main()SYSYTEM_INIT();LCD_write_str(0,0,"Set Gain:11000");LCD_write_str(0,1,"NOW:0001");Gain0=1;Gain1=0;Gain2=0;Gain3=0;Gain_
40、Set=Gain0+Gain1*10+Gain2*100+Gain3*1000;/P2=256/Gain_Set-1;while(1) while(Key_Value=key_scan()=1)/按键扫描,确认按键是否按下,按下,则进入设定程序 Cursor_OFF_Flash_ON();/打开光标闪烁 Cursor_Move_Left(1);/光标左移一位Cursor_Pos=0; while(Key_Value=key_scan()!=1)/按键扫描,确认按键是否按下 switch(Key_Value)/判断键值case 2:/加1GainCursor_Pos+;if(GainCursor
41、_Pos=10) /当加到10时,变成0 GainCursor_Pos=0;DIS_UINT(7-Cursor_Pos),1,GainCursor_Pos);/显示加1后的值Cursor_Move_Left(1);/光标左移一位 break;case 3:/减1GainCursor_Pos-;if(GainCursor_Pos<0) GainCursor_Pos=9; DIS_UINT(7-Cursor_Pos),1,GainCursor_Pos); Cursor_Move_Left(1);break;case 4: Cursor_Pos+;Cursor_Move_Left(1);if(
42、Cursor_Pos=4) Cursor_Pos=0;Cursor_Move_Right(4); break; Gain_Set=Gain0+Gain1*10+Gain2*100+Gain3*1000;if(Gain_Set>100) Gain_Set=100;if(Gain_Set=0) Gain_Set=1;Gain3=Gain_Set/1000;Gain2=(Gain_Set%1000)/100; Gain1=(Gain_Set%100)/10;Gain0=(Gain_Set%10);DIS_UINT(4,1,Gain3);DIS_UINT(5,1,Gain2);DIS_UINT(
43、6,1,Gain1);DIS_UINT(7,1,Gain0); P2=256/Gain_Set-1;Cursor_OFF_Flash_OFF(); void LCD_write_com(uint8 com) RS_CLR; RW_CLR; EN_SET; P0 = com; delay_us(5); EN_CLR; void LCD_write_Data(uint8 Data) RS_SET; RW_CLR; EN_SET; P0 = Data; delay_us(5); EN_CLR;void LCD_clear(void) LCD_write_com(0x01); delay_ms(5);
44、void LCD_write_str(uint8 x,uint8 y,uint8 *s) if (y = 0) LCD_write_com(0x80 + x); else LCD_write_com(0xC0 + x); while (*s) LCD_write_Data( *s); s +; void LCD_write_char(uint8 x,uint8 y,uint8 Data) if (y = 0) LCD_write_com(0x80 + x); else LCD_write_com(0xC0 + x); LCD_write_Data( Data); void LCD_init(v
45、oid) LCD_write_com(0x38); /*显示模式设置*/ delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); LCD_write_com(0x08); /*显示关闭*/ LCD_write_com(0x01); /*显示清屏*/ LCD_write_com(0x06); /*显示光标移动设置*/ delay_ms(5); LCD_write_com(0x0C); /*显示开及光标设置*/ Void DIS_N_CHAR(uint
46、8 DIS_ADDR,uint8*N,uint8*N_CHAR_ADDR) uint8 i; LCD_write_com(DIS_ADDR); for(i=0;i<N;i+) LCD_write_Data(*N_CHAR_ADDR+);void DIS_ARRY(unsigned char x,unsigned char y,unsigned int len,unsigned char *s) int base_adr; switch(y) case 0: base_adr=0x80; break; case 1:base_adr=0x0c0; break; if(x>=0)&am
47、p;&(x<=16)base_adr+=x; DIS_N_CHAR(base_adr,len,s); char * INTEGR_TO_CHAR(int value, char *str, int radix ) /radix为转换的进制 static char szMap = '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b'
48、;, 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'
49、, 'z' ; / 字符映射表 int nValue ; int nCount = -1, nIndex; char *pStr = str, nTemp; if ( radix >= 2 && radix <= 36 ) / 限制radix必须在2到36之间 if ( value < 0 && radix = 10 ) / 如果是负数就在首位添加负号,并将字符串前移 *pStr+ = '-' value = -value; /转为正数, nValue = *(unsigned*)&value; do /
50、 循环转换每一个数字,直到结束 pStr +nCount = szMap nValue % radix ; nValue /= radix; while( nValue > 0 ); / 转换结束后字符串是翻的 nIndex = ( nCount + 1 ) / 2; / 计算出一半的长度 while( nIndex- > 0 ) / 将字符串的字符序翻转 nTemp = pStr nIndex ; pStr nIndex = pStr nCount - nIndex ; pStr nCount - nIndex = nTemp; pStr nCount + 1 = '0'/ 置结束符 return str; v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年网络安全教育认证考试网络安全漏洞识别与防御试题
- 2025年高尔夫球教练职业能力测试卷:高尔夫球运动教练员沟通技巧试题
- 2025年网络工程师职业技能测试卷:网络管理平台搭建与维护实战试题
- 2025年教师资格证面试结构化模拟题:小学语文阅读教学评价试题
- 2025年小学英语毕业模拟卷(英语跨文化交际能力发展评估)
- 2025年成人高考《语文》得体表达作文得分案例分析题库试题
- 2025年小学教师资格考试《综合素质》教育活动设计题名师精讲与高分策略试卷
- 2025年小学教师资格考试《综合素质》教育资源整合与教育技术应用试卷
- 2025年成人高考《语文》现代文阅读深度分析题库测试
- 2025年小学英语毕业考试模拟卷:英语阅读理解技巧实战解析与专项训练试题
- 成人脑室外引流护理-中华护理学会团体 标准
- 2024年出售铝厂铝渣合同范本
- 地方导游基础知识电子教案 专题七 学习情境一 陕西省课时教案
- 项目管理工程师招聘笔试题与参考答案(某大型集团公司)2024年
- 高中文言文实词虚词总集(打印版)
- 24年追觅在线测评28题及答案
- 婚礼主要工作人员及分工职责
- 医院改造工程设计服务方案
- 职业本科《大学英语》课程标准
- 人教版高中数学选择性必修第三册8-1-1变量的相关关系【课件】
- 《认识面积》(教学设计)-2023-2024学年三年级下册数学苏教版
评论
0/150
提交评论