单片机电压越限警报 检测及报警系统的设计及开发_第1页
单片机电压越限警报 检测及报警系统的设计及开发_第2页
单片机电压越限警报 检测及报警系统的设计及开发_第3页
单片机电压越限警报 检测及报警系统的设计及开发_第4页
单片机电压越限警报 检测及报警系统的设计及开发_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要随着社会的发展和时代的进步,人们不断的对于环境的安全性提出更多的要求,由此设计出一个行之有效的检测与报警系统是有很大的必要。自从电的问世以来,随着爱迪生发明了灯泡,电类设备的大量的使用,电这一能源便于人们的生活息息相关,在日常生活及工业生产中扮演着重要的角色,因此对于电的安全使用和电路的保护也尤为重要。本课题为检测与报警系统的设计与开发,以单片机为中心设计一个能够根据输入电压的大小进行报警的仪器。本设计选为单片机,A/D转换器等元器件为主要部分,利用可变电阻器作为输入电压,来对于电压值进行监控,达到保护作用。在设定范围0-5V之内,当输入电压高于上限值2.5V时进行报警,并实时显示输入的电

2、压值,输入电压通过A/D转换器进行模拟信号与数字信号的转换,并将信号送入单片机,最终经单片机处理运算后来进行驱动LED发光显示。电压越限报警器的广泛使用将会大量降低实际应用中由于电压值越限所带来的影响。关键词:AT89C51 ,DAC0808,PROTEUS1引言设计并开发能检测模拟信号,并能产生报警信号的系统。1.对输入的05V模拟电压信号进行检测。2.能判断所检测的信号是否超界。3.若信号超界则进行报警(可用发光二极管闪烁表示)。说明:其界限值是自行设定的(如2.5V),其所对应的数字量为(2.5/5)*255=127.5=80H),事先将其存放在某寄存器或存贮单元。随着计算机技术的飞速发

3、展和普及,检测与报警系统在多个领域有着广泛的应用对某一检测点任意参数能够进行随机查寻,将其在某一时间段内检测得到的数据经过转换提取出来,以便进行比较,并进行超范围的LED警报。 随着工、农业的发展,多路数据采集势必将得到越来越多的应用,为适应这一趋势,作这方面的研究就显得十分重要。在科学研究中,成为广大电子领域中必须掌握的过程,并且对测量的精度和采集功能的要求也越来越高,而电压的测量,显示与测量系统甚为重要。在课程设计中对一路电压采集系统与显示系统作了基本的研究。电压采集与通信控制采用了模块化的设计,并用单片机8051来实现,硬件部分是以单片机为核心,还包括模-数转换模块,显示模块,和串行接口

4、部分,还有一些简单的外围电路。1路被测电压通过通用ADC0808模-数转换,实现对采集到的电压进行模拟量到数字量的转换,由单片机对数据进行处理,用数码管显示模块来显示所采集的结果,由相关控制器完成数据接收和显示,汇编程序编写了更加明了化数据显示界面。本系统主要包括四大模块:数据采集模块、控制模块、显示模块、A/D转换模块和LED警报电路。绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。在软件编程上,采用了汇编语言进行编程,开发环境使用相关集成开发环境。开发了显示模块程序、A/D转换程序。2总体设计方案2.1 设计思路A、利用ADC0809及其适当的外围电路实现直流电压的

5、采集。B、采集结果在LED数码管上显示出来,数据范围为:05v,超过2.5V时对其输入信号进行LED亮灯警报C、绘制硬件连接图,编写相应的控制程序。D、撰写设计报告、调试报告、设计心得。2.1.1 设计方案(1).方案确立依据综合课程设计的要求,利用ADC0808设计一个单通道模拟电压采集显示电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量送至数码管指示出来,通过相关转换在数码管上精确显示出来。本课程设计相当于测直流电压的大小,通过对电压值的采集与处理,而由所学微控制器的知识可知,可以利用单片机的模数转换来实现这一设计,进一步把相应的电压值精确显示出来。 模数转换就是利用单片机控制

6、模数转换芯片(A/D),让它对外部的一个模拟信号进行采样、量化、编码然后转化为一个离散的数字量,提供给控制器作进一步处理。对于常用的A/D转换芯片有ADC0809、ADC0808等。它们都是8位的模数转换芯片,就是把模拟量转换为一个8位的二进制数。利用单片机AT89C51与ADC0809设计一个电压采集系统,将模拟信号(实际设计时采用05 V)之间的直流电压值转换成数字量信号0FF,以数码管显示。Proteus软件启动仿真,当前输入电压为25 0V,转换成数字值为7FH,用鼠标指针调节电位器尺,可改变输入模数转换器ADC0808的电压,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,

7、LED数码管实时显示相应的数值量。 此次电压表总体的方案就是用单片机的I/O口输出信号来控制A/D启动转换,将送入的模拟量转换为一个8位数字量,然后再通过I/O口送回单片机内部进行处理,单片机进行一系列的运算和校准后,通过数码管将电压值显示出来。而在方案的实现上由两部分组成:硬件部分和软件部分。硬件即电子元器件的选择且将它们连接成一个可行的硬件系统,软件是硬件系统功能化的重要组成部分。硬件的设计可以在Proteus上进行,软件可以用Proteus自带的汇编工具,然后在Proteus将硬软件相结合,进行仿真,再根据结果不断对硬件进行改进,对软件进行调试,实现电压的采集与显示功能。2.2 设计方框

8、图图1.1 总体模块图2.2.1 电源采集电路本设计利用可变电阻器作为输入电压,输入电压范围为0-5V,将采集端电压最大值设置为5V,随着可变电阻器百分比的变化输入电压的大小也随之变化。此电源采集电路元器件简单,并且操作方便,充分满足此设计输入电压的要求。图1.2元器件图2.2.2 A/D转换电路ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1)ADC0808的内部逻辑结构     由下图可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器

9、和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图1.3 ADC080原理图(2)ADC0809引脚结构 ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为

10、低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。 图1.4 原理图 图1.5 实物图    ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条     ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的

11、通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7图1.6 功能表数字量输出及控制线:11条     ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换

12、得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(),VREF()为参考电压输入。 2 ADC0809应用说明 (1) ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 (2) 初始化时,使ST和OE信号全为低电平。 (3) 送要转换的哪一通道的地址到A,B,C端口上。 (4) 在ST端给出一个至少有100ns宽的正脉冲信号。 (5) 是否转换完毕,我们根据EOC信号来判断。 (6) 当EOC变为高电平时,这时给OE为高电平,转

13、换的数据就输出给单片机了。AD转换是一种非常重要的技术手段,是单片机等控制芯片与外界信号的接口部分。AD转换将输入的模拟电压转换为与之成正比的的数字量。常用的AD转换器主要有并联比较性,逐次比较式,双积分式。本设计采用的ADC0808A/D转换器为8位逐次比较式转换器。在ADC0808的转换过程中通过引脚WR来启动转换的控制输入,相当于ADC的转换开始(CS=0时),当WR由高变为低时转换器被清。在ADC0808元件图中引脚VIN(+)和引脚VIN(-)为模拟电压输入端,单边输入时模拟电压输入接VIN(+)端,VIN(-)端接地。当转换器进行双边输入时VIN(+),VIN(-)分别接模拟电压信

14、号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在VIN(-)接一个等值的零点补偿电压,变换时将自动从VIN(+)中减去这一电压,在本设计中ADC0804采用单边输入模拟电压。为保证A/D转换器的所需的时钟信号,通过CLKIN和CLKR外接RC振荡电路。并且最终通过DB0-DB7输出A/D转换后的二进制结果。图1.7 元器件图2.2.3 单片机及其外围电路ADC0808与8051单片机的硬件接口有3种形式,分别是查询方式、中断方式和延时等待方式,本题中选用中断接口方式。由于ADC0809无片内时钟,时钟信号可由单片机的ALE信号经D触发器二分频后获得。该题目中单片机时钟频率采用1

15、2MHz,则ALE输出的频率是2MHz,四分频后为500KHz,符合ADC0809对频率的要求。由于ADC0808内部设有地址锁存器,所以通道地址由P0口的低3位直接与ADC0808的A、B、C相连。通道基本地址为0000H0007H。其对应关系上面已做介绍。 控制信号:将P2.7作为片选信号,在启动A/D转换时,由单片机的写信号和P2.7控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0808在锁存通道地址的同时也启动转换。在读取转换结果时,用单片机的P3.0产生正脉冲作为OE信号,用来打开三态输出锁存器。图1.8 元器件图2.2.4 LED显示电路共阳极7段LED

16、数码管和共阴极LED数码管结构类似,其引脚配置,如图所示。从图中可以看出7段LED数码管同样由8个发光二极管组成,其中7个发光二极管构成字形“8”,另一个发光二极管构成小数点。共阳极7段LED数码管的内部结构,如图所示。其中所有发光二极管的阳极为公共端,接+5v电压。如果发光二极管的阴极为低电平的时候,发光二极管导通,该字段发光;反之,如果发光二极管的阴极为高电平的时候,发光二极管截止,该字段不发光。图1.9 元器件图2.2.5 报警电路主程序可以不断采样电压值并与设定范围进行比较,如果电压异常,则应该启动定时中断,定时中断完成报警过程,如果报警过程中电压恢复正常,则报警应该结束。当输入电压值

17、超过所允许的范围之内,经过一系列电路元器件的工作,LED将会亮发出报警信号。在利用中断方式对P2.4的端口高低电平进行控制,在ADC0808输出经过数模转换的数值与寄存器或存贮单元中存储的警报电压2.5V进行比较,比较过后,若超过警报电压则输出低电平,LED警报灯亮;反而输出高电平。LED报警灯保持熄灭状态。图1.10 元器件图3 设计原理分析3.1 系统整体的设计原理1 硬件设计(1)系统构成该系统主要包括几大模块:数据采集模块、AD转换模块、控制模块、显示模块、按键模块等。采用AT89C51作为控制模块,ADC0808作为AD转换模块的核心,ADC0808本身具有8路模拟量输入端口,通过C

18、、B、A,3位地址输入端,能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。LED数码管的显示采用软件译码动态显示,通过按键模块的操作可以选择8路循环显示,也可以选择某条单路显示。(2)数据采集电路数据采集电路是系统的主要组成部分,ADC0808具有8路模拟量输入通道IN0IN7,通过3位地址输入端C、B、A(引脚2325)进行选择。引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部锁存器中,经内部译码电路译码选中相应的模拟通道。引脚6为启动转换控制端START,当输入一个2 US宽的高电

19、平脉冲时,就启动ADC0808开始对输入通道的模拟量进行转换。引脚7为AD转换器,当开始转换时,EOC信号为低电平,经过一段时间,换结束,转换结束信号EOC输出高电平,转换结果存放干ADC0809内部的输出数据寄存器中。引脚9脚为AD转换数据输出允许控制端OE,当0E为高电平时,存放于输出数据锁存器中的数据通过ADC0808的数据线DOD7输出。引脚10为ADC0808的时钟信号输人端CLOCK。在连接时,ADC0808的数据线D0D7与AT89C51的P1口相连接,ADC0808的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89C51的P3口相连接,转换结

20、束信号EOC与AT89C52的P31相连接。2 软件设计(1)主程序主程序包含初始化部分,调用AD转换子程序和调用显示子程序。(2)数据处理子程序ADC0808转换之后输出的结果是8位二进制数。由公式(1)可知,当ADC0808输出为(1l1l11111)时,输入电压值V =500V当ADC0809输出为(00000000)时,输入电压值为0.0O0V;当ADC0809输出为(10000000)时,输入电压值V =250V。由于单片机进行数学运算时结果只取整数部分,因此当输出为(10000000)时计算出的电压值V =2OOV,很不准确。为了提高精确度,必须把小数部分保留,具体运算方式如公式(

21、2)。个位:Dout*196/10000 十分位:(Dout*196/1000)%10 百分位:(Dout*196/100)%10 千分位:(Dout*196/10)%10 由此得到较为精确的数值。对上面的硬件部分,按照软件流程框图进行软件设计。用C语言进行程序的编写。3.2硬件实现及单元电路设计流程硬件总体框图该系统硬件总体框图由四个模块组成,如下图1.11所示。在芯片的选择中,一般的A/D芯片具有多路转换通道,本课程设计中我们只做一路通道,该通道采集电压,对采集的电压值进行采集、处理并显示,我们还可以通过改变A/D芯片的参考电压来改变其量程,达到对电压值的多样化显示。A/D芯片将输入的模拟

22、电压值转换为一个8位的二进制数字,再输送到单片机控制单元,经过处理显示出相应电压值。直流电压模数转换模块微控制器模块数码显示&LED警报模拟电压数字电压程序控制控制模块图1.11 原理图3.3软件设计流程图1.11 原理图程序设计过程中,调用多个子程序,方便在增强设计过程中的逻辑性以及运行时候的查错处理。其中包括延时程序;数码转换数码管显示程序;初始化程序;中断程序以及主程序。其中:1.5.1 延时程序 主要用于每个执行语句之后,用于添加时间缓冲,以减少出错率。其中包括对ADC0808进行A/D数模转换之后的结束信号进行了二次确认,以减少出错。1.5.2 数码转换数码管显示程序主要用于

23、对ADC0808输出的转化二进制码输入通过规定的公式运算后直接送到数码显示管进行显示。由于DC0808转换之后输出的结果是8位二进制数。当ADC0808输出为(1l1l11111)时,输入电压值V =500V当ADC0809输出为(00000000)时,输入电压值为0.0O0V;当ADC0809输出为(10000000)时,输入电压值V =250V。由于单片机进行数学运算时结果只取整数部分,因此当输出为(10000000)时计算出的电压值V =2OOV,很不准确。为了提高精确度,必须把小数部分保留,具体运算方式如公式(2)。个位:Dout*196/10000 十分位:(Dout*196/100

24、0)%10 百分位:(Dout*196/100)%10 千分位:(Dout*196/10)%10 由此得到较为精确的数值。1.5.3 初始化程序主要对中断程序进行初始化,对其各个寄存器进行工作方式的确认,以及对ADC0808的A/D转换器进行3位地址输入线用于宣统8路模拟输入中的一路。1.5.4 中断程序主要用于在每隔10ms的时间间隔之后,对C51单片机获得的ADC0808输入的电压信号进行对警报值电压进行比较。如果超过2.5V则P24接口输出低电平以点亮LED警报灯,反之则熄灭LED警报灯。1.5.5 主程序主要用于对ADC0808的转换结束信号进行监控,并启动器转换信号和启动ADC080

25、8的数据输出允许信号,对输入的模拟信号电压值进行A/D转换以获取相对应的二进制数值4 结束语通过本次课程设计,我对模数转换芯片ADC0808有进一步了解,故我将此次设计的重点放在了功能的扩展部分模块的实现方法及显示的改变上。大二学期教学实验中,通过网上资料及课本信息,我会会了简单的编程和设计最重要的是排版效果,在这些过程中我获益匪浅:加深了对模数转换的了解,能对其功能进行多元化的应用;数码管的显示技术上,我在以前所存静态显示的基础上,又掌握了动态扫描方法;另一个收获是在课程设计的过程中,我边学边用C语言,对简单的C语言编程能够独立轻松的完成,C语言在单片机的编程中灵活,功能强大,效率高,简单明

26、了,具有很多优势,学会它是此次课程设计的最大收获。参考文献1.戴梅萼 史嘉权 微型计算机技术及应用 北京:清华大学出版社,20032.仇玉章 32位微型计算机原理与接口技术 北京:清华大学出版社,20013.郑学坚 周斌 微型计算机原理及应用 北京:清华大学出版社,19984.李伯成 候伯亭 微型计算机及应用 西安:电子科技大学出版社,19985.邓元庆 贾鹏 数字电路与系统设计 西安:电子科技大学出版社,2003附录图1.1整体电路原理图源程序#include<reg51.h>#include<intrins.h>#define uchar unsigned char

27、#define uint unsigned intsbit P2_0=P20;sbit P2_1=P21; sbit P2_2=P22;sbit P2_3=P23;sbit P2_4=P24;sbit OE=P30; sbit EOC=P31;sbit ST=P32;sbit P3_4=P34;sbit P3_5=P35;sbit P3_6=P36;uchar d;uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12; /´øСÊýµãµÄ05ucha

28、r code table2=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /¹²Ñô¼«µÄ09void delay(uchar b) /ÑÓʱ³ÌÐò uchar a,c; for(c=0;c<b;c+) for(a=0;a<125;a+);void convert(uchar volt_data) /½«ADת»

29、»Æ÷ת»»³öµÄÊý¾ÝÔÚÊýÂë¹ÜÏÔʾ³öÀ´ P0=table1volt_data*196/10000; / ¸öλº¬Ð¡Êýµã P2_0=1; delay(2); P2_0=0; P0=table2volt_data*196/1000%10; /

温馨提示

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

评论

0/150

提交评论