




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的数字电压表的设计李力(长江大学电子信息学院, 湖北 荆州 434023)摘 要 : 介绍了一种基于单片机的直流数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,采样数据处理模块及显示模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过LCD显示出来。 关键词 : AT89C51单片机;数字电压表;A/D转换;ADC0808;LCD1602Design of Digital Voltmeter Based on MicrocontrollerLi Li(College of Electronics and Information,Yangtze University,Jingzhou 434023,China)Abstract:a kind of DC digital voltmeter which is based on single-chip microcontroller design is introduced in this paper. The circuit of the voltage meter is mainly consisted of three mould pieces: A/D converting mould piece, A/D converting is mainly completed by the ADC0808, it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the AT89C51 chip, it processes the data produced by the ADC0808 chip and generates the right manifestation codes, also transmits the codes to the manifestation controlling mould piece. The voltmeter is capable of measuring voltage inputs from 1 route ranging from 0 to 5 volt, and displaying the measurements though LCD.Keywords :AT89C51 microcontroller; Digital voltmeter; A/D converter; ADC0808;LCD16021. 引言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域显示出强大的生命力。2.硬件电路设计2.1 设计原理选定以8051单片机为核心器件,组成一个简单的直流数字电压表。此电路的工作原理是:+5V模拟电压信号通过变阻器RV2分压后由ADC08008的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P0口,AT89C51负责把接收到的数字量经过数据处理,产生正确的二进制数码经过算法转化成十进制数,然后将数据送往显示缓冲区,最后单片机通过调用LCD显示子程序,进行循环显示;同时它还通过其它的I/O口P2.1控制LCD寄存器选择信号,P2.2控制LCD读/写选择信号,P2.3控制LCD使能信号。此外,AT89C51还控制ADC0808的工作。其中,单片机AT89C51通过P2.0发正脉冲启动A/D转换,P3.3检测A/D转换是否完成,转换完成后,AD0808的EOC口置高,然后通过74LS02变成低电平,再通过查询的方式P3.3口是否为低电平,若转化完成从P0口读取转换结果送给LCD显示出来。该电路采用1路模拟量输入,通过模拟的电位器的控制改变,能够测量0-5V之间的直流电压值。电压显示用LCD显示,至少能够显示两位小数。硬件电路设计由6个部分组成; A/D转换电路,AT89C51单片机系统,LCD显示系统、时钟电路、报警电路以及测量电压输入电路。硬件电路设计框图如图1所示。这里选用的8051单片机集成了并行I/O口、异步串行口、16位定时器/计数器、中断系统、片内RAM、和片内ROM以及一些功能部件。 时钟电路 报警电路A/D转换电路测量电压输入液晶显示AT89C51 P1 P2 P2 P0 图1 数字电压表系统硬件设计框图 2.2 显示数据的转换存储从IN00输入的模拟量经ADC0808转换后的到的是一个二进制数我们无法知道实际电压是多少。于是需要我们转换成实际模拟电压值并显实出来便于记录。由于ADC0808是8位AD转换转换成的二进制最大为11111111,又因ADC0808的基准电压我设计的是5V。可用如下公式表示模拟量与AD转换后的二进制数的关系:=将公式的右边换成十进制数:=在显示数据的转换存储模块部分中我主要的任务是将单片机读到的数据再次转换成模拟量的数值大小并将这个数值的整数值,小效值这三个十迸制值存入相应存储地址中去。具体的编程思想:设定8路模拟量转换成的二进制数存在30H-34H的片内缓冲区,用于存放A/D转化数据。2.3 显示电路的设计 接口分配设计如图所示: RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。由单片机P2.1口控制,R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。由单片机P2.2口控制,E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。由单片机P2.3口控制,D0D7为8位双向数据线。单片机P0口输入,经过阻值为1K的上拉电阻连接。 2.4 报警电路的设计主要是将采样值和预设值进行比较,如果大于预设值,则会启动报警,硬件部分表现为灯亮或者是蜂鸣器会响 ,如图2所示图2 报警仿真电路3 软件设计3.1 程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,主程序开始后进行初始化,LCD间接控制下的初始化,定时器的初始化,然后调用A/D转化子程序,再调用显示子程序。3.2 系统子程序设计3.2.1 初始化程序所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。3.2.2 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图3所示。启动转换A/D转换结束?输出转换结果数值转换显示结束NY图3 A/D转化流程图3.2.3部分程序从ADC0808数据端口取出来的数据是0255,代表电压0-4.99 V,通过单片机AT89C51内编写好的汇编语言程序来完成计算工作,并把测量的电压值还原显示出来;采样值需要和预设值进行比较,若大于预设值,则显示报警。;*定时初始化*S2:MOV TMOD,#0 MOV TH0,#4cH;赋定时初值,定时采样 MOV TL0,#00H MOV IE,#82H;开中断 SETB TR0;*定时器中断服务程序 *BT0: push ACC MOV DPTR,#0F6FFH MOV A,#00H MOVX DPTR,A JB P3.3,$ MOVX A,DPTR QS:CJNE A ,#204 ,BJ ;判断读的数据与204的大小 相等则向下执行 不等则跳转;*二级制如何转化为十进制*TURN: MOV A,#10 MUL AB MOV 70H,B MOV B,#51 DIV AB MOV 72H,A MOV 71H,B MOV A,#5 MOV B,70H MUL AB ADD A,72H ADD A,#30H RET4 仿真4.1 软件调试该系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,Proteus它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作隋况。从某种意义上讲Proteus仿真,基本接近于工程应用。利用设计好的仿真电路图,调用已生成的HEX文件,即可运用Proteus软件仿真实现本设计,结合uvision2集成开发环境进行调试,然后在单片机硬件开发板上进行实际操作,并采用将最程序固化到单片机中,实现05V直流电压的数字电压表,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。仿真电路图如图4图4 硬件电路仿真图4.2 显示结果及误差分析通过仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表1所示:表1 简易数字电压表与“标准”数字电压表对比测试表标准电压值/V简易电压表测量值/V绝对误差/V0.000.0000.0000.500.5090.0091.001.0000.0001.501.5090.0092.002.0000.0002.502.4900.0103.003.0000.0003.503.4900.0104.004.0000.0004.995.0000.010由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(0FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。 从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0808的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。5小结该系统中经仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,并且还有报警功能。并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论