我的数字电压表程序——51单片机 ADC0804
- 格式:doc
- 大小:25.50 KB
- 文档页数:3
毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
仿真电路图,经过测试,没问题下面是上个图的分解图模拟电路:设计模拟电路的原因主要有以下两点1.由于外界信号的复杂性,使得传感器直接输出的电信号可能会存在一些问题(如不稳定),这些不稳定信号如果直接送到A/D 芯片进行采样,则最终结果可能使得最后的显示值来回乱跳,而无法确定待测的外界信号到底是多少。
因此,可能需要设计一套模拟电路对传感器输出的不稳定电信号进行滤波等处理,去除干扰,使得进入A/D 转换芯片的电压值为一个稳定的信号。
2.每一个A/D 转换芯片都有一个参考电压,只有输入的模拟电压值在这个参考电压的范围内才能进行正确的转换,例如:本试验将ADC0804芯片的参考电压设置成0V ~5V ,因此如果输入的电压值大于5V ,则转换出的结果永远为0xFF,若输入的电压值小于0V,则转换出的结果永远为0,这样便无法正确的还原出被测信号的大小。
基于上述原因,我们可能需要设计一套模拟电路,传感器的输出电压值进行一些变换(放大,缩小),使得送到A/D转换芯片的电压值在转换芯片的参考电压范围内。
A/D转换芯片:即模拟/数字转换芯片,它将输入的模拟电压信号转换成单片机等控制处理器能够识别的数字二进制形式。
处理器芯片:处理器芯片有很多中(比如51单片机,ARM或者是PC上的奔腾处理器,AMD处理器)这些处理器虽然架构不一样,但是有个共同的特点,就是它们能够运行程序,因此它们能通过程序对A/D芯片送入的二进制形式的电压值进行处理,通过运算将其还原成待测的外界信号值,控制显示部件(如LCD,八段数码管)将这个值显示出来。
例如:假如ADC0804输出的二进制值0x80,则根据A/D转换公式可以推出ADC0804的输入电压大小为(0x80/0x100)*5V=2.5V。
假设信号经过模拟电路缩小了8倍,则可以推出传感器的输出电压为2.5V*8=20V,再根据传感器的转换公式(一般手册会给出)即可得到输入的外界信号的值。
显示:显示的作用是将计算出的待测外界信号的值展示给测量人员,显示的形式有很多种,如LCD,八段数码管,上位机软件等。
1 引言随着微电子技术的不断发展与进步,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。
传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。
采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。
数字电压表是诸多数字化仪表的核心与基础。
以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。
数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。
目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。
本文是以数字电压表的设计为研究内容,主要包括数据的A/D转换、数字数据处理及LED显示。
其中,A/D转换采用ADC0809对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号。
2 设计总体方案2.1 设计要求基本要求:采用51系列单片机和ADC设计一个数字电压表,输入为0~5V线性模拟信号,输出通过LED显示,要求显示两位小数。
一、基本换算本系统采用8位ADC分辨率采样分辨率测量采样采样二、理论误差分析根据以上数据分析,采用235mV作为分辨率处理数据,可以满足精确到小数点后一位的需求。
三、硬件原理仿真图三、程序流程图四、总结系统用adc0808采集电压值,通过AT89C51处理后显示到数码管上,最大量程50V。
通过做这个项目,发现自己用汇编语言处理数据上有很大困难,主要是对算法指令的执行机制不了解,做不了大数据的四则运算。
实际程序中用了20mV作为分辨率,扩大10倍后为测量电压值。
当测量电压大于一定值后,不能满足精度需求。
同时,在硬件仿真上也出现了一些问题,例如小数点控制引脚直接接p11时,显示不正常。
五、今后计划先在现在的公司干着,空余时间补充汇编方面的知识,和硬件知识,做些小项目。
以后有机会的话,可以再次回到俊硕。
本次项目做的不好,继续完善,做到满意。
附录:shifw EQU 31H ;十位gew EQU 32H ;百位shiw EQU 33H ;千位adc EQU 35H ;存放转换后的数据CLOCK BIT P1.4 ;定义0809时钟位ST BIT P1.5OE BIT P1.7EOC BIT P1.6ORG 00HSJMP STARTORG 0BHLJMP INT_T0ORG 30HSTART:MOV shiw,#00HMOV gew,#00HMOV shifw,#00HMOV TMOD,#02HMOV TH0,#245MOV TL0,#00HMOV IE,#82HSETB TR0MAIN:CALL A DCHANGECALL D ISPJMP MAINADCHANGE:CLR STSETB STCLR ST ;启动转换JNB EOC,$ ;等待转换结束SETB OE ;允许输出MOV adc,P2 ;暂存转换结果CLR OE ;关闭输出MOV A,adc ;将AD转换结果转换成BCD码MOV R7,AMOV shiw,#00HMOV gew,#00HLOOP1:ADD A,#20H ;一位二进制码对应20mv电压值DA AJNC LOOP2MOV R4,AINC gewMOV A,gewCJNE A,#10,LOOP2MOV gew,#0INC shiwLOOP2:DJNZ R7,LOOP1MOV A,R4SWAP AANL A,#0fHMOV shifw,ARETINT_T0:CPL CLOCK ;提供0809时钟信号常州大学硬件实习报告RETIDISP: ;数码显示子程序MOV DPTR,#TABLE1MOV A,shiwJZ DISP2MOVC A,@A+DPTRCLR P1.0MOV P0,ALCALL DELAYDISP2:SETB P1.0MOV DPTR,#TABLE2MOV A,gewMOVC A,@A+DPTRCLR P1.1MOV P0,ALCALL DELAYSETB P1.1MOV DPTR,#TABLE1MOV A,shifwMOVC A,@A+DPTRCLR P1.2MOV P0,ALCALL DELAYSETB P1.2RETDELAY:MOV R6,#10 ;延时5毫秒D1:MOV R7,#250DJNZ R7,$DJNZ R6,D1RETTABLE1:DB 0c0H,0f9H,0a4H,0b0H,99H ;共阳显示码表DB 92H,82H,0f8H,80H,90HTABLE2:DB 40H,79H,24H,30H,19H ;显示码表,显示小数点DB 12H,02H,78H,00H,10HEND。
信息与电气工程学院电子应用系统CDIO一级项目设计说明书(2011/2012学年第二学期)题目:___ _数字电压表__________专业班级:电子信息0902班学生姓名:张文盛学号:090070213指导教师:贾少锐、李晓东、马永强李丽宏、贾东立、刘会军设计周数:设计成绩:2012年6月28日1、CDIO设计目的本次CDIO设计题目是:利用所学的51单片机,C语言,数字电路等知识,设计一个符合要求的数字电压表。
主控芯片可以是AT89C51,而采集电压的模拟量转换成数字量的芯片可以是ADC0804,也可以是PCF8591。
而显示模块可以是数码管,也可以是液晶LCD1602,从而展示给我们所得的电压值。
2、CDIO设计正文2.1 数字电压表系统设计框图本次数字电压表系统设计框图如图1所示:图1 数字电压表设计框图数字电压表主要由模/数转换电路、单片机控制电路、显示电路等三部分组成。
其中PCF8591等器件组成的转换电路,将输入的模拟量信号进行取样、转换、然后将转换的数字信号送进单片机。
单片机控制电路主要实现对数据进行程序处理;显示电路主要用于将单片机的信号数据转换后显示测量结果。
模拟信号产生模块:输入电源电路(变压器、整流电路、滤波电路、稳压电路组成)和分压电路(9万欧姆和1万欧姆的电阻分压)。
模数转换模块组成部分:PCF8591芯片程序处理的单片机控制模块:AT89C51芯片电压结果显示部分:LCD1602液晶2.2 各模块介绍2.2.1 AT89C51芯片介绍AT89S52 具有以下标准功能:8k 字节Flash,256 字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2 种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
单片机硬件实习任务书通信工程教研室指导教师:_基于单片机的简易数字电压表的设计目录1 引言 (1)2 设计总体方案 (2)2.1设计要求 (2)2.2 设计思路 (2)2.3 设计方案 (2)3 硬件电路设计 (3)3.1 A/D转换模块 (3)3.2 单片机系统 (6)3.3 复位电路和时钟电路 (8)3.4 LED显示系统设计 (8)3.5 总体电路设计 (11)4 程序设计 (13)4.1 程序设计总方案 (13)4.2 系统子程序设计 (13)5 仿真 (15)5.1 软件调试 (15)5.2 显示结果及误差分析 (17)结论 (20)参考文献 (21)附录程序代码和实物图 (24)心得体会 ......................................................... 错误!未定义书签。
1引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。
传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。
采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。
数字电压表是诸多数字化仪表的核心与基础[2]。
以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。
前言:本文详细说明了ADC0804工作原理及过程,还附有一个ADC0804在单片机中的典型应用,包含原理图,源程序,程序注释详细清楚,这有助于更好地理解与应用ADC0804芯片。
1、A/D转换概念:即模数转换(Analog to DigitalConversion),输入模拟量(比如电压信号),输出一个与模拟量相对应的数字量(常为二进制形式)。
例如参考电压VREF为5V,采用8位的模数转换器时,当输入电压为0V时,输出的数字量为0000 0000,当输入的电压为5V时,输出的数字量为1111 1111。
当输入的电压从从0V到5V变化时,输出的数字量从0000 0000到1111 1111变化。
这样每个输入电压值对应一个输出数字量,即实现了模数转换。
2、分辨率概念:分辨率是指使输出数字量变化1时的输入模拟量,也就是使输出数字量变化一个相邻数码所需输入模拟量的变化值。
分辨率与A/D转换器的位数有确定的关系,可以表示成FS / 2 n 。
FS表示满量程输入值,n为A/D转换器的位数。
例如,对于5V的满量程,采用4位的ADC时,分辨率为5V/16=0.3125V (也就是说当输入的电压值每增加0.3125V,输出的数字量增加1);采用8位的ADC时,分辨率为5V/256=19.5mV(也就是说当输入的电压值每增加19.5mV,则输出的数字量增加1);当采用12位的ADC时,分辨率则为5V/4096=1.22mV(也就是说当输入的电压值每增加1.22mV ,则输出的数字量增加1)。
显然,位数越多,分辨率就越高。
3、ADC0804引脚功能:CS:芯片片选信号,低电平有效。
即CS=0时,该芯片才能正常工作,高电平时芯片不工作。
在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。
WR:启动ADC0804进行ADC采样,该信号低电平有效,即WR信号由低电平变成高电平时,触发一次ADC转换。