基于ds1820的振动箱体温度检测仪的设计及基于AVR的直流电动机双闭环调速系统_第1页
基于ds1820的振动箱体温度检测仪的设计及基于AVR的直流电动机双闭环调速系统_第2页
基于ds1820的振动箱体温度检测仪的设计及基于AVR的直流电动机双闭环调速系统_第3页
基于ds1820的振动箱体温度检测仪的设计及基于AVR的直流电动机双闭环调速系统_第4页
基于ds1820的振动箱体温度检测仪的设计及基于AVR的直流电动机双闭环调速系统_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

XX农学院结课论文题目:基于ds1820的振动箱体温度检测仪的设计学生姓名田雨秋系别机电工程系专业班级测控专业升本班任课教师成绩评定20年11月目录1前言……………22DS18B2相关介绍……………32.1DS18B20内部结构…………32.2DS18B20的测温原理………62.3DS18B20的的性能特点……………………72.4DS18B20与单片机的典型接口设计………73LCD显示电路…………………84.1DS18B20测温设计方案一…………………124.2DS18B20测温设计方案二…………………125.数码管显示和液晶显示的利弊………………13致谢……………14参考文献………………………15附录1系统电路原理图………16附录2源程序…………………16

1前言DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。DigitaltemperaturesensorDS18B20convenientwiring,packagecanbeusedinmanyoccasions,suchaspipelinetype,screwtype,magneticadsorption,stainlesssteelpackagetype,diversemodels,LTM8877,LTM8874etc..Mainlyaccordingtothedifferentapplicationswithoutchangingitsappearance.AfterpackagingtheDS18B20canbeusedforcabletemperaturemeasurement,temperaturemeasurementofblastfurnacecirculatingwater,boilertemperature,roomtemperature,agriculturalgreenhousetemperature,cleanroomtemperature,ammunitionandotherkindsofextremetemperaturemeasurementoccasions.Wearresistanttouch,smallvolume,convenientuse,packagediversity,applicabletovarioussmallspaceequipmentdigitaltemperaturemeasurementandcontrolfield.

2DS18B2相关介绍2.1DS18B20的内部结构:DS18B20内部结构主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3.3所示。DS18B20的外形级封装如图3.4,引脚说明:NC空引脚,不连接外部信号。VDD电源引脚,电压范围3.0-5.5V。GND接地引脚。DQ数据引脚,传递数据的输入和输出。该引脚常态下为开漏输出,输出高电平。DS18B20有4个主要的数据部件:

(1)64位EOM。64位ROM是厂家用激光刻录一个64位二进制ROM代码,是该芯片的标志号。如下表所示。表3.38bit检验CRC48bit序列号8bit工厂代码(10H)MSBLSBMSBLSBMSBLSB8位分类编号表示产品分类编号,DS18B20的分类号为10H;48号序列是一个大于281000000000000的十进制编码,作为该芯片的唯一标志代码;8位循环冗余检验为前56位的CRC循环冗余效验码。由于每个芯片的64位ROM代码不同,因此在单总线上能够并挂多个DS18B20进行多点温度测量实时监测。

(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。bit7bit6bit5bit4bit3bit2bit1bit0232221202-12-22-32-4LSBytebit15bit14bit13bit12bit11bit10bit9bit8SSSSS262524MSByte这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。TMR1R011111

配置寄存器五位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置温度分辨率,DS18B20温度传感器的温度分辨率越高,温度最大转换时间也随之增大。R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms表3.6说明了R1和R0所对应的温度分辨率的选择和所需要的温度最大转换时间。高速暂存存储器由9个字节组成,其分配如表3.7所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。寄存器内容字节地址温度值低位(LSByte)0温度值高位(MSByte)1高位限值(TH)2低位限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的低脉冲,主CPU收到此信号表示复位成功。DS18B20通过ROM和RAM指令控制各个流程的进行,表3.8列出了各个ROM的指令、预定代码及其功能。指令约定代码功能读ROM33H读DS1820温度传感器ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之做出响应,为下一步对该DS1820的读写做准备。搜索ROM0FOH用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表3.8ROM指令表表3.9列出了DS18B20的各条RAM指令、约定代码及其功能。其中包括温度转换、读暂存器、写暂存器、读供电方式和重调EEPROM。指令约定代码功能温度变换44H启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0BEH读RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。表3.9RANM指令表2.2DS18B20的测温原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图3.5所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。2.3DS18B20的性能特点:(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供;(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;(3)DS18B20具有多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;(8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作;(10)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统。2.4DS18B20与单片机的典型接口设计DS18B20与单片机的连接如图3.6所示,由于DS18B20的数据线要求空闲状态为高电平,所以在DS18B20的数据线与电源线VCC之间加了一个4.7K的上拉电阻,如果不想接上拉电阻的话,可以使能P3.0口的内部上拉功能。从图中可以看出,本例使用的是给DS18B20外接电源的方式。在由DS18B20构成的单总线系统中,DS18B20只能作为从机,单片机或者其它部件作为主机。根据DS18B20的通信协议,主机控制DS18B20完成一次温度转换必须经过3个步骤:一)、每次读写之前都要对DS18B20进行复位操作;二)、复位成功后发送一条ROM指令;三)、最后发送RAM指令,这样才能够对DS18B20进行正确的操作。DS18B20的数据线DQ连到单片机的P3.0口。单片机通过控制P3.0口实现对DS18B20的操作,然后将读出的温度值通过串口发送到计算机。3LCD显示电路显示电路选择液晶显示屏LCD6102,1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。(1)1602LCD主要技术参数显示容量为16×2个字符;芯片工作电压为4.5~5.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.95×4.35(W×H)mm。其引脚说明如表3.10,寄存器选择与控制编码如表3.11表3.101602字符型LCD显示器管脚功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、双向数据总线0位(最低位)8DB1底4位三态、双向数据总线1位9DB2底4位三态、双向数据总线2位10DB3底4位三态、双向数据总线3位11DB4高4位三态、双向数据总线4位12DB5高4位三态、双向数据总线5位13DB6高4位三态、双向数据总线6位14DB7高4位三态、双向数据总线7位(最高位)(也是busyflag)15BLA背光电源正极16BLK背光电源负极表3.11寄存器选择控制编码RSR/W操作说明00写入指令寄存器(清除屏等)01读busyflag(DB7),以及读取位址计数器(DB0~DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据1602液晶显示模块内部的字符发生存储器(CGROM)中已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就可以在显示屏上看到字母“A”。1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。(2)控制器接口说明基本操作时序见表3.12表3.12基本操作时序读状态输入RS=L,R/W=H,E=H输出D0~D7=状态字写指令输入RS=L,R/W=L,D0~D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0~D7=数据写数据输入RS=H,R/W=L,D0~D7=数据,E=高脉冲输出无对此液晶操作主要有以下几种方法:写命令(包括但不限于初始化、调节显示位置、清除显示)写数据(把一个字符的ASC码写入液晶使其显示)读忙信号(液晶乃低速设备,每次操作前应该测试忙信号,确定其不忙时再操作)(3)1602LCD的指令码(命令码)此液晶上电的时候需要初始化典型的指令码是38H,也就是上电的时候需要调用函数voidwrite_cmd(unsignedcharcommand)写指令码,即write_cmd(0x38);执行完这个函数可以把液晶初始化成16x2显示5x7的点阵8位总线接口。此液晶支持的指令码如表3.13所示,控制液晶是否显示,光标是否显示,光标是否闪烁的指令如表3.14所示,控制写字符,光标或屏幕移动方向的指令如表3.15所示,移动光标的指令如表3.16所示。表3.13指令码说明指令码功能00001DCBD=1开显示;D=0关显示C=1显示光标;C=0不显示光标B=1光标闪烁;B=0光标不显示000001NSN=1当读或写一个字符后地址指针加一,且光标加一N=0当读或写一个字符后地址指针减一,且光标减一S=1当写一个字符,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果。S=1当写一个字符,整屏显示不移动表3.14控制液晶显示指令码0000100008H关液晶显示光标不闪烁不显示光标位置0000100109H关液晶显示光标不闪烁显示光标位置000010100AH关液晶显示光标不闪烁不显示光标位置000010110BH关液晶显示光标不闪烁显示光标位置000011000CH开液晶显示光标不闪烁不显示光标位置000011010DH开液晶显示光标不闪烁显示光标位置000011100EH开液晶显示光标不闪烁不显示光标位置000011110FH开液晶显示光标不闪烁显示光标位置表3.15写完字符、光标或屏幕移动方向指令码指令码功能80H+地址码(0-27H,40H-67H)设置数据地址指针表3.16移动光标指令码这是虚拟的液晶显示图表示2行16列显示方框中的数字表示当前位置的指针80H81H82H83H84H85H86H87H88H89H8AH8BH8CH8DH8EH8FHC0HC1HC2HC3HC4HC5HC6HC7HC8HC9HCAHCBHCCHCDHCEHCFH指令码功能01H显示清屏:1.数据指针清零2.所有显示清零02H显示回车:1数据指针清零

4.1DS18B20测温设计方案一(普通传感器+AD转换器)全数字温度采集是由温度传感器、调理电路、A/D转换器及数显等电路模块构成的测量系统。图2.1测量电路本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度值显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。传统的A/D转换器大多采用积分式或逐次比较式转换技术,其噪声容限低,抑制混叠噪声及量化噪声的能力比较差。4.2DS18B20测温设计方案二(温度传感器DS18B20)进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,可以采用一只温度传感器DS18B20,此传感器采用三线制与单片机相连,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求,具有低成本和易使用的特点。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。全数字温度采集系统总体电路结构框图如图2.2所示。STC89C52STC89C52单片机DS18B20温度传感器RESPACK-8显示电路单片机复位时钟振荡设计要求及功能测量温度范围:(1)-10℃~+85℃,精度:±1℃;(2)LCD液晶屏显示;5.数码管显示和液晶显示的利弊液晶显示材料具有明显的优点:驱动电压低、功耗微小、可靠性高、显示信息量大、无闪烁、对人体无危害、生产过程自动化、成本低廉、可以制成各种规格和类型的液晶显示器,便于携带等。但是需要有背光照明,且可视角度有限制。1602采用并口传输,速度快。数码管,没有驱动要加CD4511等外加电路。1602内部集成有显示芯片,可以识别英文字母、阿拉伯数字,优点:亮度高,显示大。驱动部份的软件简单。发光二极管响应速度可以达到纳秒级,也可以用作显示,比如点阵,但是分辨率稍低于液晶材料。因为其功率较大,可以用于照明,大量发光二极管用作照明时,要做好散热设计。数码管实际就是做成了具体显示形式的发光二极管,可以显示某些预先设置的图像,显示成本低于发光二极管点阵,但是显示内容基本固定。数码管显示内容单一,液晶则比较丰富;数码管一般就是一个7段的8字,液晶可以显示各种内容。数码管是自发光的,液晶是靠背光(环境)的。数码管是LED发光的效果,液晶是分子偏转引起的暗影效果。数码管比液晶耗电。

致谢此论文是在赵金才老师的细心指导下完成的。老师精湛专业知识,精益求精的工作作风,严谨的治学态度,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了做一个项目的基本流程。本论文从选题到完成,每一步都是在导师的悉心指导下完成的,倾注了老师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!另外,我还要特别感谢同学们对我论文写作的指导,他们为我完成这篇论文提供了巨大的帮助。

参考文献[1]刘少强,张靖.《传感器设计与应用实例》.人民邮电出版社,2006年6月1日.265-270。[2]金发庆.《传感器技术与应用》(第二版).机械工业出版社,2004年8月1日.175-186。[3]沙占友

王晓君

马洪涛等.《智能化集成温度传感器原理与应用》.[4]倪志莲.《单片机应用技术》.北京理工大学,2007年.74-85。[5]刘畅生,于建国,张昌民.《传感器简明手册及应用电路》.西安:西安电子科技大学出版社,2009年6月.44-56。机械工业出版社,2002年7月1日.125-127。[6]吴飞青,丁晓,李林功.《单片机原理与实践应用指导》.机械工业出版社,2009年2月.167-175。[7]赵负图.《现代传感器集成电路》.人民邮电出版社,2000年1月1日.68-76。[8]侯玉宝,陈忠平,李成群.《基于Proteus的51系列单片机设计与仿真》电子工业出版社,2008年9月(聚焦EDA)。[9]邹久朋.《80C51单片机实用技术》.北京:北京航空航天大学出版社,2008年4月.76-89。附录附录1:系统电路原理图附录2:源程序(各个函数应加上简要注释)附录一单片机程序:#include<reg51.H>#include<intrins.H>#include<math.H>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint#defineBUSY0x80//LCD忙检测标志#defineDATAPORTP0//定义P0口为LCD通讯端口 sbitRS=P2^0; //数据/命令端//sbitLCDRW=P2^1; //只读不写将RW端接地sbitLCDEN=P2^2;sbitds=P1^7;sbitbeep=P1^1;floatvalue; voiddelayUs()//短延时{_nop_();}voiddelayMs(uinta)//长延时{uinti,j;for(i=a;i>0;i--)for(j=100;j>0;j--);}//第一行开始地址为0x80,第二行开始地址为0xc0;//写命令:RS=0,RW=0;voidwriteComm(ucharcomm){RS=0;P0=comm;LCDEN=1;delayUs();LCDEN=0;delayMs(1);}//写数据:RS=1,RW=0;voidwriteData(uchardat){RS=1;P0=dat;LCDEN=1;delayUs();LCDEN=0;delayMs(1);}//初始化//显示模式,固定指令为00111000=0x38,16*2显示,5*7点阵,8位数据接口//显示开/关及光标设置00001100=0x0c//指令1:00001DCB:D:开显示/关显示(H/L);C:显示光标/不显示(H/L),B:光标闪烁/不闪烁(H/L)//指令2:000001NS://N=1,当读/写一个字符后地址指针加1,且光标也加1;N=0则相反//S=1,当写一个字符,整屏显示左移(N=1)或右移(N=0),但光标不移动;S=0,整屏不移动voidinit(){writeComm(0x38);//显示模式writeComm(0x0c);//开显示,关光标writeComm(0x06);//写字符后地址加1,光标加1writeComm(0x01);//清屏}voidwriteString(uchar*str,ucharlength){uchari;for(i=0;i<length;i++){writeData(str[i]);}}/**//*****************************DS18B20*******************************///初始化DS18B20//让DS18B20一段相对长时间低电平,然后一段相对非常短时间高电平,即可启动voiddsInit(){//对于11.0592MHz时钟,unsignedint型的i,作一个i++操作的时间大于为8usunsignedinti;ds=0;i=100;//拉低约800us,符合协议要求的480us以上while(i>0)i--;ds=1;//产生一个上升沿,进入等待应答状态i=4;while(i>0)i--;}voiddsWait(){unsignedinti;while(ds);while(~ds);//检测到应答脉冲i=4;while(i>0)i--;}//向DS18B20读取一位数据//读一位,让DS18B20一小周期低电平,然后两小周期高电平,//之后DS18B20则会输出持续一段时间的一位数据bitreadBit(){unsignedinti;bitb;ds=0;i++;//延时约8us,符合协议要求至少保持1usds=1;i++;i++;//延时约16us,符合协议要求的至少延时15us以上b=ds;i=8;while(i>0)i--;//延时约64us,符合读时隙不低于60us要求returnb;}//读取一字节数据,通过调用readBit()来实现unsignedcharreadByte(){unsignedinti;unsignedcharj,dat;dat=0;for(i=0;i<8;i++){j=readBit();//最先读出的是最低位数据dat=(j<<7)|(dat>>1);}returndat;}//向DS18B20写入一字节数据入一字节数据voidwriteByte(unsignedchardat){unsignedinti;unsignedcharj;bitb;for(j=0;j<8;j++){b=dat&0x01;dat>>=1;//写"1",将DQ拉低15us后,在15us~60us内将DQ拉高,即完成写1if(b){ds=0;i++;i++;//拉低约16us,符号要求15~60us内ds=1;i=8;while(i>0)i--;//延时约64us,符合写时隙不低于60us要求}else//写"0",将DQ拉低60us~120us{ds=0;i=8;while(i>0)i--;//拉低约64us,符号要求ds=1;i++;i++;//整个写0时隙过程已经超过60us,这里就不用像写1那样,再延时64us了}}}//向DS18B20发送温度转换命令voidsendChangeCmd(){dsInit();//初始化DS18B20,无论什么命令,首先都要发起初始化dsWait();//等待DS18B20应答delayMs(1);//延时1ms,因为DS18B20会拉低DQ60~240us作为应答信号writeByte(0xcc);//写入跳过序列号命令字SkipRomwriteByte(0x44);//写入温度转换命令字ConvertT}//向DS18B20发送读取数据命令voidsendReadCmd(){dsInit();dsWait();delayMs(1);writeByte(0xcc);//写入跳过序列号命令字SkipRomwriteByte(0xbe);//写入读取数据令字ReadScratchpad}//获取当前温度值intgetTmpValue(){unsignedinttmpvalue;intvalue;//存放温度数值floatt;unsignedcharlow,high;sendReadCmd();//连续读取两个字节数据low=readByte();high=readByte();//将高低两个字节合成一个整形变量//计算机中对于负数是利用补码来表示的//若是负值,读取出来的数值是用补码表示的,可直接赋值给int型的valuetmpvalue=high;tmpvalue<<=8;tmpvalue|=low;value=tmpvalue;//使用DS18B20的默认分辨率12位,精确度为0.0625度,即读回数据的最低位代表0.0625度t=value*0.0625;//将它放大100倍,使显示时可显示小数点后两位,并对小数点后第三进行4舍5入//如t=11.0625,进行计数后,得到value=1106,即11.06度//如t=-11.0625,进行计数后,得到value=-1106,即-11.06度value=t*100+(value>0?0.5:-0.5);//大于0加0.5,小于0减0.5returnvalue;}voiddisplay(intv){unsignedcharcount;unsignedchardatas[]={0,0,0,0,0};unsignedinttmp=abs(v);datas[0]=tmp/10000;datas[1]=tmp%10000/1000;datas[2]=tmp%1000/100;datas[3]=tmp%100/10;datas[4]=tmp%10;writeComm(0xc0+3);if(v<0){writeString("-",2);}else{writeString("+",2);}if(datas[0]!=0){writeData('0'+datas[0]);}for(count=1;count!=5;count++){writeData('0'+datas[count]);if(count==2){writeData('.');}}}/*****************报警子函数*******************/、、/*voidalarm(void){ if((getTmpValue()>3000)) beep=0; else beep=1; }/**//*****************************DS18B20*******************************/voidmain(){uchartable[]="NowTemperature:";delayMs(1);sendChangeCmd();init();writeComm(0x80);writeString(table,16);while(1){delayMs(1000);//温度转换时间需要750ms以上writeComm(0xc0); display(getTmpValue()); alarm(); sendChangeCmd(); } }基于AVR的直流电动机双闭环调速系统摘要:在各类机电系统中,由于直流电机具有良好的起动、制动和调速性能,直流调速技术已广泛运用于工业领域的各个方面。最常用的直流调速技术是脉宽调制(PWM)直流调速技术,它具有调速精度高、响应速度快、调速范围宽和耗损低等特点。文中采用AVR单片机ATmega16产生PWM信号、L298驱动、行列式键盘控制及LCD显示,并采取转速、电流双闭环PID算法对直流电机进行调速控制的直流电机PWM调速系统。关键词:AVR;双闭环;PWM;直流电机调速AVR-baseddual-loopDCmotorspeedregulationsystemAbstract:Invariousmechanicalandelectricalsystems,duetoDCmotorhasagoodstart,brakingandspeedcontrolperformanceofDCdrivetechnologyhasbeenwidelyusedinindustry,allaspectsofthefieldofaerospace.Themostcommonlyusedtechniqueispulse-widthmodulatedDCspeed(PWM)DCconvertertechnology,whichhasspeed,highprecision,fastresponse,widespeedrangeandlowandthewearandtear.ThispaperpresentsaPWMgeneratedbytheAVRmicrocontrollerATmega16signal,L298-driven,thedeterminantofthekeyboardcontrolandLCDdisplay,andtotakespeed,thecurrentdual-loopPIDalgorithmtoDCmotorspeedcontrolofDCmotorPWMspeedcontrolsystem.Keywords:AVR;Double-loop;PWM;DCMotorSpeedControl

目录1绪论 11.1绪论 11.2直流电动机简介 11.3直流电机工作原理 21.4直流电机的励磁 21.4.1 他励电机励磁 21.4.2 自励电机励磁 31.5直流电机的优越性 31.6直流电动机应用 42选题背景 42.1问题的提出 42.2解决方案 43系统总设计方案 53.1设计思路 53.2方案论证与设计 53.2.1 系统控制设计方案论证与选择 53.2.2 电机控制电路的设计 63.2.3 键盘电路的设计 63.2.4 显示电路的设计 63.2.5 速度测量电路的设计 63.2.6 电流检测电路设计 63.3系统组成: 63.4ATMEGA控制电路 73.5电源及ISP 83.6主要电路单元的设计 83.6.1 L298驱动接口 83.6.1.1. 控制逻辑 93.6.1.2. L298原理图 103.6.2 显示电路设计 103.6.2.1. 液晶模块接线图 103.6.2.2. 1062接口说明 113.6.2.3. 基本操作时序 113.6.3 键盘电路设计 113.6.3.1. 行列式键盘电路 113.6.3.2. 按键抖动 123.6.3.3. 去抖方法 123.6.4 电机测速电路设计 123.6.5 光电编码器的工作原理: 133.6.5.1. 绝对式编码器 133.6.5.2. 增量式编码器 143.6.5.3. 转速转向信号处理 143.6.6 电枢电流测量 153.6.6.1. 测量方法 153.6.6.2. AVR数模转换特点 154系统软件设计与实现 164.1PWM软件设计 184.1.1 产生PWM信号4种方法 184.1.2 AVR单片机输出PWM的程序 194.2转向与速度检测 194.2.1 测速原理 194.2.2 脉冲数字(P/D)转换方法 204.2.3 M/T法测速软件设计 204.2.4 M/T法数字测速软件图 214.2.5 转向的判断 234.3电流检测原理 234.3.1 AD转换程序 234.4调节器的设计 244.4.1 电流调节器的设计 244.4.2 转速调节器的设计 274.5PID程序流程图: 295系统调试结果 306总结 31致谢 32参考文献 33 -PAGE4-基于AVR的直流电动机双闭环调速系统绪论绪论当今,自动化控制系统己经在各行各业得到了广泛的应用和发展,而直流调速控制作为电气传动的主流在现代化生产中起着主要作用。本文主要研究直流调速系统,它主要由三部分组成,包括控制部分、功率部分、直流电动机。长期以来,直流电动机因其具有调节转速比较灵活、方法简单、易于大范围内平滑调速、控制性能好等特点,一直在传动领域占有统治地位。微机技术的快速发展,在控制领域得到广泛应用。本文对基于微机控制的双闭环可逆直流PWM调速系统进行了较深入的研究,从直流调速系统原理出发,逐步建立了双闭环直流PWM调速系统的数学模型,用微机硬件和软件发展的最新成果,探讨一个将微机和电力拖动控制相结合的控制方法,本文在对控制对象全面回顾的基础上,重点对控制部分展开研究,它包括对实现控制所需要的硬件和软件的探讨,控制策略和控制算法的探讨等内容。在硬件方面充分利用微机外设接口丰富,运算速度快的特点,采取软件和硬件相结合的措施,实现对转速、电流双闭环调速系统的控制。直流电动机简介直流电动机是将直流电能转换成机械能的装置。在磁场中放如通有电流的导体就会产生磁感应效应。直流电动机是应用磁感应原理将电能转换为机械能的装置,其转子和定子分别由绕组和永久磁铁组成。直流电动机具有调速性能较好和起动转矩较大等优点。直流调速技术已广泛运用于工业、航天领域的各个方面。最常用的直流调速技术是脉宽调制(PWM)直流调速技术,它具有调速精度高、响应速度快、调速范围宽和耗损低等特点。直流电机工作原理在直流电动机中,外加电压并不是直接加在线圈两端,而是通过电刷B1、B2和换向器再加到线圈上。由于电刷固定不动,对于图中的情况,电流i总是从电刷B1流人,从电刷B2流出。所以当转子旋转时,A、x两个导体轮流交替地处于N极和s极下时,导体中的电流将随其所处磁极极性的改变而同时改变方向,从而使电磁转矩的方向始终保持不变,使电动机持续旋转。此时换向器起到将外电路的直流改变为线圈内交流的“逆变”作用。图1.1直流电机模型直流电动机的电磁转矩常用下式表示T=KTφIa式中KT——电动机结构系数;φ——每个磁极下的磁通(wb);Ia——电枢电流(A)。直流电机的励磁直流电机的主磁场由励磁线圈通人直流电流产生,只有微型直流电机才采用永久磁铁。励磁方式是指励磁线圈的供电方式。直流电机的运行性能与励磁方式有密切的关系。按励磁供电方式不同,直流电机可分为他励和自励两大类。他励电机励磁他励电机的励磁电流由独立的直流电源供电,其大小与电枢两端电压无关,如图2—8a所示,有较好的运行性能。自励电机励磁自励电机的励磁绕组与电枢绕组连接,按连接方式不同又分为:并励、串励、复励三种,如图所示。图1.2直流电动机励磁并励电机的励磁绕组与电枢绕组并联,因其励磁电流受电机端电压波动的影响故其运行性能略次于他励式电机。串励电机的励磁绕组与电枢绕组串联,励磁电流与电枢电流相等。其主磁场的强弱与负载电流大小有直接关系,所以仅对电机有特殊性能要求时才采用。复励电机的同一磁极有两套励磁绕组,一套绕组与电枢绕组并联(或其他电源供给),另一套绕组与电枢绕组串联。本文重点放在直流电动机运行特性和应用上。直流电机的优越性直流电机是最早出现的电动机,也是最早实现调速的电动机。由于直流电机具有良好的线性调速特性、控制简单、效率高及优异的动态特性,长期以来一直占据着调速控制领域的统治地位。近年来,随着交流变频电机及无刷电机的调速控制技术的不断成熟,直流电机正面临着巨大的挑战。但在很多调速控制场合,直流电机仍是最佳选择。直流电动机应用在家用电器中的空调器、电冰箱、风扇、洗衣机、跑步机等应用直流电机已经十分普遍。在航空、军事设施应用领域里的雷达驱动、机载武器瞄准驱动、自行火炮火力控制驱动等等。在工业控制领域,机器人关节驱动和自动生产线、电子产品加工装备上的各种中小功率的驱动等。选题背景问题的提出众所周知,直流电动机全压启动时,如果没有限流措施,会产生很大的冲击电流,这不仅对电动机换向不利,对过载能力低的电力电子器件来说,更是不能允许的。采用转速负反馈的闭环调速系统突然加上给定电压时,由于惯性,转速不可能立即建立起来,反馈电压认为零,相当于差不多是其稳态工作值的1+K倍。这时,由于放大器和变换器的惯性都很小,电枢电压Ud一下子就达到它的最高值,对电机来说,相当于全压启动,当然是不允许的。 另外,有些生产机械的电动机可能会遇到堵转的情况,例如,由于故障是机械轴被卡住,或挖土机运行时碰到坚硬的石块等等。由于闭环系统静特性很硬,若无限流环节,电流将远远超过允许值。如果只依靠过流继电器或熔断器保护,一过载就跳闸,也会给正常工作带来不便。解决方案为了为了解决反馈闭环调速系统启动和堵转时电流过大的问题,系统中必须有自动限制电枢电流的环节。根据反馈控制原理,要维持哪一个物理量基本不变,就应该引入那个物理量的负反馈。那么,引入电流负反馈,就应能保持电流基本不变,使它不超过允许值。然而对于经常正、反转运行的调速系统,例如龙门刨床、可你轧钢机等,尽量缩短起、制动工程的时间是提高生产效率的重要因素。为此,在电机最大允许电流和转矩受限制的条件下,应该充分利用电机的过载能力,最好是在过渡过程中始终保持电流(转矩)为允许的最大值,使电力拖动系统以最大的加速度启动,到达稳态转速时,立即让电流降下来,使得转矩马上与负载相平衡,从而转入稳态运行。如图所示n图2.1直流电动机双闭环理想快速启动过程系统总设计方案设计思路题目要求设计一个基于AVR的直流电动机双闭环调速系统。系统可以分为控制部分、AD采样部分和显示部分。设计中采用Atmega16单片机为主控制核心,行列式键盘为控制部分,利用Atmega16的自带的AD作为AD采样电路,显示部分采用液晶1602显示。方案论证与设计系统控制设计方案论证与选择方案一:采用DSP芯片来产生PWM信号来控制电机转动,同时和单片机结合来实现PID算法,实现实时控制。方案二:直接采用AVR单片机由软件产生脉宽调制信号,经过PID算法来实现闭环控制。由于系统要求比较简单,所以采用Atmega16单片机来对电机进行控制。电机控制电路的设计方案一:采用晶闸管——电动机控制系统(V-M)进行控制。方案二:采用专用电机控制集成芯片L298来控制电机转动,该方案电路简单,可靠。方案三:直接采用4个三极管搭成桥式电路来控制电机的转动。本设计采用方案二,采用芯片L298方便硬件设计,减少硬件带来更大的麻烦。相对于V——M调速,PWM调速有很多优点,比如PWM开关频率高、电流容易连续、谐波少、低速性能好、稳速精度高、调速范围宽等。键盘电路的设计由于系统要求控制功能少,所以直接采用行列式键盘进行控制。显示电路的设计显示电路采用LCM1602显示结果。速度测量电路的设计速度测量采用光电编码器进行速度采集,经过单片机中断将采样的数据换算。电流检测电路设计L298设有感应电流检测引脚1和引脚15,在1脚和地之间串入小于0.5欧姆的电阻,通过测量非地端电位即可计算出通过电阻电流即L298A路电流。详见本文4.3.6部分。系统组成:经过比较与论证,最终确定的系统组成框图如下,其中采用Atmega16为主控制芯片,采用1602进行显示,键盘控制电路。系统控制结构如图3.1:图3.1系统硬件的设计与实现ATMEGA控制电路图3.2avr控制电路接线图电源及ISP图3.3电源及ISP接线图主要电路单元的设计L298驱动接口AVR单片机ATMEGA16输出的脉宽调制(PWM)信号需经过功率放大才能驱动电机,本调速控制系统采用的是L298驱动芯片,驱动接口电路如图4.2所示。L298有单极性、双极性2种工作方式。单极性工作方式指的是在一个PWM周期内,电机的电枢只承受单极性的电压;双极性工作方式是指在一个PWM周期内电机电枢两端的电压呈正负变化。调速控制系统采用的是单极性工作方式。单片机的PWM输出引脚(PD4或PD5)接L298的EnA和EnB引脚,它控制着电机转速大小;单片机的PD6或PD7经过一定的逻辑电路接到L298的IN1~IN4输入引脚上,它控制电机的转动方向。为了增强L298的驱动能力,本调速控制系统对L298的两路驱动进行了并联使用,最大驱动能力可以达到3A。图3.4L298驱动电路接线图控制逻辑图3.5电机控制逻辑图当电机使能端A为高电平时,如果输入端M1Direction引脚为高电平,三极管导通,输入引脚1为低电平而输入引脚2为高电平,电机反转;如果输入端M1Direction引脚为低电平,三极管截止,输入引脚2为低电平而输入引脚1为高电平,电机正转;当电机使能端A为低电平时,电机停止。L298原理图图3.6 L298原理图显示电路设计显示给定的速度参数和经过PID调速后稳定的速度参数。液晶模块接线图图3.71602接线图1062接口说明图3.81602液晶接口说明基本操作时序键盘电路设计行列式键盘电路图3.9行列式键盘电路按键抖动按键在闭合和断开时,触点会存在抖动现象。图3.10按键抖动去抖方法硬件方法:设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。软件方法:指编制一段时间大于20ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后检测该键状态,如果该键仍保持闭合状态电平,则确认该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延时一段时间,以消除后沿抖动,然后转入对该按键的处理。本设计采用软件方法。电机测速电路设计传感器接口电路用于对直流电机的输出量进行采样,以实现闭环控制。转速信号通过与直流电机同轴连接的增量式光电编码器输出的相差90度相角的两路方波信号获取。光电编码器接线电路如图图3.11光电测速光电编码器的工作原理:光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,其原理示意图如图1所示;通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90º的两路脉冲信号。根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。绝对式编码器绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有N位二进制分辨率的编码器,其码盘必须有N条码道。目前国内已有16位的绝对编码器产品。增量式编码器增量式光电编码器在圆盘上有规则地刻有透光和不透光的线条,在圆盘两侧安放发光元件和光敏元件。当圆盘随电机旋转时,光敏元件接收的光通量随透光线条同步变化,光敏元件输出波形经过整理后变为脉冲。码盘上有相标志,每转一圈Z相输出一个脉冲。此外,为判断旋转方向,码盘还可提供相位相差90度的两路脉冲信号,如图4.9所示。图3.12增量式光电编码盘转速转向信号处理将A、B两相脉冲中任何一相输入计数器中,均可使计数器进行计数。编码盘输出Z相脉冲用于复位计数器,每转一圈复位一次计数器。编码盘的旋转方向可以通过D触发器的输出信号Q来判断。整形后的A、B两相输出信号分别接到触发器的时钟端和D输入端,D触发器的CLK端在A相脉冲的上升沿触发。由于A、B两相的脉冲相位相差90度,当电机正转时(假设A相脉冲超前时为正转,反之为反转),A相脉冲超前B相脉冲90度,触发器总是在B脉冲为高电平触发,这时D触发器的输出端Q输出高电平。如图4.10所示。当电机反转时,B相脉冲超前A相脉冲90度,则D触发器总是在B脉冲为低电平时触发,这时Q输出端输出为低电平。由此确定电机的转动方向。图3.13光电编码盘工作原理图电枢电流测量测量方法在L298的1脚和15脚串接电阻可分别检测L298A路和B路电流大小,由电路图可知电阻一端接地只要测量另一端电压即可算出电路电流。本文直接采用avr16自带的ad转换电路测量SEA端电压。图3.14L298一脚和十五脚感应电阻接线图AVR数模转换特点ATmega16有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V(GND)为基准。器件还支持16路差分电压输入组合。两路差分输入(ADC1、ADC0与ADC3、ADC2)有可编程增益级,在A/D转换前给差分输入电压提供0dB(1x)、20dB(10x)或46dB(200x)的放大级。七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可做为正输入端。如果使用1x或10x增益,可得到8位分辨率。如果使用200x增益,可得到7位分辨率。ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。标称值为2.56V的基准电压,以及AVCC,都位于器件之内。基准电压可以通过在AREF引脚上加一个电容进行解耦,以更好地抑制噪声。系统软件设计与实现软件编写主要包括PWM波形的产生,电机转速的实时检测、电机电枢电流实时测量,PID控制算法,键盘扫描和液晶显示程序。如图程序框图的构成,当程序进入“初始化”时,开放外部中断,进行电机转速计数,当定时器定时1s到达时,停止计时和中断外部中断,转入计算当前转速,根据当前转速与AVR单片机给定的转速比较,采取PID算法的对直流电机进行调速控制,当超过PWM限幅值1024时,返回PID算法程序再进行直流电机调速控制,否则输出PWM信号。1.控制总流程图图4.1程序流程图2.转速、电流双闭环直流调速系统框图图4.2转速、电流双闭环直流调速系统ASR——转速调节器 ACR——电流调节器 TG——测速 TA——电流检测仪 UPE——电力电子变换器 Un*——转速给定电压 Un——转速反馈电压 Ui*电流给定电压 Ui——电流反馈电压PWM软件设计脉冲宽度调制(PWM)是英文“PulseWidthModulation”的缩写,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。PWM的占空比决定输出到直流电机的平均电压.PWM不是调节电流的.PWM的意思是脉宽调节,也就是调节方波高电平和低电平的时间比,一个20%占空比波形,会有20%的高电平时间和80%的低电平时间,而一个60%占空比的波形则具有60%的高电平时间和40%的低电平时间,占空比越大,高电平时间越长,则输出的脉冲幅度越高,即电压越高.如果占空比为0%,那么高电平时间为0,则没有电压输出.如果占空比为100%,那么输出全部电压.

所以通过调节占空比,可以实现调节输出电压的目的,而且输出电压可以无级连续调节.(4-1)其中:Ud——整流电压Us——电源电压ton——开通时间T——开关周期产生PWM信号4种方法①分立电子元件组成的PWM信号发生器这种方式是用分立的逻辑电子元件组成PWM信号电路,是较早采用的方法,可靠性、可调性较差;②软件模拟式利用单片机的一个I/O引脚,通过软件对该引脚输出高低电平来模拟PWM波,该方法占用CPU的时间较多,控制软件较复杂;③专用PWM集成电路采用芯片制造商生产专用的PWM集成电路芯片,该方法功能强,但增加了调速系统的成本开销;④单片机的PWM口新一代的许多单片机具有PWM功能。通过单片机的初始化设置,使其自动发生PWM脉冲波,只有在改变脉冲宽度时,CPU才进行干预,该方法控制直流电动机转速简单、可靠。可利用单片机的PWM口产生控制信号的方法控制电压。AVR单片机输出PWM的程序voidmain()//PD4输出高电平持续2MS,PD5输出占空比为50%,因为其COMnx1:0=1。{DDRD|=0X30;TCCR1A=0X63; TCCR1B=0X1B; OCR1A=12499;//产生10MS的PWM信号,保存上限值,但不能输出PWM信号 OCR1B=2500;//占空比为20%,既PD4输出高电平持续2MS。}转向与速度检测测速原理由光电式旋转编码器产生与被测转速成正比的脉冲,测速装置将输入脉冲转换为以数字形式表示的转速值。M法、T法、M/T法工作原理以下:⑴M法测速工作原理:①由计数器记录PLG发出的脉冲信号;②定时器每隔时间Tc向CPU发出中断请求INTt;③CPU响应中断后,读出计数值M1,并将计数器清零重新计数;④根据计数值M计算出对应的转速值n。⑵T法测速工作原理:①计数器记录来自CPU的高频脉冲f0;②PLG每输出一个脉冲,中断电路向CPU发出一次中断请求;③CPU响应INTn中断,从计数器中读出计数值M2,并立即清零,重新计数。⑶T法测速工作原理:①T0定时器控制采样时间;②M1计数器记录PLG脉冲;③M2计数器记录时钟脉冲。脉冲数字(P/D)转换方法(1)M法—脉冲直接计数方法;(2)T法—脉冲时间计数方法;(3)M/T法—脉冲时间混合计数方法。M/T法测速软件设计由于转速检测的精度和快速性对电机调速系统的静、动态性能影响极大。为了在较宽的速度范围内获得高精度和快速的数字测速,本设计使用每转4096线的光电编码器作为转速传感器,它产生的测速脉冲频率与电机转速有固定的比列关系,微机对该频率信号采用M/T法测速处理。M/T法测速原理是在对光电编码器输出的测速脉冲数m1进行计数的同时,对时钟脉冲的个数m2也进行计数。图4.3M/T法测速原理图测速时间Td由测速脉冲来同步,即由硬件电路实现Td等于整m1个脉冲周期。设从图5.2点开始,计数器分别对ml和m2计数,到达b点,预计的测速时间Tc到,微机发出停止计数指令,但因为Tc不一定恰好等于整数个编码起输出脉冲周期,所以计数器仍对时钟脉冲计数,自到c点时,可以利用下一个转速脉冲上升沿(即c点)触发数字测速硬件电路使时间计数器停止计数。这样,m2就代表了m1个测速脉冲周期的时间。设时钟脉冲频率为f0,光电编码器每转发出P个脉冲,则电动机转速的计算公式为:r/min(4-2)在本系统中,由于选用f0=2MHz,P=4096=,所以转速计算公式有:r/min(4-3)为了在低速测量时能使测速器在相当短的Td时间内任能包含较多个测速脉冲的高精度测速值,除了尽可能选择较大P值的光电编码器外,还可以利用光电编码器输出的相位上互差90的两路矩形脉冲信号经过4信频电路后再送入计数器。这样,转速n的计算式应改为:r/min(4-4)由此可以得到转速的值。M/T法数字测速软件图测速软件由捕捉中断服务子程序如图5.3和测速时间中断服务子程序如图5.4构成,转速调节中断服务程序中进行到“测速允许”时,开放捕捉中断,但只有旋转编码器脉冲前沿到达时,进入捕捉中断服务程序,旋转编码器脉冲计数器M1和高频时钟计数器M2才真正开始计数,同时打开测速时间计数器Tc,禁止捕捉中断,使不再干扰计数器计数。待测速时间计数器到达计数值,发出停止测速信号,再次开放捕捉中断,到旋转编码器脉冲前沿再到达时停止计数。在这一组软件框图中,测速软件仅完成M1和M2计数,转速计算是在转速调节中断服务子程序中完成的。图5.5为故障保护中断服务子程序框图。图4.4主程序框图图4.5初始化主程序框图图4.6图4.7图4.8转速调节中断电流调节中断故障保护中断服务子程序框图服务子程序框图服务子程序框图转向的判断编码盘的旋转方向可以通过D触发器的输出信号Q来判断。整形后的A、B两相输出信号分别接到触发器的时钟端和D输入端,D触发器的CLK端在A相脉冲的上升沿触发。由于A、B两相的脉冲相位相差90度,当电机正转时(假设A相脉冲超前时为正转,反之为反转),A相脉冲超前B相脉冲90度,触发器总是在B脉冲为高电平触发,这时D触发器的输出端Q输出高电平。如图4所示。当电机反转时,B相脉冲超前A相脉冲90度,则D触发器总是在B脉冲为低电平时触发,这时Q输出端输出为低电平。由此确定电机的转动方向。电流检测原理AD转换程序uintmega16_ad()//avrPA0作为adc输入,十位ADC

{

uintaddata;

DDRA&=~BIT(PA0);

PORTA&=~BIT(PA0);//设置PA0口为不带上拉电阻输入

ADMUX=0;//选择0通道

ADCSR=0X80;//ADC使能,二分频

ADCSR|=BIT(ADSC);//ADSC=6即ADC开始转换

while(!(ADCSR&(BIT(ADIF))));//查询ADC是否转换完毕

addata=ADCL;//读出

温馨提示

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

评论

0/150

提交评论