毕业设计论文基于ARM的交流电压变送器设计.doc

上传人:sccc 文档编号:4859804 上传时间:2023-05-20 格式:DOC 页数:27 大小:2.85MB
返回 下载 相关 举报
毕业设计论文基于ARM的交流电压变送器设计.doc_第1页
第1页 / 共27页
毕业设计论文基于ARM的交流电压变送器设计.doc_第2页
第2页 / 共27页
毕业设计论文基于ARM的交流电压变送器设计.doc_第3页
第3页 / 共27页
毕业设计论文基于ARM的交流电压变送器设计.doc_第4页
第4页 / 共27页
毕业设计论文基于ARM的交流电压变送器设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《毕业设计论文基于ARM的交流电压变送器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于ARM的交流电压变送器设计.doc(27页珍藏版)》请在三一办公上搜索。

1、中南民族大学毕业论文(设计)学院: 计算机科学学院 专业: 计算机科学与技术 年级:2005级题目: 基于ARM的交流电压变送器设计 学生姓名: 学号: 05061058 指导教师: 职称: 副教授 2009年 5 月 25 日ii目 录摘要1Abstract11 概述21.1 项目背景21.1.1 变送器21.1.2 电压变送器21.1.3 嵌入式系统21.2 课题研究的目的与意义31.3 课题的主要内容32 系统整体方案32.1 交流电压变送器的一般构成32.2 嵌入式平台设计33 交流电压变送器硬件设计43.1 降压电路设计43.2 精密整流电路设计53.2.1 常用整流电路53.2.2

2、 精密整流电路63.2.3 滤波电路设计73.3 V / I转化电路设计93.4 单片机及AD接口电路设计113.4.1 晶振及复位电路113.4.2 ADC0808电路接口113.4.3 LED数码管显示电路123.4.4 主控制器及其外围电路133.5 电源电路设计134 软件设计134.1 软件开发环境134.2 计数定时程序设计144.3 LED显示程序设计144.4 主控程序设计155 调试及结果155.1 仿真调试155.2 数据分析176 结束语18致谢19参考文献19附录21附录A 程序清单21附录B 电路图23附录C 元器件清单24基于ARM的交流电压变送器设计摘要:针对电压

3、监控在电力系统的广泛应用,设计了一个供监视使用的电压变送器。采用精密整流电路进行电压整流,再经过滤波得到与电压源成线性比例的直流电压,并设计了V/I转换电路。以AT89C52单片机作为微控制器,结合ADC0808芯片以及LED数码管,实现电压显示。在Keil uVision2的开发环境下,设计了采样、显示以及数据处理等程序,实现了电压变送器功能。在Proteus下进行仿真调试,达到预期结果。关键词:电压变送器;嵌入式系统;单片机The Design of AC Voltage Transmitter Based on ARMAbstract:In connection with the wid

4、ely use of voltage monitoring in power systems, an AC voltage transmitter was designed. The design transformed an AC voltage by taking use of the precision rectifier and filtering circuit, and a DC voltage was obtained. A V/I transforming circuit was also designed. The DC voltage was sampled by the

5、ADC0808 and displayed by the LED which was based on the control of the AT89C52 MCU. In the environment of Keil uVision2, the sampling, displaying, data processing and other codes were done. And the function of the voltage transmitter was achieved. The simulation and debugging were carried out by the

6、 software Proteus and the expect effects had been arrived.Key words:voltage transmitter; embedded system; single-chip microcontroller1 概述自动化仪表主要由检测仪表和控制仪表两大部分组成。随着生产的不断发展,生产规模越来越大,相应的自动化管理系统也日趋复杂。自动化管理系统当中的一个重要的方面是对电压的实时监控1。电压变送器是工业过程重要的基础自动化设备之一,主要完成电压信号的测量和变换处理。本课题正是要设计一个电压变送器,实现对电压的转换和显示。1.1 项目背景

7、电压变送器广泛应用于生产、工业等各种领域,目前国内外技术已经很成熟。嵌入式系统是近些年新兴的一个控制系统,发展前景较好。将两者有效结合,以嵌入式系统为控制平台,完成交流电压的转换,将会为变送器技术带来进一步的提高。1.1.1 变送器变送器,一般是一种将普通电信号(如电流、电压、功率、频率、功率因数等信号)或者物理测量信号(如温度、湿度、光、热等信号)转换为标准电信号输出或能够以通讯协议方式输出。它一般将物理量的变化转化成4 20mA、1 5V等标准信号,供传输、监视使用2。变送器有很多种类,用在工业控制上的一般分为:温度/湿度变送器、压力变送器、差压变送器、液位变送器、电流变送器、电量变送器、

8、流量变送器、重量变送器等。电量变送器是一种将被测电量参数转换成直流电流、直流电压并隔离输出模拟信号或数字信号的装置。这种隔离输出的标准信号可以直接和各种MCU、A/D转换器以及计算机系统相接,形成一个可靠的监控系统。1.1.2 电压变送器电压变送器是电量变送器的一种,它是一种将被测交流电压、直流电压、或脉冲电压转换成按线性比例输出直流电压或直流电流,并隔离输出模拟信号或数字信号的装置。一般,其输入电压信号为0 5V / 0 10V / 1 5V,输出电流信号为0 10mA、0 20mA、4 20mA ,输出电压信号为0 5VDC、0 10VDC、1 5VDC。电压变送器又分直流电压变送器和交流

9、电压变送器。交流电压变送器是一种能将被测交流电压转换成按线性比例输出直流电压或直流电流的装置,广泛应用于电力、邮电、石油、煤炭、冶金、铁道、市政等部门的电气装置、自动控制以及调度系统。 交流电压变送器具有单路、三路组合结构形式。直流电压变送器是一种能将被测直流电压转换成按线性比例输出直流电压或直流电流的装置,也广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等各个需要电量隔离测控的行业3。1.1.3 嵌入式系统通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,是一种专用的计算机系统,作为装置或设备的一部分。嵌入式系统通常包括硬件和软件两部分。硬件是构成软件的基本运行环境。

10、嵌入式系统硬件的核心是嵌入式处理器。嵌入式处理器通常将CPU、少量的RAM、Flash和其他接口封装在一片集成电路中。嵌入式处理器可以分为嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、嵌入式DSP(Digital Signal Processor)等4。随着科技的发展,嵌入式产品已经广泛地渗透到日常生活、科学研究和军事技术等各个领域。1.2 课题研究的目的与意义在电力系统中,对各种数据和参数的处理和监视是一项重要工作。一直以来这些数据一般都是以模拟信号的形式存在,且常用标准为:电流(0 5)A,电压(0 100)V,均为交流信号。随着数字技术的不断发展,电力参数的数字化测量方式必然要取代

11、模拟方式。电力系统中各种参数的高低变化,关系到生产生活的各个方面。嵌入式系统广泛应用在工业智能化控制领域。因此将模拟电量信号转化成符合标准的直流数字信号并使用嵌入式系统平台进行实时监视就显得很有必要5。本课题的研究目的是对与电压转化相关的整流、滤波电路进行深入了解,并设计出基于嵌入式系统的电压变送器,实现对交流电压的转换和显示。1.3 课题的主要内容本课题主要是针对电压变送和数字监控的研究与设计。主要工作的内容如下:(1)分析整流、滤波、稳压电路的原理及应用;(2)研究集成运算放大器的原理及信号的运算处理电路等;(3)设计精密整流电路及V / I转化电路;(4)设计单片机平台及AD转换电路;(

12、5)实现对数据的监控视操作。2 系统整体方案2.1 交流电压变送器的一般构成交流电压变送器一般分为降压、整流、滤波、V / I转换、AD采样及输出五个环节。其结构如图2-1所示。图2-1 电压变送器结构图降压环节是指通过变压器将较高的交流电压信号转换成为符合整流电路需要的较低的交流电压信号,供下一级输入。整流环节的作用是把交流电压转化为脉动的直流电压。整流后的脉动电压还不能直接使用,还要经过滤波环节的滤波,转化为平滑的直流电压。工业上标准的电流信号为4 20mA,V / I转换环节就是将相应的直流电压转换成与其有线性比例关系的直流电流信号。嵌入式平台主要实现AD采样、显示输出以及其它相关方面的

13、控制。AD采样及输出环节通过AD数模转化芯片将模拟电压信号转变成相应数字电压信号,在LED中实时显示电压值,供监控和进行其他操作。2.2 嵌入式平台设计嵌入式微处理器(MPU)通常是指ARM微处理器。ARM采用RISC精简指令集体系,大量使用寄存器,译码时间短;支持Thumb(16位)/ARM(32位)双指令集,很好的兼容8位/16位器件2。嵌入式微控制器(MCU)通常包括MCS-51、P51XA、C166/167等。51单片机是嵌入式系统的一部分。它内含多位I/O寄存器、5 6个中断源、2个16位定时器、片内ROM,使用方便、价格便宜,广泛应用于仪器仪表、自动控制、家用电器等各个领域6。LP

14、C2106是Philips公司新推出的一款基于ARM7TDMI-S的32位微控制器,带有128KB的片内高速F1ash存储器和64KB的片内SRAM,与片内存储器控制器接口的ARM7局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB)。它具有非常小的尺寸和极低的功耗,带有宽范围的串行通信接口(双UART、SPI、I2C)。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟频率下运行7。LPC2106具有如下主要特征:(1)32位ARM7TDMI-S处理器,64KB片内静态RAM和128KB片内Flash程序存储器,可通过片内Bo

15、ot装载程序实现在系统编程(ISP)和在应用编程(IAP)。编程及擦除时间极短;(2)具有32个通用IO口,两个32位定时器 / 外部事件计数器,6路输出PWM单元,看门狗,实时时钟(RTC),多个串行接口:UART、SPI、I2C;(3)CPU操作频率60MHz,带向量中断控制器(VIC),可配置优先级向量中断。自带跟踪接口提供实时调试功能和高速跟踪功能;(4)CPU电压1.8V0.15V,IO电压范围3.3V0.3V。具有两个低功耗模式,实现功耗最低化;AT89C52微控制器,是ATMEL公司生产的51系列单片机的一个型号,是一个低电压,高性能CMOS 8位单片机。其片内含8k bytes

16、的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元8。主要功能特性如下:(1)兼容MCS51指令系统;(2)8k可反复擦写(1000次)Flash ROM;(3)32个双向I/O口,2568bit内部RAM;(4)3个16位可编程定时/计数器中断,时钟频率0 24MHz;(5)2个串行中断,可编程UART串行通道;(6)2个外部中断源,共6个中断源;(7)2个读写中断口线,3级加密位;(8)低功耗空闲和掉电模式,软件设置睡眠和唤

17、醒功能。本设计拟采用LPC2106芯片作为主控制器。由于仿真软件中没有ARM处理器芯片相关元件模型,故采用AT89C52替代LPC2106进行实际电路设计。进行实际电路搭建时,只需将LPC2106替换AT89C52即可。3 交流电压变送器硬件设计本设计的核心是对交流电压进行精密整流输出直流电压、将电压进行V/I转化输出相应成线性比例的420mA电流以及对电压进行AD转化并通过LED显示。因此,如何设计这些主要电路,成为了本设计的关键。3.1 降压电路设计这一部分主要实现的功能是将较高的交流电压降压,提供下一级整流电路的输入。一般选用变压器来为电源电压降压。本设计中输入电压UI为0100V交流,

18、输出电压UO为05V交流,变压器绕组设定为N1 : N2 = 20 : 1。考虑到电源电压的波动,设置变压器接入电压为100V20%。降压电路如图3-1所示。图3-1 降压电路变压器的选择:双边电压比例系数为120 : 6 = 20 : 1,即变压器变比。在变压器容量选择上,由于后续电路功率很小,小于1W,变压器选择电压等级为120V,功率为1W。另外,出于对后级接入电路保护的考虑,防止电压突然升高带来的冲击,还要在电路中变压器的原边接入一个起保护作用的快速自恢复管D1。快速自恢复管又叫瞬态电压抑制二极管。电子系统的应用当中,电压及电流的瞬态干扰会经常造成电子设备的损坏,瞬态干扰的显著特点是作

19、用时间极短,但电压幅度高、瞬态能量大,所以破坏性很大。为了防止这种破坏,自恢复管得到了广泛的应用,其电路符号和普通稳压二极管相同,外形也与普通二极管无异,当其两端经受瞬间的高能量冲击时,它能以极高的速度(最高秒)使其阻抗骤然降低,同时吸收一个大电流,将其两端间的电压锁定在一个预定的数值上,从而确保后面的电路元件免受瞬态高能量的冲击而损坏。双向自恢复管可以在正反两个方向吸收大脉冲功率,并把电压限定在预定水平,一般用于交流电路,单相自恢复管一般用于直流电路9。本设计中,为了防止电压瞬间增高,设定D1最大击穿电压为300V。根据上述条件选取的自恢复管的型号为1.5KE300A,峰值功率为1500W。

20、当电网电压超过300V时,它就可以有效抑制电网带来的过载脉冲,从而起到保护负载中所有元器件的作用。3.2 精密整流电路设计3.2.1 常用整流电路要想完成交流到直流的转换,整流电路的设计是关键。整流电路的目的就是将交流电压转变成脉动的直流电压。它的种类很多,按不同的整流方式,大概可以分为如下几类:图3-2 二极管伏安特性曲线(1)单向整流和双向整流;(2)半波整流和全波整流;(3)桥式整流和倍压整流;(4)二极管整流和可控硅整流。这些整流电路的原理大同小异,它们大多都利用了二极管的单向导电性。半导体二极管由一个PN结及它所在的半导体再加上电极引线和管壳构成。它的伏安特性曲线如图3-2所示。在曲

21、线OC段,它正向电流iD非常小,只有当正向电压超过某一数值时,才会有明显电流,这个电压值称为开启电压;CD段,电流迅速增大,二极管上的正向压降变化却很小;OB段,二极管加反向电压,反向电流很小,可以认为电路处于截止状态;BA段,当二极管反向电压大于某一数值时,电流急剧增大,二极管被反向击穿10。利用二极管的以上特性,可以设计相应电路,进行整流。一般二极管电路的整流电路如图3-3所示。由于二极管存在开启电压,且开启后会有正向压降。电路中,输出电压。当输入电压较大时,电路可以很好的对输入电压进行整流;当0UI0时,运放A1输出小于0,运放A2输出大于0,二极管D1截止、D2导通。这时电路等效成两个

22、电阻R1、R2串联,再与由运放A2构成的电压跟随器并联,则UO=UI。当UI0时,运放A1输出大于0,运放A2输出小于0,二极管D1导通、D2截止。这时的电路等效成反向比例电路。取R1= R2,则。由上,。因此精密整流电路也称为绝对值电路11。当输入有效值为5V,频率为50Hz的正弦波信号时,将输出相对应的整流波形,其波形图图如图3-6 所示。精密整流电路克服很好的二极管D1、D2在信号非常小时的非线性和正向导通压降。图3-6 输入输出波形3.2.3 滤波电路设计经整流后的电压还不能直接作为直流电压使用,还需要对其进行滤波。滤波电路就是将脉动的直流电压转化成平滑的直流电压的过程。一般采用电容与

23、负载并联,或者电感与负载串联来构成。在此,我们采用电容滤波电路进行电压滤波。其基本电路图如图3-7所示。图3-7 滤波电路电容器具有“通交流,阻直流”的特点,它是一个储能元件,随着电压的变化,其储存和释放的能量也在不断变化。对于图3-7,其输出波形图如图3-8所示,它的工作原理大致如下:图3-8 滤波电路波形图(1)t1 t2时刻,UI上升,UI大于电容上的电压UC,UI对电容充电,此时UO=UCUI;(2)t2 t3时刻,UI下降,UI小于电容上的电压。二极管两端电压为负,截止。电容C通过RL放电,UC按指数规律下降,时间常数,UO= UC。输出电压的平均值,即输出直流电压通常为,它与时间常

24、数有关。t越大,电容器放电时间越慢,输出电压平均值也就越大10。一般取。这时经滤波后的电压已经变得很平滑,但是还是有明显的脉动信号,特别是当RL C很小时。为了进一步得到平整的直流电压,可以考虑采用多级滤波的方法,即在电路后再加一级或多级电容滤波电路。本设计采用的RC-p型滤波电路图如图3-9所示。图3-9 RC-p型滤波电路图这样脉动电压经过多级滤波之后,就已经转化成了非常平滑的直流电压。此外,由于整流电路本身输出电阻过小,且下一级V/I转化电路和AD数模转化电路输入电阻大。输出电阻越小,输入端得到的电压也越小,信号源电压衰减的也越大;输入电阻越大,输出电压越不稳定。整流电路带负载能力因此也

25、降低,输出的直流电压无法带动后面的电路。所以还需要在整流滤波电路后设计一个同向比例电路,以提高电路带负载能力。设计合适的同向比例电路可以使整个电路“输入高阻态,输出低阻态”,使电路对于前一级电路呈现高阻状态,相当于开路;对于后一级电路呈现低阻状态,相当于恒压源。前后级电路不会相互影响。有效地起到了隔离、提高负载能力的作用。本设计的电压跟随器电路如图3-10所示。这是电压串联负反馈电路。图3-10 同向比例电路图中,由于,所以有,所以 (3.2.1) 上式表明输出电压与输入电压相位相同,大小成一定比例关系。当Rf趋向于0或R1趋向于无穷大时,输出电压与输入电压近似相等10。同时电路带负载的能力也

26、得到了提高。3.3 V / I转化电路设计4 20mA电流是标准电信号之一。在工业、电力现场,用一个仪表完成信号的处理并采用电压进行长线传输,传输线会受到噪声的干扰、传输线上的电阻会产生一定的压降12。采用电流信号进行传输就可以很好的解决以上问题。V/I转化电路就是要将05V电压信号转化成420mA电流信号。将0 5V电压转化成4 20mA电流,需要由两部分电路完成。一是利用加法电路完成05V电压的提升,二是利用电压电流转化电路完成压流转化。(1)加法电路加法电路如图3-11所示,完成两个电压的加法运算13。图3-11 加法器电路图中节点P的电流方程为所以同向输入电位 (3.3.1)其中。 将

27、式3.3.1代入式3.2.1,得 (3.3.2)式中。若,则 (3.3.3)(2)电压电流转化电路电压电流转化电路如图3-12所示,主要完成电压、电流的线性变换13。图3-12 电压-电流转换电路图中A1构成同向求和运算电路,A2构成电压跟随器。图中,因此 (3.3.4)将式3.3.4代入上式,R0上的电压所以 (3.4.5)已知IO的输出范围为420mA,根据式3.4.5列出如下方程组: (3.4.6) 根据式3.4.2列出如下方程: (3.4.7)图3-11中输出电压UO即为图3-12中的输入电压UI。UI1MIN为0V,UI1MAX为5V。将以上数据及方程组3.4.7代入方程组3.4.6

28、,化简得出 (3.4.8) 根据上式,在加法电路3-11中,取,则可得V。即当UI1为05V电压、V时,经过加法电路以及电压-电流转换电路后,即可得到420mA直流电流。5V电压可以从供电电路得到。3.4 单片机及AD接口电路设计本设计采用AT89C52的MCU平台,结合8位数模转换器ADC0808对输入电压进行数模转化,并通过单片机控制7SEG-MPX4-CC型LED进行实时电压显示,达到电压显示的目的。在使用LPC2106作为主控制器进行实际电路搭建时,只需将AT89C52替换即可。AT89C52有40个引脚,32个外部双向输入 / 输出端口,同时内含2个外中断口,3个16位可编程定时计数

29、器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。它将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本8。下面给出基于AT89C52单片机系统控制平台体系结构设计图,硬件框图如图3-13所示。图3-13 系统控制平台框图3.4.1 晶振及复位电路晶振电路用于向 MCU及其它电路提供工作时钟。晶振一般分为有源晶振和无源晶振。根据AT89C52最高工作频率以及 ADC电路的工作方式,本系统使用 12MHz 的无源晶振,电路如图 3-14 所示。复位电路可以使主机各部件恢复为出事状态。复位电路如图3-15

30、所示,电路在上电复位电路的基础上并联了一个开关,既可保证上电复位,又可手动复位。图3-14 晶振电路图3-15 复位电路3.4.2 ADC0808电路接口ADC0808是采样频率为8位的、以逐次逼近原理进行模数转换的器件。其它由单一+5V电源供电,其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。每次转换耗时100s,输出带有TTL三态锁存缓冲器,可直接与51系列单片机数据总线相连14。其主要特性如下:(1)8路8位AD转换器,即分辨率8位; (2)具有转换起、停控制端; (3)转换时间为100s;(4)单个+5V电源供电; (5)模拟

31、输入电压范围0+5V,不需零点和满刻度校准; 表3-1 地址译码表C B A选中地址0 0 0IN00 0 1IN10 1 0IN20 1 1IN31 0 0IN41 0 1IN51 1 0IN61 1 1IN7(6)工作温度范围为-40+85摄氏度; (7)低功耗,约15mW。其片内的3-8地址译码器,A、B、C为地址入口,可以选中任一地址线,实现IN0IN7的8路选一。A、B、C三位的地址输入与8路地址的对应关系如表3-1所示。本例中,A、B、C三脚分别与地相接,通过译码选中IN0地址,电压信号通过滑动变阻器器接入IN0。由于ADC0808的模拟输入电压范围为0+5V,而考虑到电网电压的向

32、上浮动,整流得到的直流电压也会超过+5V,故将滑动变阻器阻值调到中央分压,再通过软件编程,将ADC0808的测量范围调整到0+10V。ADC0808与AT89C52接口电路如图3-16所示。图3-16 ADC0808接口设计P3.3口作为ADC0808的CLK,通过软件定时,控制其时钟信号。START、EOC、ALE、OE分别与P3.0、P3.2、P3.7、P3.1。通过软件控制和读取其信号数值。根据对ADC0808的转换输出信号EOC的不同处理方式,可分为查询方式和中断方式两种。本例中选用的是查询方式,开始转换后,通过软件不断查询EOC电平的高低,来判断转化是否结束。参考电压VREF(+)接

33、+5V电源,VREF(-)接地。图3-17 LED数码管接口电路对于ADC0808的串行接口时序,采用对AT89C52单片机的端口编程来控制其变化,这具体体现在软件设计部分。3.4.3 LED数码管显示电路本例中电压显示采用7SEG-MPX4-CC共阴极数码管。其电路接口如图3-17所示。段地址A、B、C、D、E、F、G、DP分别与AT89C52的P1口相连,位地址1、2、3、4分别与P2.0、P2.1、P2.2、P2.3口相连。通过软件编程控制段的输出与位的选择。实现动态显示。3.4.4 主控制器及其外围电路主控制器及其外围电路见附录B。当有电压输入时,LED就会实时显示电压值。电压测量范围

34、为010V。3.5 电源电路设计AT89C52单片机需要+5V电源供电,运放LM741需要9V电源供电才能正常工作。引入监控电源,由于对整流精度要求不高,可利用桥式整流电路对监控电源整流,再利用7809、7909系列芯片稳压后,即可输出直流9V电压。得到+9V电源后,继续利用7805芯片对其进行稳压,得到+5V电源。78XX、79XX系列产品是一种输出固定正、负电压的三端稳压集成电路,可得到5V、9V,12V等七个档次电压,它们价格低廉性能稳定,已应用在多个领域,基本上取代了由分离元件组成的稳压电路15。电源电路如图3-18所示。图3-18 电源电路如图,UI为监控电压,UO1为稳压后得到的+

35、9V直流电压,UO2为稳压后的到的-9V直流电压,UO3为稳压后的到的+5V直流电压。当输出电压接入负载时,还需要在电路中加入去耦电路。4 软件设计4.1 软件开发环境 设计采用Keil uVision2进行软件部分的开发。Keil uVision2软件是目前最流行开发MCS-51系列单片机的软件,它是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。Keil uVision2提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合

36、在一起。其方便易用的集成环境、强大的软件仿真调试工具会令工作事半功倍。Keil uVision2软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil uVision2生成的目标代码效率非常高,语句生成的汇编代码很紧凑,容易理解。它可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。4.2 计数定时程序设计ADC0808的转换过程遵照严格的时序步骤。其对应的时钟控制端口如表4-1所示15。表4-1 ADC0808时钟端口端口功能CLK时钟信号输入端。START转换启动信号输入端口,高电平有效。ALE地址所存允许信号

37、输入端,下降沿有效。EOC转化结束输出端口,开始转换时为低电平,一旦转化结束时输出高电平。OE完成转换后数字量输出允许信号输入端口,高电平有效。本设计采用P3.3口控制ADC0808的输入时钟。设置定时计数器工作在方式1,计数位为16位。对12MHz的MCU晶振频率,一个机器周期=12晶振频率=1s。由于ADC0808的转换时间为100s,即定时时间是100s,则可求得计数次数为X=100s1s=100次。计数器字长n为16,则(X)补=216-100=65436。再将此数变成低8位和高8位的十六进制数,分别装入计数寄存器TL1和TH1中,即完成了定时计数器的程序设计。每定时结束一次后,就对C

38、LK取反,实现其高低电平的准确的交替变化14。4.3 LED显示程序设计本设计采用7SEG-MPX4-CC共阴极数码管。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮17。其结构形式如图4-1所示。本设计采用的LED七段共阴极数码管内部字段如图4-2所示。根据数码管内部字段格式以及共阴极数码管的显示特性,确定了共阴极数码管编码表表4-2。图4-1 共阴极数码管结构图图4-2 数码管内部字段图数码管显示又可分为静态和动态

39、两种方式。静态显示是指每个数码管的每一位都由单片机的I/O口或者译码器进行驱动。其优点是编程简单,显示亮度高;缺点是占用I/O口较多。动态显示是指由编程控制数码管逐位显示。当动态显示时,所有数码管的字形都相同,但由哪一位显示则由程序进行控制。显示间隔为12ms,扫描速度快,对于人眼没有闪烁感。动态显示占用CPU大量时间,但节省了硬件资源。本设计采用动态显示方式。由P2.0、P2.1、P2.2、P2.3分别控制4位数码管1、2、3、4位的选择18。数码管显示子程序流程图如图4-3所示。表格4-2 七段共阴极数码管编码表字型dpgfedcba共阴编码0001111113F1000001100620

40、10110115B3010011114F401100110665011011016D6011111017D700000111078011111117F9011011116FA0111011177B011111007CC0011100139D010111105EE0111100179F01110001714.4 主控程序设计由表4-1,要完成整个转化过程,则要对AD转换器的时序有严格的控制。程序中先对ADC0808的引脚初始化,再完成定时计数器的设置。在主程序中,通过设置相应的时序端口,完成对转化过程的控制。转化完成得到结果转化成BCD码后,调用LED显示程序,在LED中实时显示。另外,由于电压

41、波动,输入整流电压会大于+5V,而ADC0808的测量范围是0+5V。为了解决这个问题,电压输入的时候采取分压的方式,输入电压只有实际测量电压的一半。在软件编程中,将得到的转化结果乘以2,即可得到实际电压值。这样测量电压范围扩大到了0+10V。 转化的整个过程中,都伴随有定时计数器的中断执行过程。程序流程图如图4-4所示。5 调试及结果5.1 仿真调试本设计选择在仿真软件PROTEUS ISIS中仿真实验过程,调试实验结果。Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组

42、成的系统的仿真、RS-232动态仿真、IC调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持大量的存储器和外围芯片,完全满足本设计的仿真需求。PROTEUS ISIS 实验环境如图5-1所示。在PROTEUS ISIS中选择所需元件,进行电路连接。电路连接完毕后即可对电路进行仿真。在PROTEUS ISIS中,电路图如图5-2所示。图4-3 数码管显示流程图图4-4 程序流程图图5-1 仿真环境图5-2 仿真电路图点击仿真按钮对电路进行仿真。设置好电压源幅值,即可通过电压表观察电路中各处电压值。最后得到直流电压可通过LED显示,并可将电压

43、转化成对应电流。具体调试步骤如下:(1)首先利用Keil C51编译已经写好的C语言程序,设置仿真器工作频率为22.1184MHz。编译好程序后,会在工程目录下的到相应的.hex文件。(2)进入PROTEUS ISIS,双击工作区的AT89C52芯片,在PROGRAM FILE选项中选择步骤(1)中得到的.hex文件,确定后点击开始按钮即可开始仿真。(3)仿真测试输入电压从0V开始。当输入的50Hz交流电压有效值小于2V时,输出电压一直为0。当电压有效值大于等于2V,即可得到相应的整流电压以及直流电流。下面给出经测试所得的一些输入电压值及输出电压、输出电流值。如表5-1所示。表5-1 输入电压、输出电压及电流测试值UI(V)23510203040UO(V)0.100.150.250.500.981.492.00IO (mA)4.334.494.825.597.208.7810.40UI(V)5060708090100110

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号