工业电压表系统设计方案分析与论证_第1页
工业电压表系统设计方案分析与论证_第2页
工业电压表系统设计方案分析与论证_第3页
工业电压表系统设计方案分析与论证_第4页
工业电压表系统设计方案分析与论证_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于单片机的简易数字电压表的设计课程设计设计题目:工业电压表系统设计方案分析与论证 专 业:应用电子技术班 级:应电1001姓 名:沈敏伟学 号:27目 录1 摘要42 设计总体方案42.1设计要求42.2 设计思路52.3 设计方案53 硬件电路设计63.1 a/d转换模块73.2 单片机系统73.3 复位电路和时钟电路93.4 led显示系统设计113.5 总体电路设计134 程序设计154.1 程序设计总方案154.2 系统子程序设计155 仿真175.1 软件调试175.2 显示结果及误差分析17结 论20参考文献21附录 程序代码22201.摘要 本文介绍了一种基于单片机的简易数字

2、电压表的设计。该设计主要由三个模块组成:a/d转换模块,数据处理模块及显示模块。a/d转换主要由芯片adc0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片at89c51来完成,其负责把adc0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着adc0808芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-5v的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。 关键词 单片机;数字电压表;a/d转换;at89c51;adc08082

3、 设计总体方案2.1设计要求 以mcs-51系列单片机为核心器件,组成一个简单的直流数字电压表。采用1路模拟量输入,能够测量0-5v之间的直流电压值。电压显示用4位一体的led数码管显示,至少能够显示两位小数。 尽量使用较少的元器件。 2.2 设计思路 根据设计要求,选择at89c51单片机为核心控制器件。a/d转换采用adc0808实现,与单片机的接口为p1口和p2口的高四位引脚。电压显示采用4位一体的led数码管。led数码的段码输入,由并行端口p0产生:位码输入,用并行端口p2低四位产生。2.3 设计方案硬件电路设计由6个部分组成; a/d转换电路,at89c51单片机系统,led显示系

4、统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图1所示。 时钟电路 复位电路a/d转换电路测量电压输入显示系统at89c51 p1 p2 p2 p0 图1 数字电压表系统硬件设计框图3 硬件电路设计3.1 a/d转换模块现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(a/d转换器),a/d转换器是单片机数据采集系统的关键接口电路,按照各种a/d芯片的转化原理可分为逐次逼近型,双重积分型等等。双积分式a/d转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式a/d转换的转换速度更快,而且精度更高,比如adc0809、adc0808

5、等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。一个n位的逐次逼近型a/d转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型a/d转换器转换速度快,因而在实际中广泛使用1。3.1.1 逐次逼近型a/d转换器原理逐次逼近型a/d转换器是由一个比较器、a/d转换器、存储器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入a/d转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输

6、入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量5。其原理框图如图2所示:顺序脉冲发生器逐次逼近寄存器adc电压比较器输入电压输入数字量图2 逐次逼近式a/d转换器原理图3.1.2 adc0808 主要特性adc0808是cmos单片型逐次逼近式a/d转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5v输入模拟电压信号分时进行转换,由于adc0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域5。adc080

7、8主要特性:8路8位a/d转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与ttl兼容;转换时间:128s;转换精度:0.2%;单个+5v电源供电;模拟输入电压范围0- +5v,无需外部零点和满度调整;低功耗,约15mw6。3.1.3 adc0808的外部引脚特征 adc0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3所示。图3 adc0808引脚图下面说明各个引脚功能:in0-in7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。地址输入控制(4条):ale:地址锁存允许输入线,高电平有效,当ale为高电平时,为地址输入线,

8、用于选择in0-in7上那一条模拟电压送给比较器进行a/d转换。adda,addb,addc:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表1所示: 表1 adc0808通道选择表地址码 对应的输入通道 c b a 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 in0 in1 in2 in3 in4 in5 in6 in7 start:start为“启动脉冲”输入法,该线上正脉冲由cpu送来,宽度应大于100ns,上升沿清零sar,下降沿启动adc工作。eoc: eoc为转换结束输出线,该线上高电平表示a/d转换已结束,数字量已锁

9、入三态输出锁存器。d1-d8:数字量输出端,d1为高位。oe:oe为输出允许端,高电平能使d1-d8引脚上输出转换后的数字量。ref+、ref-:参考电压输入量,给电阻阶梯网络供给标准电压。vcc、gnd: vcc为主电源输入端,gnd为接地端,一般ref+与vcc连接在一起,ref-与gnd连接在一起. clk:时钟输入端。3.1.4 adc0808的内部结构及工作流程adc0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型a/d转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如图4所示。图4 adc0808的内部结构其中:(1)8路模拟通道选择

10、开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较。(2)地址锁存与译码器用于当ale信号有效时,锁存从adda、addb、addc 3根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道。(3)比较器,8位开关树型a/d转换器,逐次逼近型寄存器,定时和控制电路组成8位a/d转换器,当start信号有效时,就开始对当前通道的模拟信号进行转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送出转换结束信号。(4)三态输出锁存器保存当前模拟通道转换得到的数字量,当oe信号有效时,把转换的结果送出。adc0808的工作流程为:(1)输入3位地址,

11、并使ale=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送给比较器。(2)送start一高脉冲,start的上升沿使逐次寄存器复位,下降沿启动a/d转换,并使eoc信号为低电平。(3)当转换结束时,转换的结果送入到输出三态锁存器中,并使eoc信号回到高电平,通知cpu已转换结束。(4)当cpu执行一读数据指令时,使oe为高电平,则从输出端d0-d7读出数据。3.2 单片机系统3.2.1 at89c51性能at89c51是美国atmel公司生产的低电压,高性能cmos8位单片机,片内含有4kb的可反复擦写的只读程序存储器和128字节的随机存储器。该器件采用atmel高密

12、度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容,由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 at89c51功能性能:与mcs-51成品指令系统完全兼容;4kb可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24mhz;三级程序存储器锁定;128*8b内部ram;32个可编程i/o口线;2个16位定时/计数器;5个中断源;可编程串行uart通道;片内震荡器和掉电模式6。 3.2.2 at89c51各引脚功能at89c51提供

13、以下标准功能:4kb的flash闪速存储器,128b内部ram,32个i/o口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,at89c51可降至0hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存ram中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。at89c51采用pdip封装形式,引脚配置如图5所示7。图5 at89c51的引脚图at89c51芯片的各引脚功能为:p0口:这组引脚共有8条,p0.0为最低位。这8个引脚有两种

14、不同的功能,分别适用于不同的情况,第一种情况是89c51不带外存储器,p0口可以为通用i/o口使用,p0.0-p0.7用于传送cpu的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89c51带片外存储器,p0.0-p0.7在cpu访问片外存储器时先传送片外存储器的低8位地址,然后传送cpu对片外存储器的读/写数据。p0口为开漏输出,在作为通用i/o使用时,需要在外部用电阻上拉。p1口:这8个引脚和p0口的8个引脚类似,p1.7为最高位,p1.0为最低位,当p1口作为通用i/o口使用时,p1.0-p1.7的功能和p0口的

15、第一功能相同,也用于传送用户的输入和输出数据。p2口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用i/o口使用,它的第一功能和p0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像p0口那样传送存储器的读/写数据。p3口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表2所示:表2 p3口各位的第二功能p3口各位第二功能p3.0 rxt(串行口输入)p3.1 txd(串行口输出)p3.2/int0(外部中断0输入)p3.3/int1(外部中断1输入)p3.4t0(定时器/计数器0的外部输入

16、)p3.5t1(定时器/计数器1的外部输入)p3.6/wr(片外数据存储器写允许) p3.7/rd(片外数据存储器读允许)vcc为+5v电源线,vss接地。ale:地址锁存允许线,配合p0口的第二功能使用,在访问外部存储器时,89c51的cpu在p0.0-p0.7引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,89c51自动在ale线上输出频率为1/6震荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。/ea:片外存储器访问选择线,可以控制89c51使用片内rom或使用片外rom,若/ea=1,则允许使用片内rom, 若/ea=0,则只使用片外rom。/psen

17、:片外rom的选通线,在访问片外rom时,89c51自动在/psen线上产生一个负脉冲,作为片外rom芯片的读选通信号。rst:复位线,可以使89c51处于复位(即初始化)工作状态。通常89c51复位有自动上电复位和人工按键复位两种。xtal1和xtal2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89c51片内osc(震荡器)的定时反馈回路。3.3 复位电路和时钟电路3.3.1 复位电路设计单片机在启动运行时都需要复位,使cpu和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。mcs-51单片机有一个复位引脚rst,采用施密特触发输入。当震荡器起振后

18、,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位1。复位完成后,如果rst端继续保持高电平,mcs-51就一直处于复位状态,只要rst恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位和手动复位组合电路,只要vcc上升时间不超过1ms,它们都能很好的工作1。 图6 复位电路3.3.2 时钟电路设计单片机中cpu每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。cpu执行一条指令的各个微操作所对应时间顺序称为单片机的时序。mcs-51单片机芯片内部有

19、一个高增益反相放大器,用于构成震荡器,xtal1为该放大器的输入端,xtal2为该放大器输出端,但形成时钟电路还需附加其他电路1。 本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可,如图7所示。图7 时钟电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器c1和c2对震荡频率有微调作用,通常的取值范围是3010pf,在这个系统中选择了33pf;石英晶振选择范围最高可选24mhz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12mhz,因而时钟信号的震荡频率为12mhz。3.4 led显示

20、系统设计3.4.1 led基本结构led是发光二极管显示器的缩写。led由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。led显示器是由若干个发光二极管组成显示字段的显示器件6。在单片机中使用最多的是七段数码显示器。led七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。led引脚排列如下图8所示:图8 led引脚排列3.4.2 led显示器的选择在应用系统中,设计要求不同,使用的led显示器的位数也不同,因此就生产了位数,尺寸,型号不同的led显示

21、器供选择,在本设计中,选择4位一体的数码型led显示器,简称“4-led”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。4-led显示器引脚如图9所示,是一个共阴极接法的4位led数码显示管,其中a,b,c,e,f,g为4位led各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体led数码显示管的内部结构是由4个单独的led组成,每个led的段输出引脚在内部都并联后,引出到器件的外部。图9 4位led引脚对于这种结构的led显示器,它的体积和结构都符合设计要求,由于4位led阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数

22、码管的段选线并联在一起,用一个i/o接口控制)显示。3.4.3 led译码方式译码方式是指由显示字符转换得到对应的字段码的方式,对于led数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。硬件译码是指利用专门的硬件电路来实现显示字符码的转换。软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序3。本设计系统中为了简化硬件线路设计,led译码采用软件编程来实现。由于本设计采用的是共阴极led,其对应的字符和字段码如下表3.3所示。表3.3 共阴极字段码表显示字符共阴极字段码03fh106h25bh34fh466h56dh67dh707h87fh96

23、fh3.4.4 led显示器与单片机接口设计由于单片机的并行口不能直接驱动led显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作7。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,led显示器的驱动电路设计是一个非常重要的问题。为了简化数字式直流电压表的电路设计,在led驱动电路的设计上,可以利用单片机p0口上外接的上拉电阻来实现,即将led的a-g段显示引脚和dp小数点显示引脚并联到p0口与上拉电阻之间,这样,就可以加大p0口作为输出口德驱动能力,使得led能按照正常的亮度显示出数字,如图10

24、所示。图10 led与单片机接口间的设计3.5 总体电路设计经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图11所示。图11 简易数字电压表电路图此电路的工作原理是:+5v模拟电压信号通过变阻器vr1分压后由adc08008的in0通道进入(由于使用的in0通道,所以adda,addb,addc均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道d0-d7传送给at89c51芯片的p1口,at89c51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位led,同时它还通过其四位i/o口p2.0、p2.1、p2.2、p2.3产生位选信

25、号控制数码管的亮灭。此外,at89c51还控制adc0808的工作。其中,单片机at89c51通过定时器中断从p2.4输出方波,接到adc0808的clock,p2.6发正脉冲启动a/d转换,p2.5检测a/d转换是否完成,转换完成后,p2.7置高从p1口读取转换结果送给led显示出来3。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。 4 程序设计4.1 程序设计总方案 根据模块的划分原则,将该程序划分

26、初始化模块,a/d转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图12所示。开始初始化调用a/d转换子程序调用显示子程序结束图12 数字式直流电压表主程序框图4.2 系统子程序设计4.2.1 初始化程序所谓初始化,是对将要用到的mcs_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等9。4.2.2 a/d转换子程序a/d转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。开始启动转换a/d转换结束?输出转换结果数值转换显示结束图13

27、a/d转换流程图4.2.3 显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得led显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70hz左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对led进行动态扫描一次,每一位led的显示时间为1ms10。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11s定时,通过软件延时程序来实现5ms的延时。5 仿真5.1 软件调试 软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步

28、改正。proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如led/lcd、键盘、rs232终端等动态外设模型来对设计进行交互仿真。proteus支持的微处理芯片包括8051系列、avr系列、pic系列、hc11系列及z80等等。proteus可以完成单片机系统原理图电路绘制、pcb设计,更为显著点的特点是可以与u visions3 ide工具软件结合进行编程仿真调试8。本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是proteus软件,而程序方面,采用的是汇编语言,用keil软件将程序写入单片机。5.2 显示结果及误差分析5.2.1 显示结果1. 当in0口输入电压值为0v时,显示结果如图14所示,测量误差为0v。 图14 输入电压为0v时,led的显示结果2.当in0输入电压值为1.50v时,显示结果如图15所示。测量误差为0.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论