基于AVRatmega_16交直流电压表的设计本设计是基于ATmega16单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。该系统采用ATmega16单片机作为控制核心,以MAX187为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用HS1602ALCD液晶显示器显示被测电压。设计所需的全部资源ATmega16L,MAX187,LM324,OP07,继电器,电阻,导线,电容,三极管9013一、课程设计目的实现自动切换量程的数字电压表。二、用途及功能方法分析根据待测电压的不同,自动切换量程并检测电压的大小。目前实现电压数字化测量的方法仍然模-数(A/D)转换的方法,而数字电压表种类繁多,型号新异,目前国际仍未有统一的分类方法。而常用的分类方法有如下几种:1.按用途来分:有直流数字电压表,交、直流数字电压表,交直流万用表等。2.按显示位数来分:有4位,5位,6位,7位,8位等。3.按测量速度来分:有低准确度,中准确度,高准确度等。4.按测量速度来分:有低速,中速,高速,超高速等。但在日常生活中,数字电压表一般是按照原理不同进行分类的,目前大致分为以下几类:比较式,电压——时间变换式,积分式等。数字电压表有多种的设计方法,方案是多种多样的,由于大规模集成电路数字芯片的高速发展,各种数字芯片品种多样,导致对模拟数据的采集部分的不一致性,进而又使对数据的处理及显示的方式的多样性。又由于在现实的工作生活中,电压表的测量测程范围是比较大的,所以必须要对输入电压作分压处理,而各个数据处理芯片的处理电压范围不同,则各种方案的分段也不同。由此结合设计要求选择由单片机系统及数字芯片构建。这种方案是利用单片机系统与与其模数转换功能、显示模块等的结合构建数字电压表。由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出许多的应用电路来。此方案的原理选用单片机并结合外部芯片来采样,被测量电压输入经模数(A/D)转换功能将被测量电压输入端所采集到的模拟电压信号转换成相应的数字信号,然后通过对单片机系统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定的算法计算出被测量电压的值。最后单片机系统将计算好了的被测电压值按一定的时序送入显示电路模块加以显示。三、硬件设计思想和电路原理图1.系统总体设计与框图本系统采用ATMEGAL16L单片机作为控制核心,以12位的A/D转换MAX187为数据采样系统,实现被测电压的高精度数据采集与显示。2.实际电路图2.1单片机系统在这一设计中,我们涉及到了一个关键系统模块——单片机系统模块,而目前单片机的种类是很繁多的,主要有主流的8位单片机和高性能的32位单片机,结合本设计各方面因素,8位单片机对于本设计已经是绰绰有余了。本设计是以ATMEGA16L单片机为控制核心,其外围接口电路如图所示。单片机的PA口主要用于信号检测,PB口用于继电器控制,PC口用于按键输入、过压报警等,PD口用于液晶显示。2.2AD转换电路我们利用MAX187作为AD数据采样器件,它是串行接口方式的A/D转换器,仅有8个引脚,外围接线很少。体积小、速度快、精度高。2.3信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路、继电器模块四部分组成。2.3.1电压极性检测电路电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器LM324的反向端接地,同向端通过100K电阻接输入信号。2.3.2电压范围粗测电路为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。2.3.3量程切换电路电路由衰减电阻、切换继电器和运算放大器组成,对应的是衰减1/2、1/3、1/4和无零漂放大50倍,切换电路如图所示。电压变换到0-5V标准信号后,再由A/D转换进行采样,最后由单片机算法还原。2.4继电器模块我们采用了八个继电器实现量程的自动切换,其动作由单片机PB口控制。2.5LCD显示电路采用字符型液晶模块HS1602与单片机的接口和编程的方法显示测量的电压大小、极性、峰值。3.总体设计电路图4.硬件单元的使用将待测电压输入,首先进行极性判断,输入单片机。然后对继电器8进行控制,正电压不工作,负电压接通常断进行电压反向。输入电压粗测电路判断电压范围并输入单片机。根据输入端控制继电器1,2,3,4,5,进行电压增减。继电器6根据极性接通,使正电压输入A/D转换器MAX187进行测量并输入单片机。最后输入到LCD显示测量结果。四、软件设计与流程1.系统软件介绍软件部分采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及继电器控制程序、液晶显示组成。系统软件设计是在C编译环境下进行的,由于C语言程序可移植性好,所以提高了编程的效率。2.软件程序流程图3.软件功能PC0首先接收数据,据此控制PC6,PC7实现电压转换,保证正电压输出。PB0,PB1,PB2,PB3,PA6的输入值通过PA1,PA2,PA3,PA4,PA5控制继电器1,2,3,4,5实现电压增减并输入A/D转换器MAX187进行测量。最后输入PB4,PB6,PB7并由PD4,PD5,PD6,PD7输入LCD显示。五.数据分析万用表和设计电压表测量同一组电压值所得结果如表一所示。电压值(v)0.000.541.061.542.052.543.033.504.024.515.03测量值(v)0.0000.5131.0201.5082.0162.5123.0103.5094.0124.5165.014误差(v)0.0000.0270.0150.0270.0140.0280.0070.0090.0080.0060.000表一因为平时所需要测量的被测电压的电压值不是一个定值,多多少少都有一些微小的变化,所以测量值会有微小的变动;计算值和真实值之间有一定偏差。六.总结由于本设计使用的是高效的AVR系列单片机作为核心的测量系统,以及高精度、高速度、高抗干扰的外部A/D转换器。使得本直流电压表具体精度高,灵敏度强,性能可靠,电路简单,成本低的特点。此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发过程应注意以下事项。1)硬件的选择。选择适合设计目地的元器件是一个重要的方设计环节。不能以元器件是否是最高性能作为选择元器件的标准。往往高性能器件的价格也是较高的。应根据项目设计的需要选择元器件,能够满足设计需要作为标准选择元器件。2)因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软件必须紧密配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。该次单片机课程设计,必须掌握了单片机的内部资源及其结构,并熟练掌握了利用C语言进行单片机的开发,而且由于基于AVR单片机,于是程序设计很重要,但是硬件电路方面也是成功的基础,必须选好合适的AD芯片,搭电路要稳定,还有极性的问题也得解决。最后本设计基本完成要求。