基于单片机的数字电压表课程设计_第1页
基于单片机的数字电压表课程设计_第2页
基于单片机的数字电压表课程设计_第3页
基于单片机的数字电压表课程设计_第4页
基于单片机的数字电压表课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计报告基于51单片机的简易数字电压表设计一设计要求利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量05V之间的直流电压表。用数码管以十进制数进行显示。二设计原则使用可靠性高的元器件,以防止器件的损坏影响系统的可靠运行。设计电路板时布线和接地要合理,严格安装硬件设备及电路。采取必要的抗干扰措施,以防止环境干扰、信号串扰、电源或地线干扰等影响系统的可靠性。请专家和有经验的设计人员对系统的设计方案严格把关。作必要的冗余设计或增加自诊断功能。三、主要技术指标1、单片机的定时中断技术2、数字芯片A/D转换技术3、单片机的数据处理技术4、单片机控制的数码管显示技术四信号显示

2、经过原理因为ADC0809在进行A/D转换时需要有CLK信号,但是此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,则要求从P3.3输出CLK信号供ADC0809使用。由于产生CLK信号的方法是用软件产生的;并且ADC0809的参考电压VREFVCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。所显示的电压值如试D/256*VREF五数字电压表设计方案1设计方案确立 本设计使用ADC0809对模拟信号进行转换,然后经过AT89C51转换后的结果来进行运算和处理,然后由数码管直接显示数字电压信号,其中分辨率为0.02v。用电位器控制输入电压,经ADC0809模

3、数转换,然后数据被单片机采集,并经过单片机利用相应的算法进行调整,最后利用串口将处理好的数据输出至数码管。其中ADC0809通过IN0IN7采集模拟电压信号送给单片机,单片机将采集来的信号通过一定的处理然后通过串口输出至共阳极的LED数码管显示采集到的电压值。2 总体设计框图 数字电压表系统设计方案总体方案设计图3.硬件系统设计简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。电路原理图如图附录2所示。A/D转换由集成电路0809完成。0809具有8路模拟输入端口。地址(23-25脚可决定对那路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测

4、试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。单片机的P1、P3。0-P3.3端口作为四位LED数码管现实控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制4数字电压表硬件电路设计硬件电路设计主要包括:89C51单片机系统,A/D转换电路,

5、显示电路。测量最大电压位5V,显示最大值为5.00V。数字电压表硬件原理图。5. AT80S51单片机结构图 51单片机引脚图单片机各引脚介绍: 主电源引脚VCC: +5V电源输入端VSS: 电源接地端 时钟引脚XTAL1: 片内放大器输入端XTAL2: 片内放大器输出端 专用控制端口ALE/ PROG,双功能控制端口ALE,地址锁存信号允许信号输出端。在访问片外程序存储器期间,每个机器周期ALE信号出现两次,其下降沿用于锁存P0口输出端的低八位地址。在不访问片外程序存储器时,该信号也以1/6振荡频率稳定出现,因此可用作对外输出的时钟脉冲。但在有访问片外数据存储器情况时,ALE脉冲会有跳空,不

6、适合作为时钟输出。PROG,对片外含EPROM的芯片,在编程期间,此引脚用作编程脉冲PROG的输入端。PSEN,片外程序存储器读选通信号输出端,PSEN信号的频率是振荡频率的1/6。在读片外程序存储器期间,每个机器周期该信号两次有效。在读片外程序存储器期间若有访问片外数据存储器的操作,则PSEN信号会有跳空现象。RST/VPD:双功能控制端口。RST作复位信号输入端。VPD第二功能,备用电源输入端。EA/VDD :双功能控制端口EA访问片外程序存储器允许端,接低电平时,CPU只访问片外ROM;当接高电平时,CPU优先访问片内ROM,若访问地址大于某一范围是,将自动转去片外ROM。VDD编程电源

7、输入端,当对片内ROM写人程序时,由该脚输入编程电压。 输入输出接口51单片机共有32个I/O引脚,分成P0、P1、P2、P3共四组端口。每组端口都有8个引脚,用于传送数据、地址或控制信号。P0口(P0.7P0.0):P0口既可作地址/数据总线使用,又可作为通用的I/O口使用。当CPU访问片外存储器是,P0口分时工作,先作地址总线,输出8位地址;后作数据总线,数据可以双向传送。当P0口被地址/数据总线占用时,不再作I/O使用。P2口(P2.7P0.0):P2口是一个8为准双向I/O端口,它既可作为通用I/O使用。也可与P0口相配合,作为片外存储器的高8为地址总线。P2口作通用I/O线或地址线是

8、比较灵活的。根据系统的配置,既可以全部作地址线,也可以全部做I/O口线。P1口(P1.7P1.0):P1口仅作通用准双向I/O口使用,主要用于单片机用户系统的控制信号输入/输出。P3口(P3.7P3.0):P3口可以作为准双向I/O接口使用,但是,更多的时候使用第二功能。由于单片机体积小、重量轻、价格便宜,所以本系统采用8051内部的4KB的EEPROM,128字节的RAM,所以一般都需要根据系统的所需存储容量的大小来扩展ROM和RAM。本实验单片机在使用过程中其配置都符合设计要求,所以不需要扩展外部ROM和RAM。80C51的P0口作为0809的A/D转换数据读取用,P2口作为0809的A/

9、D转换控制接口,RXD、TXD作为串口输出显示数据。6 ADC0809的结构和工作原理 ADC0809是一种8位逐次逼近型A/D转换器,带8个模拟量输入通道,芯片内有通道地址译码锁存器,有输出三态数据锁存器,启动信号为脉冲启动方式,每个通道的转换大约为100us,可以和单片机直接接口。ADC0809的引脚图和内部的逻辑结构如下图所示。 由图可知,ADC0809是由一个八路模拟开关、一个地址锁存与译码器、一个八位A/D转换器和一个输出三态数据锁存器。多路开关可选通8个模拟通道IN0IN7,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁存器用于锁存A/D转换完的数字量,当OE端为高电

10、平时才可以从三态输出锁存器取出转换完的数据。IN0IN7:8条模拟量输入通道。ADC-0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。 地址编码被选中的通道ABC000IN0001IN1010IN2

11、011IN3100IN4101IN5110IN6111IN7通道选择表数字量输出及控制线:11条。ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。但EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为680KHZ。VREF(+),VREF(

12、-)为参考电压输入。七 ADC0809 应用说明1 .ADC0809内部带有输出锁存器,可以与51单片机直接相连2 .初始化时,使ST和OE信号全为低电平3 .送到转换的哪一通道的地址到A,B,C端口上4 .在ST端给出一个至少有100ns宽的正脉冲信号5 .是否转换完毕,我们根据EOC信号来判断6 .但EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了2. ADC0809的接口方法单片机的P0口作为地址、数据总线分时使用,P3口的片外读写端子通过指令控制ADC0809启动、停止、数据的读取等,0809的ALE锁定选通的通道进行转换,START是启动转换,CLOCK是转换速度控

13、制器,通过脉冲频率的大小来控制速度,单片机的ALE信号直接连到ADC0809的CLK引脚,P2.7口作读/写口的选通地址线。下图为ADC0809和80C51单片机的连线图。80C51与ADC0809的接法2.1.2 A/D转换电路 A/D转换电路由集成电路0809完成。0809具有8路模拟信号输入端口,地址线(23-25脚)可决定对哪一路模拟信号进行A/D转换。22脚为地址锁存控制。6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换数据结束时,7管脚输出高电平。9管脚为A/D转换数据输出允许控制端,当OE脚为高电平时,A/D转换数据从该端口

14、输出。10脚为0809的时钟输入端,用以控制0809的转换速度。六 74HC164的结构与工作原理本设计的显示功能是利用单片机的串口传输数据完成的,所以用到了移位寄存器74HC164。74HC164概述:8 位串入、并出移位寄存器 74HC164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻

15、辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。74HC164引脚图74HC164引脚说明符号引脚说明DSA1数据输入DSB2数据输入Q0Q336输出GND7地(0)CP8时钟输入(低电平到高电平边沿触发)/M/R9中央复位输入(低电平有效)Q4Q71013输出VCC14电源七数字电压表系统的软件设计1 主程序流程图 调试及性能分析2. 调试与测试采用Wave E2000 编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧好程序后进行软硬件联调,最后进行端口电压的对比

16、测试,测试对比见表4-1表中标准电压值采用UT56数字万用表测得  简易数字电压表与“标准”数字电压表对比测试表标准值/V0.000.150.851.001.251.751.982.322.65简易电压表测/V0.000.170.861.021.261.762.002.332.66绝对误差/V0.00+0.02+0.01+0.02+0.01+0.01+0.02+0.01+0.01标准值/V3.003.453.554.004.504.604.704.814.90简易电压表测/V3.013.473.564.014.524.624.724.824.92绝对误差/V+0.01+0.02+0.

17、01+0.01+0.02+0.02+0.02+0.01+0.02从表中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可以完全满足要求。3. 性能分析由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH)因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压表的最大分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以0.02的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器简易数字电压表测得的值基本上均比标准值偏大0

18、.01-0.02V。这可以通过校正0809的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。另外可以用软件编程来校正测量值。ADC0809的直流输入阻抗为1M欧姆,能满足一般的电压测试需要。另外,经测试ADC0809可直接在2MHz的频率下工作,这样可省去分频率1402。 数字电压表源程序 ,本设计中的汇编源程序利用WAVE6000软件进行编写、编译、修改、调试,最后生成机器码,写入单片机。ORG 0000HLJMP MAINORG 0003HLJMP INTDATA ;外部中断0中断服务程序入口MAIN:MOV DPTR, #7FFFHSTART:MO

19、VX DPTR,A ;启动转换 SETB IT0 ;外部中断0为跳变触发方式SETB EX0 ;开放外部中断0SETB EA ;开放总中断SJMP $ ;等待中断ORG 0300HINTDATA:MOVX A,DPTR ;读取数据MOV B, #33HDIV ABMOV 22H,A ;保存个位XCH A,BMOV B, #05HDIV ABMOV 21H,A ;保存0.1位MOV 20H,B ;保存0.01位MOV DPTR,#TAB2 ;发送TAB2表首地址给DPTRMOV A, 20HMOVC A,A+DPTR ;查询0.01位显示数值MOV SBUF,A ;发送0.01位数值JNB TI

20、,$ ;等待发送结束CLR TIMOV A, 21HMOVC A,A+DPTR ;查询0.1为显示数值MOV SBUF,A ;发送0.1为数值JNB TI,$ ;等待发送结束CLR TIMOV DPTR,#TAB1 ;发送TAB1表首地址给DPTRMOV A, 22H MOVC A,A+DPTR ;查询个位数值MOV SBUF,A ;发送个位数值JNB TI, $CLR TIMOVX DPTR,A ;再次启动LCALL DELAY5MS ;调用延时程序RETIDELAY5MS:MOV R2, #5L2:MOV R0, #255L0:MOV R1, #255L1:NOPNOPDJNZ R1, L1DJNZ R0, L0DJNZ R2, L2NOPNOPRETTAB1: DB 40H 79H 24H 30H 19H 12H 02H 78H 00H 10H

温馨提示

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

评论

0/150

提交评论