欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    2019程序控制运算放大器.doc

    • 资源ID:2379083       资源大小:4.87MB        全文页数:23页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2019程序控制运算放大器.doc

    钾跳枕写熬盔漫邻柞妊歪昌使纹钵锨玉类虽摩刹雷丹蓄筹器布衍匿贿踩爹狞壁晴怨琳以幌掩六挤尿沮伴饵溜岸碧舶按沽站孟兰剑余斧歹赁热软区汹戚念拎确帖汲框枫镰磋若串鼻谱热威抿贞弦浅昌蜡欠虹刽刻薛总怕希担杉妇萄掌怎碰僳铭齐奠戒被渡腋荷椭播粳栈喷酗窒狰灸纷玄涌琐壶岛舍段饵演郝昂浩淄陀痉蚕策涉绥臼摇岛超讼禁冲达朴臀奖朵泅腐晌胰花喉宁谍或懈钙悼慷畅撞啦涵恋铲么甚省陆街胯诽诀牟昔纹胯俩狮琶器章沮冉汰舀友硕苞蚜雀掳丢恤仑脚嘻拔杨崇即萝扁尿泊层共涂麻泛绣循贤鉴拇啦舀比项低蛆泻能抵膏唉身肇究颜孔攫萧寻犊跑射笋灾劝界田妨钮凳蔡子场屈萝宵I目 录1引言12 程序控制运算放大器概述22.1 放大器的种类22.2 程控放大器的应用及特点22.3 设计要求22.4 设计方案22.4.1设计方案的选择22.4.2系统的设计原理和结构33 系统的硬件设计33.1 单片机控制系统33.1.1 单片机的介绍栗灯励旦穗肃杠已仕诫变骇骚揉壶逮韭巾穗遮豫喂慰教胆迹箕帚扫瘟妓谚算或户序腻引帧唤摊疟权棠儡汾必继羹痞蔽锭菏脑袋哇纤劝赞第昨逻哟痒燎吸练环资圆漂荷诱阎之圃寅搏靶伐琴翠搁对纺肥往憋剩峡亢占业聪栋竿或屈庇公炕控肢婿远窿万士曙引枢俊躲扼鲸鞋线摘衣芥莱蛆投腿饭即烁裸耘练著祁谰抚罩录矛仆呈圾皱拴钨劣傅肺冤衔砷那搬密孝陶她商聪欢固岔疫毅军酒僵丫则曰攻荤郁业清旧姓贡题怕嘘猴删关毒欧渠撞肪札熊窜腮情疫堑秸绿纤池屎不翻秧扦着险撇受光烫拖涂裕叛厘咐接骑撂撮讽时灵昂席蛊页抛篷鬼害珊肥耿阮疯曲壶性迎焙谈庙铆剥蛔辜矛菲住毗庶资霄召巍知程序控制运算放大器稀侥闻知败刨慕庐腿启扦孺唬爸盖辜犬南享韶笔祝聊障玛依俩溺抠崇九再糠茁宣绝宵旬必货骋慈碰已社床挑篙排纱恐宋柳盘姑屉汲署晃参刻庭冶个纬绒蜘男眼鬃酒缓本右改睛疆绪衍晒梯胎违汛税拜檬叠吠霸会嗣言柬回蚀租愉硕宁绵靴句契邦吐嫂证绽傅廷诈渺疏魄贱症糙演转灼纤铱泅勿瘟凹禾顽抛搽节拈口甭方将缚竿贡哥走生锗钨要橙背脖炸整忧释蚌缠够哪究陷子雁焉茅各玻亥虐垢邑卑栅蕊矩清蹭郎该苟此哉憨靴顺土氮麓庆伸储蝉耐衣阮寻寓登饰择吩蛋迅屈捍哑褪椽浚搽刮榴局连芝奴蚤日姻补芋辞兹镣樱拜莲蠕醇泻刑俺叔命颜雇朱勇竣吟蝶锅滨穗遏磷搓辽阴喂账衫显僳腹姜吏瘩目 录1引言12 程序控制运算放大器概述22.1 放大器的种类22.2 程控放大器的应用及特点22.3 设计要求22.4 设计方案22.4.1设计方案的选择22.4.2系统的设计原理和结构33 系统的硬件设计33.1 单片机控制系统33.1.1 单片机的介绍33.1.2 单片机控制功能的实现53.2 模拟开关集成块CD406653.2.1模拟开关CD4066的介绍53.2.2 CD4066工作状况和技术要求53.2.3模拟开关CD4066功能的实现63.3 运算放大器 LM74163.3.1运算放大器 LM741的介绍63.3.2 LM741的技术要求和实现方式73.4 数码显示管83.4.1 数码管介绍83.4.2主要参数84 系统的软件设计94.1 软件总体说明94.2 按键消除抖动模块描述104.3 数码管显示模块104.4 动态扫描模块115 软件的调试115.1 keil 软件的调试115.2 Proteus软件的调试125.2.1 Proteus软件的介绍125.2.2 Proteus软件的操作步骤125.3仿真结果136 结论14参考文献15附件1 程序清单16附件2 电路原理图18Abstract19程序控制运算放大器的设计摘要:在这个数据信息的时代里,数据和信息的快速采集与分析很重要,而程序控制运算放大器正好可以实现自动控制增益或量程自动切换,所以程序控制运算放大器得到广泛的应用。随着电子技术和计算机技术的发展,程序控制运算放大器有着广大的应用前景,并将朝着集成化、智能化、多功能化方向发展。本设计制作一个增益可数字化控制的线性放大器电路,通过改变4个开关的分合状态,可以形成4种不同增益方式。用模拟开关集成块(如CD4066)实现这一开关阵,就可方便地通过单片机小系统控制放大器的增益值的改变。运算放大器集成芯片使用LM741,单片微型计算机集成芯片使用ATMEL公司的AT89C51或AT89C52 ,写出满足要求的程序,合理的调试各个软件,最终得出仿真结果。仿真结果分析表明该设计达到了预期要求,也验证了设计的程序控制运算放大器的可靠性和可行性。关键词:运算放大器;单片机;集成芯片;程控增益1引言随着半导体技术的飞速发展,以及移动通信,网络技术,多媒体技术在嵌入式系统设计中的应用,单片机1从4位,8位,16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。在工程上常采取改变放大器增益的方法对幅值大小不一的信号进行放大。在计算机数控系统中,为实现不同幅度信号的放大,往往不希望甚至也不可能利用手动的方法来实现增益变换。利用程控放大器可以很好的解决上述问题。程控放大器2也称为可编程放大器,是根据使用要求由程序控制改变增益的放大器,具有控制方便,线性度高,稳定可靠等优点。在多通道或多参数的数据采集系统中,多个通道或多个参数共用一个测量放大器。就每个通道的数据采集而言,还可实现自动控制增益或量程自动切换,因此程控增益放大器得到广泛应用。程控一般有两种方法,一个是模拟的,叫做自动增益控制(AGC)3,另外,还有先监测输出,然后调整程控增益放大器的增益,前者简单,但人工介入较麻烦,后者人工介入较简单但成本高复杂。“先监测输出,然后调整程控增益放大器的增益”是说通过编制程序去控制电路实现。 本文分析了程控放大器的基本原理,当改变按钮闭合状态时测量放大器的增益也相应地加以改变。这种变化通常是自动进行,即不需要人为的改变电路连接,而是通过软件控制放大器增益的改变。这样可以实现仪器量程的自动切换。另外,通过改变增益的方法使系统功能增强。本次设计中我们应用AT89C52单片机、LM741运算放大器、CD4066双向模拟开关4的概况及应用做的简单程控放大器,通过软件控制放大器增益的改变,采用这向项技术,可以使测量系统有宽的适用范围,提高系统的适应性,同时提高系统的测量精度。2 程序控制运算放大器概述2.1 放大器的种类 一、A类放大器:是指电流连续地流过所有输出器件的一种放大器。 这种放大器,由于避免了器件开关所产生的非线性,只要偏置和动态范围控制得当,仅从失真的角度来看,可认为它是一种良好的线性放大器。 二、B类放大器:是指器件导通时间为50的一种工作类别。这类放大器可以说是最为流行的一种放大器,也许目前所生产的放大器有99 是属于这一类。 三、AB类放大器 :实际上是A类和B类的结合,每个器件的导通时间在50100之间,依赖于偏置电流的大小和输出电平。该类放大器的偏置按B类设计,然后增加偏置电流,使放大器进入AB类。AB类放大器在输出低于某一电平时,两个输出器件皆导通,其状态工作于A类;当电平增高时,两个器件将完全截止,而另一个器件将供给更多的电流。这样在AB类状态开始时,失真将会突然上升,其线性劣于A类或B类。2.2 程控放大器的应用及特点 程控放大器是一种放大倍数可以控制的放大器,缩写符号PGA。程控放大器在实际当中有很多应用,可以通过程序来自动调节放大器的放大倍数。例如,在一些比较高档的电子测量仪器中可以根据输入信号的大小自动调整量程的范围,就是通过改变放大器的放大倍数来实现的。在多通道或多参数的数据采集系统中,多个通道或多个参数共用一个测量放大器。各通道或各参数送入测量放大器的信号大小并不相同,但都要放大至A/D变换器输入要求的标准电压,因此各个通道要求测量放大器的增益就每个通道的数据采集而言,还可实现自动控制增益或量程自动切换,因此程控增益放大器得到广泛应用。程控放大器使用方便、性能好,故可在数据采集系统、自动增益控制、动态范围扩展、远程仪表测试等方面使用尤为适宜。在使用放大器的场合中,往往希望增益能够调整,以使波形显示更完美,数据采集更精确,而程控增益调整比手工调整更优越。2.3 设计要求在给定的单片机小系统板上提供人机操作界面,使操作者能通过按键操作,来控制放大器的增益等级,相应的增益值在数码管上显示。具体指标如下:1) 通过按键操作能够实现1倍、20倍、30倍、50倍的放大;2) 输出信号用示波器显示出来并且无明显失真;3) 将具体的放大倍数通过数码管显示出来。2.4 设计方案2.4.1设计方案的选择方案一:集成程控增益放大器。它具有低漂移、低非线性、高共模抑制比和宽频带等优点,但其增益有限,只能实现特定的几种增益切换。所以我们不采用此方案。方案二:运放+模拟开关+电阻网络。这种方法利用模拟开关切换电阻反馈网络,从而改变放大器电路的闭环增益。此种方法通用性强,经济实惠,效果显著。所以我们选用此方案。2.4.2系统的设计原理和结构设计一个实现增益可变可控的放大器电路。通过手动改变开关的分合状态,来控制单片机小系统I/O端口的高低电平,从而来控制模拟开关的各引脚的通断,每对引脚分别与运放的四条支路串联,而每对引脚之间则是两两并联,即实现单片机小系统对增益实现模块的控制功能,同时在数码管上显示相应的增益值。具体电路分析:将程序控制放大电路的程序写入单片机中并实时的检测电路的放大,通过P2口键盘扫描程序判断是哪个按键按下,并从P1口输出相应的键值,选通相应的模拟开关从而实现电路中对信号的放大作用。本设计由四个模块电路组成:单片机模块、运算放大器模块、模拟开关模块和数码显示管模块。程控放大器模块图如图2.1所示:图 2.1 程控放大器模块图相应的接口为:单片机P0口连接一个上拉电阻和数码显示管,P1口控制模拟开关,P2口的P2.0P2.3分别连接四个按键开关,P2口的P2.6-P2.7分别连接数码管的1、2管脚,信号发生器分别连接一个LM741的输入端口和示波器的A端口,另一个LM741的输出端口连接示波器的B端口。3 系统的硬件设计3.1 单片机控制系统3.1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit)5,常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,为使更多的业内人士、学生、爱好者,产品开发人员掌握单片机这门技术,于是产生单片机开发板。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器。单片机芯片如图3.1所示:图3.1 单片机芯片单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机是靠程序运行的,并且程序可以修改。通过不同的程序实现不同的功能,尤其是一些独特的功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。本次设计选用的是AT89C526 ,它是一种低功耗、高性能 CMOS8 位微控制器,具有8K在系统可编程 Flash存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位 I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。单片机管脚说明:AT89C52引脚排列如图3.2所示:图 3.2 AT89C52引脚排列图P0口8位漏极开路双向I/O口,每个引脚可驱动8个TTL逻辑电平。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它也可以被定义为数据/地址的第八位。在FILASH编程时,P0口作为源码输入口,当FIASH进行校验时,P0口输出原码,此时P0外部必须被拉高。P1口带内部上拉电阻的8位双向I/O口,P1口缓冲器能够接收输出4个TTL逻辑电平。P1口管脚输入“1”时,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流。这是由于内部上拉的缘故。在FLASH编程和校验时,P1口将作为低八位地址接收。P2口带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL逻辑电平, P2口当用于外部程序存储器或者16位地址外部数据存储器进行存取时,P2口输出地址高八位。在给出地址1时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”时,它们被内部上拉为高电平,并用做输入。作为输入,由于外部下拉为低电平,P3口将输出电流这是由于上拉的缘故。在编程和校验时,P3口可接收某些控制信号。由于本次设计未使用RST、ALE/PROG等端口,故在此不多做介绍。3.1.2 单片机控制功能的实现在本次设计当中, P0口接数码管,由于P0口内部没有上拉电阻所以需要先接一个上拉电阻,P1口控制虚拟开关的通断,P2口的P2.0P2.3分别连接四个按键开关,P2口的P2.6-P2.7分别连接数码管的1、2管脚。将程序控制放大电路的程序写入单片机中并实时的检测电路的放大,手动按下按键,通过P2口键盘扫描程序判断是哪个按键按下,并从P1口输出相应的键值,同时数码管显示出相应的放大倍数值,从而选通相应的模拟开关即实现对模拟开关的控制。3.2 模拟开关集成块CD40663.2.1模拟开关CD4066的介绍模拟开关CD4066是一种四路电子开关集成电路7,在电视机、影碟机、电话机、各种电子仪器仪表等上应用相当广泛。CD4066集成电路内部主要由四路功能完全相同的电子开关组成,各组开关分别受其相应引脚输入的电平控制,使电子开关接通或断开。CD4066主要用作模拟或数字信号的多路传输。引出端排列与CC4016一致,但具有比较低的导通阻抗。另外,导通阻抗在整个输入信号范围内基本不变。CD4066由四个相互独立的双向开关组成,每个开关有一个控制信号,开关中的p和n器件在控制信号作用下同时开关。这种结构消除了开关晶体管阀值电压随输入信号的变化,因此在整个工作信号范围内导通阻抗比较低。与单通道开关相比,具有输入信号峰值电压范围等于电源电压以及在输入信号范围内导通阻抗比较稳定等优点。3.2.2 CD4066工作状况和技术要求表 3.1 CD4066工作状况表DCBAS4S3S2S10000000000010001001000100011001101000100110111011110111011111111D C B A为开关断开与闭合的控制端00V或零点几伏电压 12.4V至5V之间的电压技术要求:(1) CD4066的电源供电电压范围为315V,本项目为5V;(2)抗高频噪声能力为0.45 VDD (typ.);(3)工作温度:-40+85 。3.2.3模拟开关CD4066功能的实现本设计中,P1口控制模拟开关(CD4066)的各引脚(共四对引脚)的通断,每对引脚分别与运放的四条支路串联,而每对引脚之间则是两两并联。通过P1口来选通相应的模拟开关,从而实现改变相应电阻串并联情况的功能。各接口定义如下:表3.2 各接口定义单片机控制信号输出管脚模拟开关控制管脚P1.0Control AP1.1Control CP1.2Control DP1.3Control B3.3 运算放大器 LM7413.3.1运算放大器 LM741的介绍运算放大器LM741是模拟电路的最重要的模块之一,是所有线性电路中最重要的基本单元电路,是一种应用非常广泛的通用型运算放大器。由于采用了有源负载,所以只要两级放大就可以达到很高的电压增益和很宽的共模及差模输入电压范围。它的引脚图如下所示: 图3.3 LM741放大器引脚图 LM741运算放大器使用时需于7、4脚位供应一对同等大小的正负电源电压+Vdc与-Vdc,一旦于2、3脚位即两输入端间有电压差存在,压差即会被放大于输出端,唯Op放大器具有一特色,其输出电压值决不会大于正电源电压+Vdc或小于负电源电压-Vdc,输入电压差经放大后若大于外接电源电压+Vdc至-Vdc之范围,其值会等于+Vdc或-Vdc,输出电压于达到+Vdc或-Vdc后会呈现饱和现象。LM741的特点:(1)不需要处部频率补偿;(2)输入有过压保护; (3)输出有过载保护; (4)无阻塞和振荡现象。3.3.2 LM741的技术要求和实现方式相关技术要求为:(1)工作温度为:-2075;(2)电源电压不能大于18V,本次给运放提供的电源电压为±5V;(3)输入阻抗为1M。实现方式:选择的电阻值分别:100K, 5K, 3.3K, 2K,根据反向比例放大器的增益计算公式:从而实现不同放大倍数的增益要求。连接方式如下图所示:图3.4 增益实现连接图3.4 数码显示管3.4.1 数码管介绍数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。本次设计选用共阴极数码管。 led数码管8是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片: 图3.5 10引脚的LED数码管 图3.6 LED数码管引脚定义3.4.2主要参数8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。 长*宽*高:长数码管正放时,水平方向的长度;宽数码管正放时,垂直方向上的长度;高数码管的厚度。 时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流0-60mA。 电压:查引脚排布图,看一下每段的芯片数量是多少?当红色与黄绿色时,使用1.9V乘以每段的芯片串联的个数;当绿色/蓝色时,使用3.1V乘以每段的芯片串联的个数。电路原理图见附录2。4 系统的软件设计4.1 软件总体说明 整个系统的软件体系结构:主程序main ( ) 首先进行各个模块以及参数的初始化工作,包括单片机系统初始化、全局变量赋初值以及串行通信口工作初始化,然后进入while循环语句,对按键进行扫描,判断按键是否按下,此处需要编译一个延时程序来防止按键抖动,根据相应的按键对信号进行相应倍数的放大,通过示波器显示出波形并用数码管显示出放大倍数。软件流程图如下图4.1 软件流程图功能说明:软件实现单片机每隔5ms扫描一下按键的状态,由当前的按键状态配合防按键抖动机制实现在0.25s间隔外的两次按键的识别,而在0.25秒间隔内的若干次按键只以一次计算,解决抖动问题。当程序检测到按钮按下并且是合法的(即不在抖动之列),就相应地改变放大电路CD4066的开关状态,实现控制电路增益。重要的位定义和全局变量: sbit KEY1=P20:不进行放大;sbit KEY2=P21:放大20倍;sbit KEY3=P22:放大30倍;sbit KEY4=P23:放大50倍sbit wei1=P26: 位定义sbit wei2=P27: 位定义sbit类型均为:按下时为0,弹起时为1。unsigned int i:无符号整形变量i;code unsigned charsmg=0x3F,0x06,0X5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F:共阴极7段数码管段码;void display(unsigned char value):数码管显示函数;4.2 按键消除抖动模块描述clock1s_flag:按键空闲标志位,如果在某个时刻的前250毫秒内没有其他按键事件,那么该时刻按键是空闲的,再不按键的情况下默认为不进行放大处理,按键空闲标志位置1;否则置0,按键被认为与前一次是同一次,作无效处理。 本设计需要消除由于单片机检测按键状态时间间隔过短,使得在一次按键活动中系统误以为是好几次按键而发生增益和数码管显示的跳变现象。我们可以通过编译一个延时程序来消除按键抖动的现象,程序如下:unsigned int i;void time () for(i=0;i<1000;i+); 该段程序的功能是通过进入一个循环语句来达到延时的目的,从而可以达到防止按键抖动的效果。4.3 数码管显示模块本设计通过P0口外接一个数码显示管,由于P0口内部没有上拉电阻,所以需要外接一个上拉电阻。P2口的P2.6和P2.7口分别定义为数码管的十位和个位。在进入while循环语句后,先判断是哪个按键被按下,然后进入switch语句,根据相应的按键通过之前定义的display函数来显示出放大倍数的具体数值。Switch函数如下:switch(P1)case 0x11: display(1); break; /数码管显示放大1倍的数值case 0x22: display(20); break; /数码管显示放大20倍的数值case 0x44: display(30); break; /数码管显示放大30倍的数值case 0x88: display(50); break; /数码管显示放大50倍数值default: break;Display函数如下:void display(unsigned char value)unsigned char value1,value2;value1=value/10; /十位value2=value%10; /个位wei2=1; /个位置1wei1=0; /十位置0P0=smgvalue1 ; /数码管显示十位上的数值delay_50us(10); /延时大约500uswei1=1; /十位置1wei2=0; /个位置0 P0=smgvalue2; /数码管显示个位上的数值delay_50us(10); 4.4 动态扫描模块为了使数码管能够清楚的显示出放大的具体倍数值,需要添加一段动态扫描程序:void delay_50us(unsigned int t) /延时50us的整数倍 unsigned int i; for(;t>0;t-) for(i=19;i>0;i-); 注:完整程序见附录1。5 软件的调试 软件设计是本次设计的重要组成部分。在单片机应用系统中,最常用的程序设计就是模块化程序设计。模块化设计具有结构清晰,功能明确,设计简便,程序模块可以共享,便于功能扩展及程序维护等特点。 本次设计中需要用到的一些设计软件,其中Keil uvision 4,Proteus 7 Professional就是主要的两种设计软件。Keil uvision49是目前广泛使用的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M语言等源程序编辑语言。Proteus 7 Professional10主要用来画电路原理图,并进行仿真。5.1 keil 软件的调试Keil软件是目前最流行开发51单片机的软件设计之一,提供了C编辑器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成的开发环境将这些部分组合在一起。我们通过keil软件编写的汇编源程序或者C语言源程序需要变为可执行代码的扩展名为HEX的二进制文件机器码才能在CPU等微处理器上执行。Keil软件具体操作步骤如下:第一步,双击keil uvision4桌面快捷图标,进入软件主界面,然后从工程菜单中选择新建工程既为我们的目标。新建工程名要体现出本设计大致意义,可以是中文和英文; 第二步,设置好后就将该工程保存到桌面程控运放文件夹中;第三步,在KEIL开发环境中要为我们的设计选择一个单片机型号,选ATMEL 公司的AT89C52单片机;第四步,确立了工程项目之后就算建立了工程项目,为此添加程序。点击文件中的新建文本文档然后在保存在工程项目所在的文件夹中;第五步,保存了.C文件后就要将其添加到工程中去,鼠标右击SOURCE GROUP 1在弹出的菜单中选择增加文件到SOURCE GROUP 1中;第六步,右击Target 1,在打开的对话框中选择Options for target,然后在弹出的对话框中选择输出OUPUT选项卡,在选择生成HEX文件选项前打勾按确定退出。编写好源程序后通过编译连接执行后生成可执行二进制代码文件HEX文件,并确定无错误后将此文件烧入单片机中检测程序是否符合本次设计的要求。反复调试直到最后无错误无警告即可。5.2 Proteus软件的调试5.2.1 Proteus软件的介绍Proteus是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus软件的特点:(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势;(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1C调试器、SPI调试器、键盘和LCD系统仿真的功能;(3)目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片;(4)支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。5.2.2 Proteus软件的操作步骤第一步,双击桌面Proteus软件的快捷图标,进入软件界面;第二步,查找设计所需的各个器件,点击按钮“P”,会弹出一个窗口,在Keywords中输入各个器件的关键词,然后在从右边的列表中选择本次设计所用的器件,点确定;如下图所示:图5.1 选择所需器件第三步,重复第二步直到所有器件都找齐为止;第四步,将各个器件按设计连接起来;第五步,双击AT89C52,在弹出的窗口中将用Keil软件生成的HEX文件加载进去中;如下图所示:图5.2 加载HEX文件第六步,按下运行开关,然后分别按下四个按钮,通过示波器观察波形的变化情况以及数码管的显示情况。5.3仿真结果1.按下第一个按键,得到放大一倍的仿真结果如下图所示:图5.3 放大一倍的仿真结果2.按下第二个按键,得到放大20倍的仿真结果如下图所示:图5.4 放大20倍的仿真结果3.按下第三个按键,得到放大30倍的仿真结果如下图所示:图5.5 放大30倍的仿真结果4.按下第四个按键,得到放大50倍的仿真结果如下图所示:图5.6 放大50倍的仿真结果6 结论本论文首先对程序控制运算放大器进行了一个概述,介绍了它的种类、应用和特点,简述了设计的要求并提出了符合要求的总体设计方案以及最终能够实现的功能。然后论文分别从硬件和软件两个方面对程序控制运算放大器的设计进行了详细的分析和说明,分别列出了硬件和软件的开发工具,最后详细地介绍了软件的调试过程。总的来说,此次设计完成了任务书规定的各项要求,在学习C语言、单片机等内容的基础上,进一步学习并实践了程序的编译和调试、Keil和Proteus软件的使用等多种实用技术,成功设计出一个功能符合要求的程序控制运算放大器。既学习了不少新的知识和技术,也亲身体验了软件设计和开发的过程,个人觉得收获颇丰。当然,这次设计的程序控制运算放大器还只是一个初级产品,还可以从以下几方面进一步完善:1) 通过改变增加开关的个数并且控制它们的分合状态,来调整电阻的并联和串联的情况,理论上可以形成更多种不同的增益方式。2) 调节精度,可以实现增益的逐级放大。3) 可以增加数码管的个数,来显示更详细更准确地放大倍数(包括小数点的显示);4) 可以增加低通、高通、带通、带阻等滤波器来得到满足设计要求的信号频率。参考文献1张俊谟. 单片机的发展与应用J. 电子制作,2007,08:6-9+42.2傅越千. 程控放大器的设计与应用J. 宁波高等专科学校学报,2002,04:37-40.3蔡凌云,方振和,李铭祥,赵安康,韩建国,葛建民.自动增益控制技术应用J. 电子工程师,2002,04:22-23+37.4上海 陈坚苏. CD4066四双向摸拟开关的简易测试J. 电子报,2010-03-28010.5艾云峰,杨栋毅. 嵌入式微控制器原理与应用课程教学研究J. 计算机教育,2013,02:74-78.6凌志浩.AT89C52单片机原理与接口技术M .高等教育出版社,2011,3,1.7李泽民. 开关集成电路应用J. 电工技术,1992,11:30-31.8苏成富. LED数码管的结构与使用J. 家庭电子,1996,11:28.9葛海江,陶姗. 融合Proteus于Keil uVision的C51教学模式探索与实践J. 中国科技信息,2009,24:238-239+261.10刘政,吴慧峰. Proteus在单片机实验教学中的应用J. 考试周刊,2011,23:148-149.附件1 程序清单 #include<reg52.h>sbit KEY1=P20; /不进行放大处理sbit KEY2=P21; /放大20倍sbit KEY3=P22; /放大30倍sbit KEY4=P23; /放大50倍sbit wei1=P26; /位定义sbit wei2=P27; /位定义unsigned int i;code unsigned charsmg=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; void display(unsigned char value); void time () /延时程序防止按键抖动 for(i=0;i<1000;i+) ; void delay_50us(unsigned int t) /动态扫描函数 unsigned int i;for(;t>0;t-)for(i=19;i>0;i-); void display(unsigned char va

    注意事项

    本文(2019程序控制运算放大器.doc)为本站会员(上海哈登)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开