《基于单片机的数字电压表设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的数字电压表设计.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、- -学号20xxxxxxxx?单片机原理与应用?课 程设计2010级本科题 目:基于单片机的简易数字电压表的设计系部院:物理与机电工程学院专 业:电气工程及其自动化 xxxx 指导教师: xxxxx职称: xxxxxxx完成日期: 2013 年 12 月 15 日 - - word.zl- -单片机原理与应用课程设计任务书学生xxxx学 号20xxx专业方向电气工程及其自动化班 级电气工程101题目名称基于单片机的简易数字电压表的设计一、设计要求1以单片机为核心器件,组成一个简单的直流数字电压表。2能够测量0-5V之间的直流电压值。3电压显示至少能够显示两位小数。三.设计进度安排阶段设计各阶
2、段名称起止日期1熟悉设计任务书、设计题目及设计背景资料12月1日12月2日2查阅有关资料12月3日12月4日3阅读设计要求必读的参考资料12月5日12月6日4选取方案12月7日12月8日5完成设计,进展编程,调试12月9日12月12日6打印整理课程设计资料12月13日12月14日7辩论及成绩评定12月15日12月16日指导教师签字:基于单片机的简易数字电压表的设计摘要 本文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理那
3、么由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进展显示;此外,它还控制着ADC0808芯片工作。该系统的数字电压表电路简单,所用的元件较少,本钱低,且测量精度和可靠性较高。此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。关键词单片机;数字电压表;A/D转换;AT89C51;ADC0808目 录一、引言1二、设计总体方案1一设计要求1二设计思路1三设计方案2三、硬件电路设计2一A/D转换模块2二单片机系统4三复位电路和时钟电路5四LED显示系统设计5五总体电路设计6四、程序设计8一程
4、序设计方案8二局部程序代码9五、仿真9一显示结果及误差分析9六、结论10七、参考文献12附录13- - word.zl- -一、引言在电量的测量中,电压、电流和频率是最根本的三个被测量,其中电压量的测量最为经常。传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用1。数字电压表的部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度。本文是以简易数字直流电压
5、表的设计为研究容,采用单片机将连续的直流电压转换成不连续的离散的数字形式并加以显示,本系统主要包括:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808芯片,单片机芯片采用 AT89C51,显示模块采用四个LED数码管。二、设计总体方案一设计要求1以单片机为核心器件,组成一个简单的直流数字电压表。2能够测量0-5V之间的直流电压值。3电压显示至少能够显示两位小数。 二设计思路1根据设计要求,选择AT89C51单片机为核心控制器件。2A/D转换采用ADC0808实现,数据端口与单片机的P2口相连,控制引脚和P3口的低四位引脚。3电压显示采用4位一体的LED数码管。4LED数码的段
6、码输入与P1口连接。位码输入,用P3口高四位控制。三设计方案硬件电路设计由4个局部组成; A/D转换电路,AT89C51单片机系统,LED显示系统以及测量电压输入电路。硬件电路设计框图如图1所示。 图1 数字电压表系统硬件设计框图三、硬件电路设计一A/D转换模块把模拟量转化成数字量的器件称为模/数转换器A/D转换器,A/D转换器是单片机数据采集系统的关键接口电路,常用的 A/D转换器有:双积分式、逐位比拟式及并行直接比拟式等几种。本设计采用ADC0808芯片。ADC0808是采用CMOS 工艺制成的8位8通道A/D转换器,采用28脚DIP封装。片带有锁存功能的8路模拟开关,可以对8路0-5V输
7、入模拟电压信号分时进展转换,由于ADC0808设计时考虑到假设干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图2所示。图2 ADC0808引脚图下面说明各个引脚功能:IN0-IN78条:8路模拟量输入线,用于输入被转换的模拟信号。ALE:地址锁存允许信号,输入。由低到高的正跳变有效,此时锁存地址选择线的状态,从而选通相应的模拟通道,以便进展A/D转换。ADD A,ADD B,ADD C:模拟通道的地址选择线,输入。其对应关系如表1所示: 表1 ADC0808通道选择表地
8、址码对应的输入通道CBA000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7START:启动信号,输入,高电平有效。为了启动转换,在此端上应加一个正脉冲信号,脉冲的上升沿将部存放器全部清0,在其下降沿开场转换。 EOC:转换完毕信号,输出,高电平有效。在START信号的上升沿之后0-8个时钟周期,EOC变为低电平。当转换完毕时,EOC变为高电平,这时转换得到的数据可供读出。OUT1-OUT8:数字输出线,输出。OUT1为最高位,OUT8为最低位。OE:输出允许信号,输入,高电平有效。当OE有效时,A/D的输出锁存缓冲器开放,将其中的数据,放到外面的数
9、据线上。VREF+、VREF-:参考电压输入量,给电阻阶梯网络供应标准电压。Vcc、GND: Vcc为电源输入端,GND为接地端。二单片机系统AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片含有4KB的可反复擦写的程序存储器和128字节的数据存储器。AT89C51采用DIP封装形式,引脚配置如图3所示。图3 AT89C51的引脚图Vcc为+5V电源线,Vss接地。ALE:地址锁存允许信号。EA:片外存储器访问允许信号,低电平有效。PSEN:片外程序存储器选通信号,低电平有效。RST:复位输入信号,高电平有效。XTAL1和XTAL2:这两个端子用来接外部石英晶体。三
10、复位电路和时钟电路80C51单片机部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件晶体振荡器和电容,即可构成一个稳定的自激振荡器。在80C51芯片部有一个高增益反相放大器,而在芯片外部,XTAL1和XTAL2之间跨接晶体振荡器和电容。图4 单片机最小系统图在本系统中选择的时钟信号的震荡频率为12MHz。上述复位电路,上电自动复位,按键电平复位。使单片机从0000H单元开场执行程序。四LED显示系统设计在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器。本系
11、统中前一位显示电压的整数位,即个位,后3位显示电压的小数位。4-LED显示器引脚如图5所示,是一个共阴极接法的4位LED数码显示管,其中A,B,C,D,E,F,G为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,DP是小数点引出端,4位一体LED数码显示管的部构造是由4个单独的LED组成,每个LED的段输出引脚在部都并联后,引出到器件的外部。图5 4位LED数码显示管对于这种构造的LED显示器,它的体积和构造都符合设计要求,由于4位LED阴极的各段已经在部连接在一起,所以必须使用动态扫描方式将所有数码管的段选线并联在一起,用一个I/O接口控制显示。由于本设计采用的是共阴极LE
12、D,其对应的字符和字段码如下表2所示。表2 共阴极字段码表显示字符共阴极字段码03FH106H25BH34FH466H56DH67DH707H87FH96FH五总体电路设计经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图6所示。图6 简易数字电压表电路图此电路的工作原理是:+5V模拟电压信号通过变阻器VR1分压后由ADC08008的IN0通道进入由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平,经过模/数转换后,产生相应的数字量经过其输出通道OUT0-OUT7传送给AT89C51芯片的P2口,AT89C51负责把接收到的数字量经过数据处理,产生正确的
13、7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P3.4、P3.5、P3.6、P3.7产生位选信号控制数码管的亮灭。此外,AT89C51还控制ADC0808的工作。其中,单片机AT89C51通过定时器中断从P3.3输出方波,接到ADC0808的CLOCK,P3.0发正脉冲启动A/D转换,P3.1检测A/D转换是否完成,转换完成后,P3.2置高从P1口读取转换结果送给LED显示出来。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还
14、需要有相应的软件配合,才能到达设计要求。四、程序设计一程序设计方案 根据模块的划分原那么,将该程序划分初始化模块,A/D转换,数据转换和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图7所示。图7 主程序流程图图8 定时中断程序流程图二局部程序代码ORG 000BHLJMP INTT0MAIN:MOV TMOD,#02H ;设定定时器T0工作在方式2MOV TH0,#254 ;设定时钟频率为500KHzMOV TL0,#254MOV IE,#82H ;开定时器T0中断SETB TR0 ;启动定时器T0INTT0:CPL P3.3RETI五、仿真一显示结果及误差分析系统仿真是在单片机系
15、统的设计与仿真平台proteus中实现的,其中ADC0808的模拟通道 INT0接入可调电位器的中心抽条的分压值,该电压值大小可调节,以模拟被测电压,系统的测试数据如表3所示,从表中的测试结果可以看出,电压测量值和待测电压值几乎相等,误差较小,测量精度高,性能稳定,但文中仿真结果是在比拟理想的情况下进展的,搭建实际的硬件电路时,假设误差较大,可以通过校正ADC0808的基准电压来解决,也可以通过软件编程进展调整。表3 简易数字电压表与“标准数字电压表比照测试表标准电压值/V简易电压表测量值/V绝对误差/V0.000.0000.0000.100.0970.0030.250.2540.0040.5
16、00.5070.0071.351.3520.0021.551.5470.0032.102.0970.0032.852.8470.0033.353.3520.0024.254.2540.0044.304.2930.0074.454.4500.0005.005.0000.000由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为2550FFH,因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。从上表可以看出,简易数字电压表测得的值根本上比标准电压值偏大0
17、-0.01V,这可以通过校正ADC0808的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进展调整就可以了。六、结论基于单片机的数字电压表使用性强、构造简单、本钱低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标到达了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是
18、在硬件连接方面还是在软件编程方面。本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总之这次电路的设计和仿真,根本上到达了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。七、参考文献1胡健.单片机原理及接口技术.:机械工业,2004年10月
19、2于殿泓、王新年.单片机原理与程序设计实验教程.电子科技大学,2007年5月3俊谟.单片机中级教程原理与应用.第2版.航空航天大学,2006年4边春远.MCS-51单片机应用开发实用子程序M .:人民邮电.2005年9月.附录ORG 0000HLJMP MAINORG 000BHLJMP INTT0MAIN:MOV TMOD,#02H ;定时器T0工作在方式2MOV TH0,#254;设定时钟频率为500KHzMOV TL0,#254MOV IE,#82H;开定时器T0中断SETB TR0;启动定时器T0MOV DPTR,#TABSTART:SETB P3.0;start信号从高电平跳变到低电
20、平时,开场转换NOPCLR P3.0JNB P3.1,$;查看EOC是否跳变到0,表示转换完毕SETB P3.2;OE端置1,将转换结果送出去MOV A,P2;结果送到累加器A,准备数据显示调整LCALL LOOP1;数据调整SJMP STARTLOOP1:MOV B,#51D;255换算到5V,比例为51DIV ABMOVC A,A+DPTR ;查表SETB P3.7 ;关闭数码管通道4CLR P3.4 ;翻开数码管通道1MOV P1,A ;整数局部SETB P1.7 ;小数点MOV A,B ;余数送到ACLR F0SUBB A,#26D ;减去26,判断余数是否大于26MOV F0,C ;
21、借位位送F0MOV A,#10D ;A中送10MUL AB ;余数乘以10MOV B,#51DDIV AB F0,LOOP2;借位了,说明大于26ADD A,#5DLOOP2:MOVC A,A+DPTRSETB P3.4 ;关闭数码管显示通道1CLR P3.5 ;翻开数码管显示通道2CLR P1.7 ;清小数点MOV P1,A ;小数点后第一位小数MOV A,BCLR F0SUBB A,#26DMOV F0,CMOV A,#10DMUL ABMOV B,#51DDIV AB F0,LOOP3ADD A,#5LOOP3:MOVC A,A+DPTRSETB P3.5 ;关闭数码管显示通道2CLR
22、P3.6 ;翻开数码管显示通道3MOV P1,A ;小数点后第二位小数MOV A,BCLR F0SUBB A,#26DMOV F0,CMOV A,#10DMUL ABMOV B,#51DDIV AB F0,LOOP4ADD A,#5LOOP4:MOVC A,A+DPTRSETB P3.6 ;关闭数码管显示通道3CLR P3.7 ;翻开数码管显示通道4MOV P1,A ;小数点后第三位小数RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HINTT0:CPL P3.3RETIEND单片机课程设计成绩评定
23、表辛维彬学号2010210350班级电气工程101题目基于单片机的简易数字电压表的设计摘要:本文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理那么由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进展显示;此外,它还控制着ADC0808芯片工作。该系统的数字电压表电路简单,所用的元件较少,本钱低,且测量精度和可靠性较高。此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。成绩评定依据评定工程1. 设计方案可行性及其优选2. 设计过程及结果3. 平时成绩态度认真、遵守纪律4. 设计报告的规性、参考文献充分5. 辩论6. 总分该同学课程设计最终成绩评定为优、良、中、及格、不及格备注:- - word.zl-
限制150内