1目录一、设计要求………………………………………………………2二、设计目的………………………………………………………2三、设计的具体实现……………………………………………21.系统概述……………………………………………22.单元电路设计………………………………………33.软件程序设计…………………………………………14四、结论与展望………………………………………………22五、心得体会及建议…………………………………………23六、附录………………………………………………………23七、参考文献…………………………………………………242一﹑设计要求设计一个由8051MCU组成的简易直流电压表系统。能够测量一定范围的电压值,并以数字形式进行显示。通过这个过程熟悉A/D转换、键盘控制、串口通信和七段数码管的使用,掌握51系列单片机控制和测试方法。设计以AT89C51单片机为核心,对电压信号首先进行比例调节以满足A/D的需要;设置按键用于调节不同的电压档位;用LED显示测量得到的电压值;设计通信接口电路以实现测量数据的传送。完成基本要求,可以适当发挥进行扩展设计。①测量范围0-200V②10位模数转换③采样结果通过LED数码管显示④通过串行口与PC通信二、设计目的(1)利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。(2)我们这次的课程设计是以单片机为基础,设计并开发直流电压表。(3)掌握各个接口芯片(如ADC0808等)的功能特性及接口方法,并能运用其实现一个简单的微机应用系统功能器件。三、设计的具体实现1.系统概述①直流电压表是针对直流屏、太阳能光伏、蓄电池、电镀、通信电源、直流电动工具等应用场合设计的。该系列的直流电量仪表包含直流电流表、直流电压表、安培小时计、电压小时计、直流功率表、直流电能表等。数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表.传统的指针式电压表功能单一、精度低,不能满足现代测量的需求,采用单片机的数字电压表,它的精度高、抗干扰能力强。可扩展性强、集成方便,还可与PC进行实时通信。目前,有各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能测量领域,与此同时,也能把电量及非电量测量技术提高到崭新水平。该系列产品是一种高精度的安装式仪表.②方案论证方案一:采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续﹑离散的数字形式并加以显示的仪表。这种传统的指针式电压表功能单一﹑精度低,不能满足数字化时代的要求。方案二:采用单片机与AD转换器设计一个数字电压表,测量直流电压值,四位数码显示。目前,由于各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量,工业自动化仪表等测量领域,显示出强大的生命力。从以上两种方案,很容易看出,按系统功能实现要求,两者相比较方案二的设计既简单又实用,软件设计也比较简单同时也实现了功能要求,故采用方案二。3所以,本设计A/D转换器部分采用普通元器件构成模拟部分,利用MCS-51单片机借助软件实现数字显示功能,自动校零、LED显示等功能时采用AT89C51单片机编程实现直流电压表量程的自动转换。本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号。总体结构框图如图1所示图1总体结构框图2.单元电路设计(1)各部分概述①A/D转换器的设计A/D转换器具有抗干扰能力强的特点,在采用零点校准的前提下,其转换精度也可以做得很高,但显著的不足是转换速度较慢,并且分辨率越高,其转换速度也就越慢,因此本设计采用了A/D转换器,可以较好的改善转换速度慢的缺点,它的转换速率分辨率的乘积比传统的双积分式A/D转换器提高至少两个数量级。②单片机计数、控制电路设计通过对A/D转换器的方案分析,本设计采用的单片机编程实现A/D转换,脉冲的计数功能由单片机实现,所以对单片机的速度提出了较高的要求,基本要求分辨率为11位,转换速度不低于2次/S,发挥部分要求分辨率15位,采用MCS-51单片机实现控制和脉冲计数,采用16MHZ晶振,完全能满足分辨率15位和转换速度2次/S的要求。③显示电路显示是电路采用数码管显示器,可显示各种字体的数字、字母,还可以自定义内容,增加了显示的美观性与直观性,是重要的是提供了友好的人机界面。同时LED8段数码管有静态显示和动态显示两种方式。静态显示方式的各位数码管相互独立,公共端恒定接地或接正电源。每一个字段都要独占一条I/O口只要有断码输出,显示器就可以显示出所要显示的字符,如果CPU不改写,则一直保持下去。动态显示方式下各位数码管的段选线相应并连在一起,由一个8位的I/O口控制;各位的为选线有另外的I/O口控制。(2)单元硬件电路①本次设计是以单片机AT89C51芯片、A/D转换器为核心设计了一个简易的直模拟电压AT89C51单片机ADC0808转换LED数字显示4流电压测量电路,在硬件方面,通过一个可变电阻调节输入电压的变化来反映所检测到的电压变化。此变化的电压通过ADC0808的一个通道(INO)送入并进行A/D转换后再送入单片机AT89C51中进行处理,再转换成相应的实际电压值,最后通过四位LED数码管显示,精确到十分位,LED采用的是动态扫描显示,使用74HC02P芯片进行驱动,软件方面采用汇编编程。使得整个系统完成一个简易的数字电压表的功能。②输入电压电路输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。衰减输入电路如图2所示图2衰减输入电路图3量程切换开关本仪表设计的是0-1000V电压,灵敏度高,所以只需衰减器,如图2所示9M900K90K和10K电阻构成1/10﹑1/100﹑1/1000的衰减器。衰减输入电路可由开关来选择不同的衰减率,从而切换档位。③AT89C51单片机AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)是低电压、高性能CMOS8位5微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图4所示:单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。最小系统原理图如图5所示。图4AT89C51引脚图图5最小系统电路图接口分配电路设计如右图6所示:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ的电阻拉高。P2口:P2口为一个内部上拉图6单片机接口电路6电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。这里只用到了P2.0~P2.3四个端口,其中P2.1~P2.3都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将7内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。④A/D转换器2.3.1概述Ⅰ模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。A/D转换一般要经过采样、保持、量化及编码4个过程。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。一般来说,AD比DA贵,尤其是高速的AD,因为在某些特殊场合,如导弹的摄像头部分要求有高速的转换能力。一般那样AD要上千美元。还有通过AD的并联可以提高AD的转换效率,多个AD同时处理数据,能满足处理器的数字信号需求了。Ⅱ模数转换过程包括量化和编码。量化是将模拟信号量程分成许多离散量级,并确定输入信号所属的量级。编码是对每一量级分配唯一的数字码,并确定与输入信号相对应的代码。最普通的码制是二进制,它有2n个量级(n为位数),可依次逐个编号。模数转换的方法很多,从转换原理来分可分为直接法和间接法两大类。直接法是直接将电压转换成数字量。它用数模网络输出的一套基准电压,从高位起逐位与被测电压反复比较,直到二者达到或接近平衡。控制逻辑能实现对分搜索的控制,其比较方法如同天平称重。先使二进位制数的最高位Dn-1=1,经数模转换后得到一个整个量程一半的模拟电压VS,与输入电压Vin相比较,8若VinVS,则保留这一位;若VinVin,则Dn-1=0。然后使下一位Dn-2=1,与上一次的结果一起经数模转换后与Vin相比较,重复这一过程,直到使D0=1,再与Vin相比较,由VinVS还是VinV来决定是否保留这一位。经过n次比较后,n位寄存器