版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录0. 前言11.基于单片机的多路数字电压表的基本理论12. 方案设计23. 硬件电路的工作原理23.1单片机电路模块23.2 A/D转换器电路模块43.3数码管显示电路模块53.4 按键处理电路模块54. 软件编程64.1 主程序64.3 显示子程序95. 系统调试和结果分析106. 结论及进一步设想10参考文献11附录1 元件清单12课设体会13基于单片机的多路数字电压表的设计 摘要:本次设计了一个多路数字电压表,该电压表测量范围在05V之间。它主要利用A/D转换器,对多路电压值进行采样,得到相应的数字量,然后按照数字量与模拟量的比例关系得到对应的模拟电压值,通过显示设备显示出来。系统
2、过程就是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示。由于采用高性能的单片机芯片为核心,同时利用LED数码管为显示设备,这样就使显示清晰直观、读数准确,大大地减少了因人为因素所造成的测量误差事件,大大的提高了测量的精确度。关键词:单片机;数字电压表;ADC08090. 前言单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。 单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征
3、。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。本次课程设计的课题是“基于单片机的多路数字电压表的设计”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。通过单片机,采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显
4、示的仪表,使测得的结果更为精准。本课题主要解决A/D转换、数据处理及显示控制等三个模块。控制系统采用AT89C52单片机,A/D转换采用ADC0809。1.基于单片机的多路数字电压表的基本理论基于单片机的多路数字电压表的主要原理是利用A/D转换器实现其功能,其过程为如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电压值,然后把模拟值通过数码管显示出来。设计时假设待测的输入电压为8路,电压值的范围为05v,要求能在4位LED数码上轮流显示或单路显示。测量的最小分辨率为0.019v。根据系统的功能要求,控制系统采用AT89C52单片机,A
5、/D转换器。当输入电压为5V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。LED数码管显示采用软件译码动态显示。通过按键选择可8路循环显示,也可以单路循环。单路显示可通过按键选择所要显示的通道数。2. 方案设计输入电路A/D转换器单片机89C52LED数码显示基于单片机的多路数字电压表电路的基本组成如图1所示。图1 基于单片机的多路数字电压表电路的原理框图根据设计要求,采用的方案如下。硬件部分实
6、现数据的采集、编译,A/D转换以及显示的功能,包括单片机电路模块、A/D转换器模块、数码管显示电路模块、按键处理电路模块;软件部分实现控制芯片,使各部件能够正常的运行,同时实现仿真的功能,主要设计思想是利用Proteus软件进行仿真,通过仿真得到实验的结果。3. 硬件电路的工作原理3.1单片机电路模块本次课设单片机采用高性能的89C52系列芯片,如图2所示,图2 AT89C52芯片图其具体管脚说明如下:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIAS
7、H编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用
8、于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3
9、.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5 T1(记时器1外部输入);P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目
10、的。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.2 A/D转换器电路模块ADC0809具有8路模拟量输入通道IN0-IN7,通过3位地址输入端C、B、A(引脚23-25)进行选
11、择,如图3所示。引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部是锁存器中,经内部译码电路译码选中相应的模拟通道。引脚6为启动转换控制端START,当输入一个2s宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。引脚7为A/D转换器,当开始转换时,EOC信号为低电平,经过一段时间,转换结束,转换结束信号EOC输出高电平,转换结果存放于ADC0809内部的输出数据寄存器中。引脚9脚为A/D转换数据输出允许控制端OE,当OE为高电平时,存放于输出数据锁存器中的数据通过ADC0809的数据线D0D7输出。引脚10为ADC0809的
12、时钟信号输入端CLOCK。在连接时,ADC0809的数据线D0D7与AT89C52的P0口相连接,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89C52的P2口相连接,转换结束信号EOC与AT89C52的P3.7相连接。时钟信号输入端CLOCK信号,由单片机的地址锁存信号ALE得到。图3 A/D转换器电路图3.3 数码管显示电路模块LED数码管采用动态扫描方式连接,通过AT89C52的P1口和P3.0P3.3口控制。P1口为LED数码管的字段码输出端,P3.0P3.3口为LED数码管的位选码输出端,通过三极管驱动并反相。如图4所示。图4 数码
13、管显示电路图3.4 按键处理电路模块S1和S2是两个按键开关,如图5所示,分别与单片机的P3.5和P3.6相连接。S1用于单路显示或多路循环显示转换控制,S2用于单路显示时的通道选择。图5 按键处理电路图4. 软件编程多路数字电压表的系统软件程序由主程序、A/D转换子程序和显示子程序组成。4.1 主程序主程序包含初始化部分、调用A/D转换子程序和调用显示程序,如图6所示。初始化部分包含存放通道数据缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制。初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示。00H位通过单路/循环按键控制。初始化
14、调用A/D转换子程序调用显示子程序开始图 6 主程序流程框图程序源如下:#include <stdio.h>#include <reg52.h>#include <intrins.h> /调用_nop_()延时函数#define ad_con P2 /0809控制口#define addata P0 /0809数据入口#define disdata P1 /数码管显示#define uchar unsigned char#define uint unsigned intuchar number=0x00; /存放单通道显示时的当前通道数sbit ALE=P2
15、3; /0809地址锁存信号sbit START=P24; /启动信号sbit OE=P25; /输出允许通道sbit KEY1=P35; /循环或单路选择按键sbit KEY2=P36; /通道选择按键sbit EOC=P37; /转换结束信号sbit DISX=disdata7;/小数点位sbit FLAG=PSW0; /循环或单路显示标志位Uchar code dis_711=0x3F,0x06,0x5B,0X4F,0x66,0x6D,0x7D,0x07,0x7E,0x6F,0x00;/数码管的字段码uchar code scan_con4=0xF1,0xF2,0xF4,0xF8;/4个
16、LED数码管的位选Uchar data ad_data8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/0809的8个通道转换数据缓冲区uchar data dis5=0x00,0x00,0x00,0x00,0x00;/显示缓冲区/*主函数*/ main() P0=0xff; /初始化端口 P2=0x00; P1=0xff; P3=0xff; while(1) test();/测量转换数据 scan();/显示数据 /*1秒延时*/delay1ms(uint t)uint i,j;for (i=0;i<t;i+)for (j=0;j<120;j+
17、);4.2 A/D转换子程序A/D转换子程序用于对ADC0809的8路输入模拟电压进行A/D转换,并将转换的数值存入8个相应的存储单元中,如图7所示。A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。开始启动一次转换否A/D转换结束EOC=1?) 取数据(OE=0)0808地址通道加1否地址数小于8开始图7 A/D转换器子程序框图程序源如下:test() uchar m; uchar s=0x00; /初始通道位0 ad_con=s;/第一通道地址送0809控制口 for(m=0;m<8;m+) ALE=1;_nop_();_nop_();ALE=0;/锁存通道地址
18、START=1;_nop_();_nop_();START=0;/启动转换 _nop_();_nop_();_nop_();_nop_(); while(EOC=0);/等待转换结束 OE=1;ad_datam=addata;OE=0;/读取当前通道转换数据 s+;ad_con=s;/改变通道地址 ad_con=0x00;/通道地址恢复初值 4.3 显示子程序LED数码管采用软件译码动态扫描方式。在显示子程序中包含多路循环显示和单路显示程序。多路循环显示把8个存储单元的数值依次取出送到4位数码管上显示,每一路显示1秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示需经过转换变成十进制
19、BCD码,放于4个数码管的显示缓冲区中。单路显示或多路循环显示通过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。程序如下:keytest()if (KEY1=0) /检测循环或单路选择按键是否按下FLAG=!FLAG; /标志位取反,循环,单路显示却换 while(KEY1=0);if(FLAG=1) /单路循环时,检测通道选择按键是否按下if(KEY2=0) number+; if(number=8) number=0; while(KEY2=0); 5. 系统调试和结果分析采用Keil uVision2编译器进行源程序编译及仿真调试,同时进行硬件电路板的
20、设计制作,完成好程序后进行软硬件联调,最后进行端口电压的对比测试,要求测试对比中标准电压值采用数字万用表测得。测试对比表如表1所列。表中标准电压值采用数字万用表测得。表1 基于单片机的多路数字电压表与数字电压表对比测试表标准电压值/V简易电压表测得值/V绝对误差/V0.000.000.000.150.17+0.020.850.86+0.011.001.02+0.021.251.26+0.011.751.76+0.011.892.00+0.022.322.33+0.012.652.65+0.01基于单片机的多路数字数字电压表与“标准”数字电压表测得的绝对误差应在0.02V以内,满足设计要求,达到
21、了设计的目的。6. 结论及进一步设想通过实验仿真,比较标准电压值与设计的数字电压表测得的电压值,发现它们的绝对误差均在0.02V以内,这与采用8位A/D转换器所能到达到的理论误差精度相一致,在一般的应用场合完全可以满足要求。但是由于存在着单片机为8位处理器,当输入电压为5.00 V时,ADC0809输出数据值为255(FFH),单片机最高的数值分辨率只能为0.0196 V的原因,还存在着不能满足高精度测量的缺陷,可以通过采用更高位的A/D转换器来进一步改善,得到更加精确的数据。此外,从表1中可以看出,简易数字电压表测得的值基本上均比标准电压值偏大0.01-0.01 V。这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时直接用5 V的供电电源作为基准电压,所以电压有可能有偏差。另外,还可以用软件编程来校正测量值。参考文献1 刘复华. 单片机及其应用系统. 北京:清华大学出版社,19922 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,19(4):23-273 张国勋,缩短ICL7135A/D采样程序时间的一种方法J. 电子技术应用,1993,第一期.4 高峰,单片微型计算机与接口技术M.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年广西壮族自治区税务系统遴选考试真题汇编附答案解析(夺冠)
- 2023年益阳市遴选公务员笔试真题汇编带答案解析
- 国企岗位选拔中的面试技巧
- 2023年克拉玛依市税务系统遴选考试真题汇编带答案解析
- 2023年秀山土家族苗族自治县遴选公务员考试真题汇编附答案解析(夺冠)
- 2023年崇左市直遴选笔试真题汇编及答案解析(夺冠)
- 2023年伊春市税务系统遴选考试真题汇编附答案解析
- 2023年甘孜藏族自治州税务系统遴选考试真题汇编及答案解析(夺冠)
- 2025年绿色农业园区发展项目可行性研究报告
- 2025年定西市直遴选笔试真题汇编附答案解析
- 电焊基础教学课件
- 安全生产培训规章制度
- 煤矿掘进技术课件
- 装配钳工安全培训
- 农业机器人作业效率研究-洞察及研究
- 《人民日报》每日金句(收藏起来)
- CJ/T 210-2005无规共聚聚丙烯(PP-R)塑铝稳态复合管
- T/CIES 002-2016照明工程设计收费标准
- T/CCS 063-2023井工煤矿智能化供排水系统运维管理规范
- 泵站管理终止合同协议书
- 中铁集团出国劳务合同范例
评论
0/150
提交评论