基于AT89C51单片机的智能电流检测系统设计-毕业设计_第1页
基于AT89C51单片机的智能电流检测系统设计-毕业设计_第2页
基于AT89C51单片机的智能电流检测系统设计-毕业设计_第3页
基于AT89C51单片机的智能电流检测系统设计-毕业设计_第4页
基于AT89C51单片机的智能电流检测系统设计-毕业设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的智能电流检测系统的设计本文阐述了基于单片机的智能电流系统设计的组成及设计方法。它的设计是为了来。最后与准确电流的对比,精确程度能达到98%.DesignofIntelligentCurrentDetectionSystemBasedonAbstract:Thecurrentdetectionsystemisarelativelymaturetechnology,butthemicrocontroller-basedcurrentdetectionsystemisarecentlyemergingtechnology.Itsmainadvantageisthatmorethancurrentsignalscanbemeasuredanddisplayed.ThisarticledescribesthecompositionanddesignmethodologyofdesignofintelligentcurrentdetectionsystembasedonMCU.ItisinordertodetectsuchasDC,ACandpulsecurrentsignalRMSoraverage.ItistobuildthehardwareonthebasisofAT89C51microcontrollerwithClanguageprogramming,KeilsoftwareandProteussoftwaresimulationresultsdisplayed.Finally,comparedwithaccurateandcurrent,theprecisionofthedetectionsystemcanreach98%.Thisarticlerunatheoreticalsimulation,withoutbuildingphysicalstructures.Thefollow-upalsoneedsfurtherstudy.Keyword:Currentdetectionsystem;single-chip;hardware;programming;simulation毕业设计论文绪论 11电流测量系统的整体设计 22电流检测系统的硬件设计 32.1电流供给电路设计 32.2数据采集及转换电路设计 32.2.1.ADC0808简介 32.2.2单片机与ADC0808接口设计 62.3单片机显示电路设计 72.3.1液晶显示器LM016L简介 72.3.2LM016L与单片机接口设计 2.4电流系统的转化电路 3电流检测系统软件设计 3.1AD转换和数据采集程序设计 3.2电流检测系统的显示子程序 3.3单片机内部数据传输程序和外部中断程序 4数据转换计算 4.1数据标定 4.2数据采集 4.3数据转换计算 4.4数据验算 5子程序流程图 5.1ad模数转换和数据采集流程图及程序附录 5.2LM016L显示流程图及程序附录 5.3单片机内部数据传输程序和外部中断流程图及程序附录 225.4单片机总流程图及程序附录 5.5电流测量系统硬件电路图附录 29结论 致谢 参考文献 第1页共32页单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。基于单片机的电流智能检测系统的设计是利用单片机的多处理性能,来完成电流国外对基于单片机的智能电流测量系统的技术研究较早,始于20世纪70年代。第2页共32页1电流测量系统的整体设计电流测量系统的总体设计如下(图1.1):先由外部电路给ADC0808输入数据,然后ADC08过LM016L液晶显示器显示出来。其间需要通过其他的外围设备支持。直流电流模拟量转换信号图1.1总体设计第3页共32页2电流检测系统的硬件设计2.1电流供给电路设计外部电流型号需要通过霍尔传感器将电流转换成为电压,然后由滑动变阻器和电源共同组成电流供给电路,如图2.1所示:电流信号电流表Adc0808霍尔传感器电阻图2.1电流供给电路2.2数据采集及转换电路设计数据采集电路中需要用到A/D转换器ADC0808,先对其进行简单介绍:ADC0808是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。1.主要特性1)8路8位A/D转换器,即分辨率8位2)具有转换起停控制端3)转换时间为100μ5)模拟输入电压范围0~+5V,不需零点和满刻度校准6)工作温度范围为-40~+85摄氏度7)低功耗,约15mWADC0808是CMOS单片型逐次逼近式A/D转换器,内部结构如图2.2.1所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逐次场近寄ADDADDADVE+)Vk-)通道地址锁存和译码8位锁态门D,(MSB)ADDcALE-数字输出模拟输入通道选择开关D₄(LSB)3.外部特性(引脚功能)ADC0808芯片有28条引脚,采用双列直插式封装,如图2.2.2所示。下面说明各引脚功能:IN0~IN7:8路模拟量输入端2-1~2-8:8位数字量输出端ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效START:A/D转换启动信号,输入,高电平有效EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量CLK:时钟脉冲输入端。要求时钟频率不高于640KHZREF(+)、REF(-):基准电压Vcc:电源,单一+5V第5页共32页当电流通过IN0通道进入ADC0808时,通过单片机给其指令使其开始转换。ADC0808的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的电源电压(Vcc):6.5V第6页共32页贮存温度:-65℃~+150℃功耗(T=+25℃):875mW引线焊接温度:①气相焊接(60s):215℃;②红外焊接(15s):220℃抗静电强度:400V输出端注意:out7为最低位-out0为最高位,out7-out0分别接单片机的P0.0到P0.7端。2.2.2单片机与ADC0808接口设计图2.2.4单片机与ADC0808硬件接线图VEEVEE2.3单片机显示电路设计2.3.1液晶显示器LM016L简介单片机处理过的数据要通过LM016L液晶显示器将结果显示出来。所以这里有必要对LM016L进行简单的介绍:LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,可以查看下面的ASCⅡ码表。CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L液晶模块的引脚如图2.3.1cololO|cl寸LM016L字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,第8页共32页表2.3.1是LM016L的引脚功能表2.3.1LMO16L引脚功能符号功能说明1一般接地2接电源(+5V)3液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)4RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器56EE(或EN)端为使能(enable)端,下降沿使能。789背光电源正极背光电源负极表2.3.2寄存器选择控制表操作说明00写入指令寄存器(清除屏等)01都busyflag(DB7),以及读取位址计数器(DBO~DB6)值0写入数据寄存器(显示各字型等)从数据寄存器读取数据注:1.关于E=H脉冲开始时初始化E为0,然后置E为1,再清0。2.busyflag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。第9页共32页LM016L液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到的16进制ASCⅡ码表。读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCI为0x21,字母B的ASCII为0x42(前面加0x表示第10页共32页4DH4EH4FHLM016L通过DO~D7的8位数据端传输数据和指令。CB光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1&光标加1)N=0(读或写一个字符后地址指针减1&光标减1)S=1且N=1(当写一个字符后,整屏显示左移)数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H写指令38H写指令08H写指令01H写指令06H关闭显示显示清屏光标移动设置写指令0cH显示开及光标设置单片机通过以上指令集和相应的ASCⅡ码表显示数据。写指令0cH显示开及光标设置单片机通过以上指令集和相应的ASCⅡ码表显示数据。LM016L的ASCI码表5的接法连接:VSSVDDVEE第11页共32页Lower4-bit(DotoD3)ofCharacterCode(HexadecimallL?u出■■○■HH#aian4:■出C)*i■10m1■■n!”日omp#寸■c;:i……■■■…m_mH■■○:寸或□U□NN四于RESPACK-8P2.0/A8P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.2/INTOacP3.3/INT1P3.4/T0AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71567ALEYSTALXTAL2ealeXTAL19⑦5第12页共32页2.4电流系统的转化电路转换电路的主要部分是单片机AT89C51,它也属于51单片机中的一类。AT89C51能处理各类信号,在信号送达后单片机内的各个存储器和寄存器开始相应的动作来完成所要求的结果。AT89C51有四个端口,PO,P1,P2,P3四个口,每个端口内部结构相同,但是所属职能有所不同。图2.4.1为单片机的引脚图:(RXD)P3.0(TXD)P3.1(INT0)P3.2(T0)P3.4(T1)P3.5P0.0(ADO)P0.1(AD1}P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)ALE/PROGP2.0(AB)7891图2.4.1单片机引脚图PO口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路,对端口PO写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,PO口接收指令字节。而在程序校验时,输出指令字节,校验时,要求外接上拉电是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IL)。第13页共32页P1.1还可分别作为定时/计数器2的外部计数Flash编程和程序校验期间,P1接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2个引脚被外部信号拉低时会输出一个电流(IL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3P3口除了作为一般的I/O口线外,更重要的用途是它的第表2.3.3P3口引脚的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(穿行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器/计数器0)P3.5T1(定时器/计数器1)P3.6WR(外部数据储存器写选通)P3.7RD(外部数据储存器读选通)第14页共32页单片机除了4个端口外,还有其他引脚,在这里简单介绍一下:ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输仍以时钟振荡频率的1/6输出编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。第15页共32页3电流检测系统软件设计件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8ale端口提供下降沿信号;为了能使转换完的数据输出,需电流系统的结果显示是有LM016L液晶显示器显示出来。液晶显示器共有16个管脚除了传输数据和指令还兼做判断busyflag(以下简称bf)寄存器的指示端。当bf为0时,不执行指令,只传输同一种类型的数据;当bf为1时,执行指令,开始切换bf1时,能为LM016L传送数据,当为0时不能传送数据。第16页共32页在未将数据转换之前,ADC0808的显示范围为0~255(十进制数),为了能使显示的数据更准确,需要对未转换之前的数据进行标定,分别将数据分为大,中,小3部表4.2.1数据采集实际电流值I(mA)标定范围显示数据D86~170数据带入线性关系式之后,解线性方程组可求得k=1.99,b=-1.49。将k,D这两个参数一般而言,最终的显示结果和真实结果之间的误差在1%之内算合格。通过最终验算,所测数据98%在合格范围内,能达到一般精度等级。第17页共32页5子程序流程图5.1ad模数转换和数据采集流程图及程序附录模拟信号通道AddaAddbAddcAle,st下降沿?否转换数据是结束结束功能说明:此流程图实现的功能是将模拟信号转换成数字信号。模数转换和数据采集子程序附录:#include<reg51.h>#include<intrins.h>#include<stdio.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint第18页共32页sbitrs=P1^5;sbitrw=P1^6;sbitale=P3^2;sbitadda=P1^1;sbitaddb=P1^2;sbitaddc=P1^3;sbiteoc=P3^3;voidad0808()//ad0808转换子程序uchari;adda=0;addb=0;addc=0;ale=0;ale=0;while(!eoc);oe=1:table2[i]=P0;oe=0;第19页共32页5.2LM016L显示流程图及程序附录P2口数据地址数据地址显示功能说明:此流程图实现的功能是将ADC0808转换完的数据由液晶显示器显示LM016L显示子程序附录:#include<reg51.h>#include<intrins.h>#include<absacc.h>#defineucharunsignedcharrs=P1^5;rw=P1^6;第20页共32页uchartable1[]={"currentflow:"};uchartable3[]={"mA"};bitlcdbz()bitresult;rs=0;rw=1;result=(bit)(P2&0x80);returnresult;while(lcd_bz());P2=cmd;nop_();_nop_();_nop_();_nop_();voidlcd_pos(ucharpos)第21页共32页lcd_wcmd(pos|0x80);voidlcdwdat(uchardat)while(lcd_bz());rs=1;rw=0;P2=dat;voidlcd_init()led_wcmd(0x38);lcdwcmd(0x0c);lcdwcmd(0x06);lcd_wcmd(0x01);第22页共32页5.3单片机内部数据传输程序和外部中断流程图及程序附录原始数据和Eoc=0?PO口数据传到P2口液晶显示器显示功能说明:此流程图实现的功能是将单片机内部数据以及外部转换分时数据显示到液晶显示器上。单片机内部数据传输程序和外部中断程序附录:#include<reg51.h>#include<intrins.h>#include<stdio.h>#include<absacc.h>#defineuintunsignedintuinttable2[8];voidtimer_0(interrupt2{inti;第23页共32页模拟信号模拟信号Adc0808转换信号传输数据PO口P2口数据传送到PO口入到液晶显示器液晶显示器显示数据#include<reg51.h>#include<intrins.h>#include<stdio.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedintsbitrs=P1^5;第24页共32页rw=P1^6;uchartable1[]={"currentflow:"};uchartable3[]={"mA"};voiddelay(ucharms)//延时子程序{for(i=0;i<255;i--);}}第25页共32页while(!eoc);oe=1;table2[i]=P0;oe=0:bitlcd_bz()//位函数rs=0;rw=1;result=(bit)(P2&0x80);returnresult;}voidlcd_wcmd(ucharcmd)//lcd指令输入子函数)while(lcd_bz());rs=0;rw=0;//下降沿触发lcd使能信号nop_(;_nop_();_nop_();_nop_():第26页共32页v

温馨提示

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

评论

0/150

提交评论