基于单片机的简易数字电压表设计(任务书+论文)_第1页
基于单片机的简易数字电压表设计(任务书+论文)_第2页
基于单片机的简易数字电压表设计(任务书+论文)_第3页
基于单片机的简易数字电压表设计(任务书+论文)_第4页
基于单片机的简易数字电压表设计(任务书+论文)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、任 务 书题目:基于单片机的简易数字电压表设计设计内容及要求:1、硬件设计单片机主电路、数据采集接口电路、led显示电路2、软件设计系统流程图、各功能程序设计环境: protel99se 、wave仿真环境、h51/l仿真器、单片机多功能实验箱实现目标:(1)能够实现8路电压值进行测量; (2)能够显示当前被测路号及电压值,电压精度小数点后1位; (3)可以通过键盘选择循环显示8路的检测电压值和指定通道的检测电压值。摘 要本文介绍了基于89c51单片机的一种8路输入电压测量电路,该电路采用adc0809作为a/d转换元件,测量范围0至5伏,小数点后显示一位。要求能够依次显示每路通道电压,而且能

2、够通过拨码开关选择输入通道。使用3位led模块显示,前面一位显示通道号,后面两位显示测量电压值。本系统主要包括四大模块:数据采集模块、控制模块、显示模块、a/d转换模块。绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。在软件编程上,采用了汇编语言进行编程,开发环境使用wave集成开发环境。开发了显示模块程序、通道切换程序、a/d转换程序。关键词:adc0809;a/d转换;led显示目 录1 方法论证51.1 系统的设计任务51.2 设计方案51.3 软硬件开发环境62 数字电压表硬件设计72.1 单片机主电路设计72.1.1 复位电路72.1.2 晶振电路72.2 测

3、量、转换电路设计82.3 按键电路设计92.4 显示电路设计102.4.1 led数码管构成102.4.2 显示方式113 软件设计143.1 主程序设计143.1.1 工作流程143.1.2 存储空间定义安排153.2 模块程序设计153.2.1 a/d转换测量程序153.2.2 显示程序164 系统调试与分析184.1 调试内容及问题解决184.2 系统进一步改进方案18附录1:硬件原理图20附录2:程序清单21参考文献241 方法论证1.1 系统的设计任务 设计单片机主电路、数据采集接口电路、led显示电路、拨码控制电路,能够实现对8路电压值进行测量,能够显示当前测量通道号及电压值,电压

4、精度小数点后1位,可以通过键盘选择循环显示8路的检测电压值和指定通道的检测电压值。1.2 设计方案 将数据采集接口电路输入电压传入adc0809数模转换元件,经转换后通过d0至d7与单片机p0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从led数码显示管显示。拨码开关连p3口,实现通道选择。p2口接数码管位选,p1接数码管,实现数据的动态显示,如下图所示。89c51 p0p1p2 alep3数码管位选拨码开关adc0809d0d7 in0 : in7clock vref+vref-图1.1系统总体方案结构图1.3 软硬件开发环境硬件选择:选择89c51作为单片

5、机芯片,选用8段共阴极led数码管实现电压显示,选用独立式按键作为程序的跳转与选择,利用adc0809作为数模转换芯片,利用p0至p4的各个串口来进行不同设备间的连接,计算机进行汇编,h51/l仿真器,单片机多功能实验箱。软件开发环境: 用protel99se软件画电路图 、wave软件进行程序编写。2 数字电压表硬件设计2.1 单片机主电路设计在本次课题设计中我们选择了8951芯片,其具有功能强、体积小、成本低、功耗小等特点,它可单独地完成现代工业控制所要求的智能化控制功能,能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。2.1.1 复位电路 复位电路如图2.1所示,单片机系

6、统常常有上电复位和操作复位两种。上电复位是指单片机上点瞬间,要在rst引脚上出现宽度大于10ms的正脉冲,才能使单片机进入复位状态。操作复位是指用户按下“复位”按钮使单片机进入复位状态。 图21 复位电路2.1.2 晶振电路 晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3取值2040pf,使用陶瓷震荡器时c2,c3取值3050pf。在设计电路板时,晶振和电容应尽量靠近芯片,以减小分布电容,保证震荡器的稳定性。18引脚接xtal1,19引脚接xtal2,20引脚接地。图2.2 晶振电路2.2 测量、转换电路设计 使用adc0809作为数模转换元件,其引脚图如2.3所示图2

7、.3 adc0809引脚图adc0809是带有8:1多路模拟开关的8位a/d转换芯片,所以它可有8个模拟量的输入端,由芯片的a,b,c三个引脚来选择模拟通道中的一个。a,b,c三端分别与89c51的p0.0p0.2相接。地址锁存信号(ale)和启动转换信号(start),由p2.6和/wr或非得到。输出允许,由p2.6和/rd或非得到。时钟信号,可有89c51的ale输出得到,不过当采用12m晶振时,应该先进行二分频,以满足adc0809的时钟信号必须小于640k的要求。与单片机的连接如图2.4所示图2.4数据转换系统电路图2.3 按键电路设计按键选择上有两种方法可供选择,独立式按键与矩阵式按

8、键,再此使用了独立式按键。按键模块如图2.5所示,其与p3口连接,实现通道选择。对按键的工作过程可分为两步:第一步是cpu首先检测键盘上是否有键按下;第二步是在识别是哪一个键按下。检测键盘上有无键按下可采取查询各自方式、定时扫描构造方式和中断耕作方式。在此选择了查询工作方式。按键模块如图2.5所示,其与p3口连接,实现通道选择。图2.5按键模块2.4 显示电路设计2.4.1 led数码管构成led数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其外形结构如图所示。它由8个发光二极管构成,通过不同的组合可用来显示0-9、a-f及小数点“.”等字符。数码管有共阴极和共阳极两种结构规格,

9、如图2.5所示。图中电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。对照图2.5中的字段:7段发光二极管,在加上1个小数点位,共计8段,因此提供给led显示器的字形码正好一字节。 图26(a) 共阴极 图2.6(b) 共阳极 图2.6(c)字段显示2.4.2 显示方式(1) 静态显示方式直接利用并行口输出。led显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的

10、显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。利用通信号串行输出。在实际应用中,多位led显示时,为了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74ls164、cd4094来实现静态显示。(2) 动态显示方式对多位led显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。为了实现led显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多

11、位led显示器接口电路需要有两个输出口,其中一个用于输出8位控信号;另一个用于输出段控信号,其连接图如下。 2.7 led显示电路表2.1七段led段选码表 显示字符共阴极段显示字符共阴极段03fhc39h106hd5eh25bhe79h34fhf71h466hp73h56dhu3eh67dh31h707hy6eh87fh8.ffh96fh“灭”00ha77h/b7ch/3 软件设计3.1 主程序设计 3.1.1 工作流程 首先拨动拨码开关k1,如果是低电平,程序转向选择通道程序,拨动k2的次数即是选择的通道号,拨动k3表示确认。转向数据读取程序,再到显示程序,显示出通道号和电压值。如果k1是

12、高电平,则转向循环显示程序,即先显示第0路最后显示第7路电压值和相应通道号。工作流程图如下: n y记录k2拨动次数启动a/d转换k1高电平?数据处理显示结束开始选择通道号选择第0路图3.1主程序流程3.1.2 存储空间定义安排 60h用于存放a/d转换结果,30h、31h、32h分别存储显示用的三位数据如下表:表3.1存储空间定义表60h用于存放a/d转换结果30h电压值整数部分31h电压值小数部分32h循环显示的通道号34h选择的通道号3.2 模块程序设计3.2.1 a/d转换测量程序a/d转换的常用方法有:计数式a/d转换,逐次逼近型a/d转换,双积分式a/d转换, v/f变换型a/d转

13、换。在这些转换方式中,记数式a/d转换线路比较简单,但转换速度较慢,所以现在很少应用。双积分式a/d转换精度高,多用于数据采集及精度要求比较高的场合,如5g14433(31/2位),ad7555(41/2位或51/2位)等,但速度更慢。逐次逼近型a/d转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的a/d转换芯片adc0809。采用中断控制的方式实现,不浪费时间,效率较高。其流程图如下: 开始启动转换读取数据0809地址加1小于ffff?结束中断请求中断服务yn图3.2 a/d转换测量程序3.2.2 显示程序对多位led显示器的动态显示,通常都是采用动态扫描的方法进行显示,即逐

14、个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。为了实现led显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多位led显示器接口电路需要有两个输出口,其中一个用于输出8位为控信号;另一个用于输出段控信号。读取判断单元显示通道号显示电压整数部分显示电压小数部分返回开始程序32h30h31h图3.3显示子程序4 系统调试与分析4.1 调试内容及问题解决 程序可分为数据采集系统、数据转换系统、显示系统和按键控制系统,这四部分先独立测试,然后整体调试。

15、显示系统的调试:要显示的数据存放在30h、31h、32h单元中,先在30h、31h、32h分单元中存放010的数,运行显示程序,察看显示的结果是否与存放值一样。在测试的过程中发现小数点没有显示,通过指令orl 30h,#80h,把小数点显示出来。按键控制系统调试:拨动k2在34h单元内容看是否和拨动次数相同。整体测试:把个部分用线连接,p3接拨码开关,p2接数码管,p3接位选。仿真器、仿真头连好,进入wave软件,设置仿真器。编译程序,看是否存在错误。4.2 系统进一步改进方案 进一步提高测量精度,把精确到小数点后一位改为精确到小数点后两位。具体程序如下:movx a,dptr ;读取转换后的

16、数据. mov b,#51 ;255515.00v运算 div ab mov 33h,a ; ;个位数放入33h mov a,b ; ;余数大于19h,f0为1,乘法溢出,结果加5 clr f0 subb a,#1ah mov f0,c mov a,#10 mul ab mov b,#51 div ab jb f0,loop2 add a,#5 loop2: mov 34h,a ; ;小数后第一位放入34h mov a,b clr f0 subb a,#1ah mov f0,c mov a,#10 mul ab mov b,#51 div ab jb f0,loop3 add a,#5h lo

17、op3: mov 35h,a ; ;小数后第二位放入35h附录1:硬件原理图附录2:程序清单 org oooohljmp mainorg 0013hljmp over main:jnb p3.0 xz ;高电循环显示,低电平选择通道mov ro,#60hmov r1,#08h ;8个通道clr 34hxz1 : mov r2,#34h ;选择通道in0setb easetb it1setb ex1mov dptr,#08fffh ;第0路地址mov a,r2movx dptr,a ;启动a/d转换sjmp $xz: jb p3.4,xzw1 : jnb p3.4 w1 ;拨码开关一个来回计数一

18、次clr ainc ajnb p3.5 mov 34h,a ;计数次数存入34hljmp xz1 ;跳到通道选择程序over: clr ex1 mov dptr,#08fffhsub dptr,34hmovx a,dptrmov r0,ainc r2mov 33h,#100 ;延时两秒ljmp xianshijx: mov a, r2djnz r1 ,wait wait: setb ex1movx dptr,aed: reti;把00000000到11111111的数转换成十进制数; xianshi:mov 33h,#0mov a,6ohmov b,#51div ab mov 30h,a ;把整数放入30hmov a,bmov b,#51 mul a,#10mov b,#51div abmov 31h,a ;把小数放入31hmov r6,#30h;动态显示程序;mov dptr #tabmov r7,#01hclr amov p3,al:mov a,r6anl a,#0fhmovc a,a+dptrmov p1,amov a,r7mov p3,alcall d20msinc r6cjne r6,#32h,l0mov r6,#30hl0:rl a mov r7,a ;两秒后进行下一路sjmp ldec 33hjn

温馨提示

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

最新文档

评论

0/150

提交评论