基于单片机气体流量测量仪设计(勇哥)(5.28).doc_第1页
基于单片机气体流量测量仪设计(勇哥)(5.28).doc_第2页
基于单片机气体流量测量仪设计(勇哥)(5.28).doc_第3页
基于单片机气体流量测量仪设计(勇哥)(5.28).doc_第4页
基于单片机气体流量测量仪设计(勇哥)(5.28).doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

机电与车辆工程学院毕业设计(论文)题 目: 基于单片机气体流量测量仪设计 专 业: 电子信息工程 班 级: 姓 名: 学 号: 指导教师: 日 期: 2012年5月25日 目录引言21总体方案设计31.1 本设计的任务31.2总体设计框图32 系统的硬件电路设计42.1 硬件模块介绍42.1.1 CPU (AT89S51)42.1.3电源设计82.1.4键盘设计92.1.5复位电路设计92.1.6 A/D转换电路102.1.7 步进电机控制接口电路132.1.8 气体流量采集原理142.2总原理图162.3 PCB图173 系统软件设计1731 主程序设计1732 流量控制子程序1933 中断服务子程序24331 设定值输入程序24332 定时器中断子程序24333 数码管显示子程序26334 步进电机控制程序274结论28致谢29基于单片机气体流量测量仪设计摘要: 本设计电路是以AT89S51单片机为控制核心。它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制。整个系统硬件部分包括气体流量测量,自激式A/D转换器,按键电路,驱动电路,时序电路,和8段译码器,LED数码显示器。在配合用汇编语言编制的程序使软件实现,实现气体流量智能转换的基本功能。本控制电路成本低廉,功能实用,操作简便,有一定的实用价值。本文从3个方面展开论述,首先是硬件电路的描述;接着软件部分的设计;最后实现功能。关键词:AT89S51单片机 流量控制 数码管 LED数码显示引言目前单片机的应用已深入到国民经济的各个领域,对各行各业的技术改造和产品的更新换代起着推动作用,以前没有单片机时,气体流量测量仪也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。当今社会,随着科学技术的快速发展,自动控制在人们的生活中可以说“无孔不入”,小到遥控儿童玩具,大到冰箱空调的智能化,都体现了科学技术的进步。特别是单片机(SingleChip Microcomputer SCM)技术的应用,不但降低了生产成本,同时也方便了消费者,使操作简洁、安全。单片机的应用使许多复杂的事情,都能够简单、方便的实现了。用单片机控制的器件,充分发挥单片机体积小,价格便宜,功耗低,可靠性好等特点,充分发挥了单片机的控制优势。本设计可用于气体流量控制,方便了广大用户。本设计是一个具有自动控制气体输入的气体流量测量仪。由时钟电路、显示电路、驱动电路、控制电路四部分组成。现代机关企业以,特别是家庭对暖气、液化气等的需求逐渐增多,供暖、供气的自动控制为这些企业节省了大量的人力物力。本设计实现了这些功能,给供暖及其他相关企业带来方便,整体性好,人性化强、可靠性高,实现了对气体流量控制的智能化。1总体方案设计 1.1 本设计的任务本设计是一个由单片机控制的,具有显示和自动控制的气体流量测量仪。根据设计任务的基本要求,设计了由单片机(AT89S51)作为主控器件,七段数码管及芯片74ALS164作为显示电路,五个按键组成的按键操作电路,以及驱动电路、步进电机控制电路组成的气体流量输出控制电路构成的气体流量自动控制器。系统大体可分成以下几部分,即时钟电路、显示电路、驱动电路、控制电路,而时钟电路起控制主导作用。时钟电路的构成由单片机及其定时器完成,流量显示电路则由单片机并行输出,送到外部寄存器芯片74ALS164,最后由七段数码管显示出来。控制电路主要控制着复位电路、驱动电路以及设置初值等操作。除了以上的硬件电路外,还充分利用软件、硬件相结合,充分发挥单片机设计的优势。1.2总体设计框图通过气体流量传感器采集气体流量数据,将采集到的流量信号传输给单片机,再由单片机控制显示器,并比较采集的流量与设定的流量是否一致,然后驱动步进电机对进气阀门进行处理,从而模拟实现气体流量控制单元的工作情况。气体流量控制器主要由单片机,时序电路,流量采集电路,A/D转换电路,流量显示电路,流量输入电路,驱动电路等组成。系统原理图见图1.2所示:流量采集电路 AT89S518段译码器8段译码器数码管数码管按键电路驱动电路A/D转换电路时钟图1.2 气体流量控制系统框图2 系统的硬件电路设计2.1 硬件模块介绍2.1.1 CPU (AT89S51)本设计采用了ATMEL的AT89S51微处理器为核心模块,基于以下几个个因素:(1)性价比高,货源充足,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。(2)DIP40封装,体积小,便于产品小型化。(3) 兼容标准MCS-51指令系统及80C51引脚结构。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。1主要特性: 8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2管脚说明: 图2.1.1 AT89S51芯片引脚图 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须 被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部,然后再实行读引脚操作否则就可能读入出错。 RST:AT89S51的重置引脚,复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。 ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。EA为英文External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。VCC:AT89S51 电源正端输入,接+5V。VSS:电源地端。212 显示电路在单片机系统中,LED和键盘是两种很重要外设。键盘用于输入数据、代码和命令;LED用来显示控制过程和运算结果。LED(LightEmitting Diode)是发光二极管的简称。LED有七段和八段之分,也有共阴和共阳两种。1LED数码显示管原理LED数码管结构简单,价格便宜。八段LED显示管有八只发光二极管组成,编号是a、b、c、d、e、f、g和SP,分别和同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他的和八段LED相同。八段LED数码显示管原理很简单,是通过同名管脚是所加电平高低来控制发光二极管是否点亮而显示不同字形的。例如:若在共阴LED管的SP、g、f、e、d、c、b、a管脚上分别加上7FH控制电平(即:SP上为0伏,不亮;其余为TTL高电平,全亮),则LED显示管显示字形为“8”。7FH是按SP、g、f、e、d、c、b、a顺序排列后的十六进制编码(0为TTL低电平,1为TTL高电平),常称为字形码。因此,LED上所显示字形不同,相应字形码也不一样。八段共阴能显示的字形及相应字形码如表7-5所列。该表常放在内存,SGTB为表的起始地址,各地址骗移量为相应字形码对表始址的项数。由于“B”和“8”、“D”和“0”字形相同,故“B”和“D”均以小写字母“b”和“d”显示。LED数码显示管分为共阴和共阳两种。为共阴八段LED管时,所有发光二极管阴极共连后接到引脚G,G脚为控制端,用于控制LED是否点亮。若G脚接地,则 LED被点亮;若G脚TTL高电平,则它被熄灭。为共阳八段LED数码显示管时,所有发光二极管阳极共连后接到G脚。正常显示时G脚接+5V,各发光二极管是否点亮取决于aSP各引脚上是否是低电平0伏。因此,共阴和共阳所需字形码正好相反,如表5所列。2MCS-51对LED的显示接口电路MCS-51对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各LED轮流一遍一遍显示各自字符,人们因视觉惰性而看到的是各LED似乎在同时显示不同字形。表 5 八段LED数码显示管字型码表地址偏移量共阴字形码共阳字形码所显字符SGTB+0H3FHC0H0+1H06HF9H1+2H5BHA4H2+3H4FHB0H3+4H66H99H4+5H6DH92H5+6H7DH82H6+7H07HF8H7+8H7FH80H8+9H6FH90H9+AH77H88HA+BH7CH83Hb+CH39HC6HC+DH5EHA1Hd+EH79H86HE+FH71H8EHF+10H00HFFH空格+11HF3H0CHP+12H76H89HH+13H80H7FH+14H40HBFH(1)静态显示所谓静态显示,是指显示器显示某一字符时,相应的发光二极管恒定导通或者截止。静态显示有并行输出和串行输出两种方式。对于静态显示方式,LED显示器由接口芯片直接驱动,采用较小的驱动电流就可以得到较高的亮度。但是并行输出显示的LED位数多时需要并行I/O接口芯片的数量较多,采用串行输出可大大节省单片机的内部资源。(2)动态显示当显示器的位数较多时,可采用动态显示。所谓动态显示就是一位一位的轮流点亮(扫描)显示器的各个位。对于显示器的每一位而言,没隔一段时间被点亮一次。虽然在同一时间只有一位显示器在工作(点亮),但由于人眼的视觉暂留效应和发光二极管熄灭时的余晖,我们看到的却是多个字符“同时”显示。显示器的亮度既与点亮的导通电流有关,也与点亮时间长短和间隔时间有关,调整电流和时间参数,即可实现亮度较高、较稳定的显示效果。动态显示的特点如下所示。优点:当显示位数较多时,采用动态显示方式比较节省I/O口,硬件电路也较静态显示简单。缺点:其稳定度不如静态显示方式。而且在显示位数较多时CPU要轮番扫描,占用CPU较多的时间。图2.1.2 显示电路2.1.3电源设计本设计的主控芯片AT89S51的时钟频率为12MHZ,工作电压为26V。考虑到直交流两用的要求和三端稳压电路选用的方便,因此,我选择工作电压为5V。 根据上述介绍设计,电源电路包括变压器、整流电路、滤波电路、稳压电路等模块组成,使用LED进行电源工作状态指示。LM78XX系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜,因此使用LM7805稳压芯片进行5V的电源电路设计。具体的5V电源电路如下图2.1.3所示。图2.1.3 5V直流电源电路2.1.4键盘设计在该部分设计了由五个按键来完成操作,它们分别是:设置键、存储键、加一键、减一键、确认键。其中确认键S1用于流量设置值调的确认,设置键S2用于对流量预设值设定功能、显示流量功能之间的切换,加1键S3和减1键S4用于在设置预设值时调整预设值,确认键S5用于在设定预设值后对其存储,而每个按键的具体操作是由软件来实现。键的闭与合,反应在行线输出电压上是呈现高电平还是低电平,如果是高电平表示键断开,低电平表示键闭合,通过对行线电平的高低的状态检测,便可确认按键按下与否。图2.1.4键盘电路2.1.5复位电路设计复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位(图2.1.5.1)和手动复位(图2.1.5.2)。 图2.1.5.1 上电复位 图2.5.1.2 手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。AT89S52单片机最小系统如图2.1.5所示。图2.1.5 单片机最小系统原理图2.1.6 A/D转换电路ADC0809介绍ADC有两大类:一类在电子线路中使用,不带使能控制端;另一类带有使能控制端,可和微机直接接口。ADC0809是一种8位逐次逼近式A/D转换器,可以和微机直接接口。ADC0809的姐妹芯片是ADC0808,可以相互代换。1内部结构ADC0809由八路模拟开关、地址锁存与译码器、比较器、256电阻阶梯、树状开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成。 (1)八路模拟开关及地址锁存与译码器八路模拟开关用于输入IN0IN7上八路模拟电压。地址锁存和译码器在ALE信号控制下可以锁存ADDA、ADDB和ADDC上地址信息,经译码后控制IN0IN7上哪一路模拟电压送入比较器。例如:当ADDA、ADDB和ADDC上均为低电平0以及ALE为高电平时,地址锁存和译码器输出使IN0上模拟电压送到比较器输入端VIN。(2)256电阻阶梯和树状开关为了简化问题起见,现以二位电阻阶梯和树状开关为例加以说明。其中,四个分压电阻使A、B、C和D四点分压成2.5V、1.5V、0.5V和0V。SAR中高位D1控制左边两只树状电子开关,低位D0控制右边四只树状开关。各开关旁的0和1表示树状开关闭合条件,由D1D0状态决定。例如:D1=1,则上面开关闭合而下面开关断开,D1=0时的情况正好与此相反。树状开关输出电压VST和D1D0关系列出于表2。表2 VST和D1D0的关系D1 D0VST0 00V0 10.5V1 01.5V1 12.5V对于8位A/D转换器,SAR为八位,电阻阶梯、树状开关和上述情况类似。只是要有28=256个分压电阻,形成256个标准电压供给树状开关使用。VST送给比较器输入端。(3)逐次逼近寄存器和比较器SAR在A/D转换过程中存放暂态数字量,在A/D转换完成后存放数字量,并可送到“三态输出锁存器”。A/D转移前,SAR为全0。A/D转换开始时,控制电路使SAR最高位为1,并控制树状开关的闭合和断开,由此产生VST送给比较器。比较器对输入模拟电压VIN和VST进行比较。若VINVST,则比较器输出逻辑0而使SAR最高位由1变为0;若VINVST,则比较器输出使SAR最高位保留1。此后,控制电路在保持最高位不变下,依次对次高位、次次高位最低位重复上述过程,就可在SAR中得到A/D转换完成后的数字量。(4)三态输出锁存器和控制电路三态输出锁存器用于锁存A/D转换完成后的数字量。CPU使OE引脚变为高电平就可以从“三态输出锁存器”取走A/D转换后的数字量。控制电路用于控制ADC0809的操作过程。2引脚功能ADC0809采用双列直插式封装,共有28条引脚,如图2.2所示,现分为四组简述如下:图2.2 ADC0809引脚图(1)IN0IN7(8条)IN0IN7为八路模拟电压输入线,用于输入被转换的模拟电压。(2)地址输入和控制(4条)ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,ADDA、ADDB和ADDC三条地址线上地址信号得以锁存,经译码后控制八路模拟开关工作。ADDA、ADDB和ADDC为地址输入线,用于选择IN0IN7上哪一路模拟电压送给比较器进行A/D转换。ADDA、ADDB和ADDC对IN0IN7的选择如表3所列。表3 被选模拟量路数和地址的关系被选模拟电压路数ADDCADDBADDAIN0000IN1001IN2010IN3011IN4100IN5101IN6110IN7111(3)数字量输出及控制线(11)START为“启动脉冲”输入线,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入“三态输出锁存器”。2-12-8为数字量输出线,2-1为最高位。OE为“输出允许”线,高电平时能使2-12-8引脚上输出转换后的数字量。(4)电源线及其他(5条)CLOCK为时钟输入线,用于为ADC0809提供逐次比较所需640KHZ时钟脉冲序列。VCC为+5V电源输入线,GND为地线。VREF(+)和VREF(-)为参考电压输入线,用于给电阻阶梯网络供给标准电压。VREF(+)常和Vcc相连,VREF(-)常接地。图2.1.6 单片机与ADC0809连接电路2.1.7 步进电机控制接口电路步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置,也是一种能把输出机械位移增量和输入数字脉冲对应的驱动器件。步进电机具有快速启停能力,只要电机的负荷不超过它所能提供的动态转矩,就能通过输入脉冲来控制它在一瞬间启动和停止。步进电机的步距角和转速只和输入的脉冲频率有关,和环境温度、气压、冲击和振动无关,也不受电网电压的波动和负载变化的影响,它每转一周都有固定的步数,步进精确和步距误差不会长期积累。因此,步进电机在需要精确定位场合应用广泛。(一)步进电机的工作原理电机定子上均匀分布有六个磁极,相邻两磁极间夹角为60,磁极上绕有三相控制绕组,分别对应于A、B和C三相电源。转子外侧均匀分布有40个齿,每个齿的齿距为9。定子的每个极弧上也有5个齿,定子和转子的齿宽和齿距都相同,而每个定子磁极的极距为60,故每个磁极所占的齿距数不是整数。为了弄清步进电机的工作原理,将定子和转子展开成平面图。图中,定子A极上的齿和转子上的齿是对齐的,但B极和C极上的齿分别和转子上齿错1/3齿距(即3)。若使B相绕组通电,电机就会沿B极轴向产生磁场,转子因受到 反应转矩作用而转动,直到B极上齿和转子上齿对齐为止。但A极和C极上的齿又分别和转子上对应齿错新的1/3齿距(即3)。此时,若断开B极控制绕组中电流而接通C相控制绕组,C极和转子间产生的反应转矩使转子继续转动,驱使C极上齿和转子上齿对齐。同理,A极通电驱使A极上齿和转子上齿对齐。由此可见,错齿是促使步进电机旋转的根本原因。根据上述原理,若按ABCA顺序轮流循环通电,则步进马达就会沿顺时针方向以每个脉冲3的规律转动起来;若把通电顺序改为ABCA,则步进马达就会沿逆时针方向一每个脉冲3的规律转动。这就是所谓的三相单三拍通电方式。对于三相六拍通电方式,即按AABBBCCCAA顺序循环通电,步距角将减少一半,每个脉冲只转过1.5。(二)步进电机控制系统上述分析表明:步进电机是否旋转是由控制绕组中输入脉冲的有无来控制的,每步转过的角度和方向是由三相控制绕组中的通电方式决定的。因此,步进电机的控制是要求单片机软件产生按上述规律变化的时序脉冲,然后通过接口和驱动放大电路来驱动步进电机控制绕组工作。步进电机控制系统由硬件电路和软件程序两部分组成。(1)步进电机控制电路89S51对三相步进电机的控制电路如图2.1.7所示。由于89S51的P1口负载只能驱动三个标准的LSTTL输入门,因此需要通过7404驱动器去驱动达林顿复合功率放大器,使步进电机绕组的静态电流达到2A。按上述顺序通电,步进电机正转;按相反顺序通电,步进电机反转。当89S51的P1口的P1.0位输出为高电平“1”时,经反相驱动器7404变为低电平“0”,发光二极管不发光,因此光敏三极管截止,从而使达林顿管导通,A相通电。反之,当P1.0位输出为低电平“0”时,经反相驱动器7404变为高电平“1”,使发光二极管发光,光敏三极管导通,从而使达林顿管截止,A相不导通。同理,用P1口的P1.1和P1.2对B相和C相进行控制。只要改变步进电机A、B、C三相的通电顺序,便可实现对步进电机的控制。图2.1.7 AT89S51与步进电机接口电路2.1.8 气体流量采集原理SDP1000热传导式差压传感器SDP1000和 SDP2000气体差压传感器,量程分别为-5125Pa(0.5inch H2O ,-20500 Pa(2 inch H2O),-1003500 Pa(14 inch H2O)。 SDP1000和 SDP2000外壳耐用,材质为防化学腐蚀的 PPS,宽量程比,零漂移,长期稳定性好,是 HVAC和医疗设备 OEM的首选。 SDP 系列差压传感器是 5V 的电源供电,0.254V 输出。虽然是模拟输出,但是内部线性化和温度补偿的均为数字化实现,因此精度和分辨率高(可达 0.05 Pa),受温度影响小。SDP1000和 SDP2000 均有线性和开方两种特性输出,价格相同;SDP具有完全的互换性,只需简单的外围电路,即可实现高品质的变送器,例如做成 010V 输出或其它接口。其领先的性能基于 Sensirion 的 CMOSens(R)专利技术,将传感元件和信号放大及 A/D 转换集成到同一块硅芯片上。热传感元件测量差压。与其它热差压传感器相比,所需空气量极少,因此即使在恶劣环境中,操作也同样安全可靠。同膜片传感器相比,SDP1000和SDP2000量程更宽,性能更稳定,在低差压段的重复性极好。此外,SDP1000/SDP2000 可耐瞬时的较大压力,对安装方向不敏感。 流量采样工作原理 流量是单位时间内流过管道横截面或明渠横截面的流体量,有体积流量(m/s)和质量流量(kg/s)之分。测量管道内或者明渠中的流量的仪器称之为流量计,按照不同的测量原理,流量仪表可分为容积式、速度式和差压式三类。其中差压式流量计是利用伯努利方程原理来测量流量的仪表,它以输出差压信号来反映流量的大小,根据节流原理,当流体流经节流件时(如标准孔板、文丘利喷嘴等),在其前后产生差压(p),此差压值与该流量的平方成正比。在差压式流量计中,因标准孔板节流装置差压流量计结构简单、制造成本低而得到广泛的应用,孔板流量计理论流量计算公式为:q=上式中q为工况下的体积流量,单位为m/s;c为流出系数,无量纲;=,无量纲;d为工况下的孔板内径,单位为mm;D为工况下上游管道内径,单位为mm;为可膨胀系数,无量纲;为孔板前后差压值,单位为Pa;为工况下流体的密度,单位为kg/m。气体流量计的设计方案是让被检测的气体通过一个标准孔板节流元件,产生压力差(),用高精度的差压传感器检测该压力差,并转换为毫伏级的弱电压信号,该信号经运算放大器放大后,提供给A/D转换器,即可得到数字化的压差量。如果需要,可根据气体体积流量、气体类型、温湿度,计算出气体的质量流量。图2.1.8流量采集电路图2.2总原理图2.3 PCB图3 系统软件设计系统软件设计是该设计的核心,也是设计的重点和难点部分。控制系统软件设计的好坏直接影响到该控制系统的控制功能,因此,要想做好本设计,一个好的系统软件是关键。该控制系统的程序主要分为二部分:主程序、子程序。主程序完成系统的地址分配、系统初始化和各子程序的调用。流量控制子程序通过PID控制算法,实现系统的数字化控制。其他各子程序完成相应的各功能。31 主程序设计主程序部分,主要完成存储器分配、系统初始化和系统整体控制等,并通过调用各子程序段,实现软件的总体设计功能。图3.1 主程序流程图32 流量控制子程序在流量测试的基础上,把流量设定值和实际测试得到的瞬时流量进行比较计算出误差,采用数字PID调节算法,计算输出到AD0809的变量Uio增量式PID控制算法的计算公式为: 式中:ei为本次实际测得的流量和设定值之差; - ; = - ;P为比例系数;I为积分系数;D为微分系数;输出控制变量表达式为: + 程序的入口参数:偏差ek、ek-1、ek-2、测量值y、给定值r。这5个参数均为3字节的浮点数,分别将它们存放在RAM单元中。低字节存放浮点数的阶数和符号,其中符号存放在最高位,阶数以补码的形式存放在另7位中。尾数以原码的形式存放在另2个字节中。本程序占用资源:A,B,R0R7,CY,F0。程序如下:PID1:MOV R0,#52HMOV R1,#49HLCALL FSUBMOV R1,#46HLCALL FSTRMOV R1,#4CHMOV R2,#06HLCALL LPDMMOV R0,#46HMOV R1,#4CHLCALL FMULMOV R1,#4FHLCALL FSTRMOV R1,#4FHMOV R2,#09HLCALL LPDMMOV R0,#43HMOV R1,#4FHLCALL FMULMOV R1,#4FHLCALL FSTRMOV R0,#4CHMOV R1,#4FHLCALL FADDMOV R1,#4CHLCALL FSTRMOV R1,#4FHMOV R2,#0CHLCALL LPDMMOV R0,#40HMOV R1,#4FHLCALL FMULMOV R1,#4FHLCALL FSTRMOV R1,#4FHMOV R0,#4CHLCALL FADDMOV R1,#4CHLCALL FSTRMOV 40H,43HMOV 41H,44HMOV 42H,45HMOV 43H,46HMOV 44H,47HMOV 45H,48HMOV A,4CHMOV C,A。7MOV F0,CJB A。6,PIDJ12ANL A,#3FHMOV R7,APIDJ13:CLR CMOV A,4EHRLC AMOV 4EH,AMOV A,4DHRLC AMOV 4DH,ADJNZ R7,PIDJ13AJMP PIDJ14PIDJ12:CPL AINC AANL A,#3FHMOV R7,APIDJ15:CLR CMOV A,4DHRRC AMOV 4DH,AMOV A,4EHRRC AMOV 4EH,ADJNZ R7,PIDJ15PIDJ14:JB F0,POUT1POUT0:CLR ACJNZ A,4EH,POUT00CJNZ A,4DH,POUT00RETPOUT00:MOV A,55HCJNZ A,#00 H,POUT01MOV A,#08HPOUT01:DEC AMOV 55H,AADD A,#3DHMOVC A,A+PCMOV P1,AMOV R7,#08HDL0:DJNZ R7,DL0DEC 4EHCLR ACJNZ A,4EH,POUT00CJNZ A,4DH,POUT02RETPOUT02:DEC 4DHAJMP POUT00POUT1:CLR ACJNZ A,4EH,POUT10CJNZ A,4DH,POUT10RETPOUT10:MOV A,55HCJNZ A,#07H,POUT11MOV A,#0FFHPOUT11:INC AMOV 55H,AADD A,#14HMOVC A,A+PCMOV P1,AMOV R7,#80HDL1:DJNZ R7,DL1DEC 4EHCLR ACJNZ A,4EH,POUT10CJNZ A,4DH,POUT12RETPOUT12:DEC 4DHAJMP POUT10MDATA:DB 01H,05H,04H,06H,02H,0AH,08H,09HLPDM:MOV R7,#03HLPDM0:MOV A,R2MOVC A,A+PCMOV R1,AINC R2INC R1DJNZ R7,LPDM0RETOM:DB XXH,XXH,XXHDB XXH,XXH,XXHDB XXH,XXH,XXH程序中 FSUB:3字节浮点数减法子程序; FADD:3字节浮点数加法子程序; FMUL:3字节浮点数乘法子程序; FSTR:3字节浮点数减存放子程序。33 设定值输入程序本程序将4位BCD码按千、百、十、个依次存放在89S51片内RAM的30H33H单元中,每个地址单元的高4位为0,低4位为BCD码。 RDS:MOV R0,#30H;初始化,存放单元首址MOV R2,#7FH;P1口高4位置控制字及低4位置输入方式MOV R3,#04H;读入4个BCD码MOV A,R2LOOP:MOV P1,A;P1口送控制字及低4位置输入方式MOV A,P1;读如BCD码ANL A,#0FH;屏蔽高4位MOV R0,A;送入存储单元INC R0;指向下个存储单元MOV A,R2;准备下一片拨盘的控制端置0RR A;MOV R2,A;DJNZ R3,LOOP;未读完返回RET;读完结束34 A/D中断子程序程序如下:INT0: PUSH ACC ;保护现场 PUSH DPH PUSH DPL PUSH PSW SETB PSW.3 ;选工作寄存器区1 MOV DPTR,#0DF01H;读取8155A口数据 MOVX A,DPTR MOV R2, A ANL A, #0F0H ;屏蔽低4位 JNZ ND5 ; MOV A,R2 JNB 02H, D51 ;判断是否采样零信号 MOV C, ACC.0 ; MOV 30H, C MOV C, ACC.7 MOV 37H,CAJMP D14D51: MOV C,ACC.0 ;万位和标志位荷重信号缓冲器 MOV 48H,C MOV C,ACC.7 MOV 4FH,C AJMP D14ND5: MOV A,R2 ;判断是否读出千位 JNB ACC.7,ND4 JNB 02H,D41 ;判断是否采样零信号 ANL A, #0FH ;千位零信号缓冲器 SWAP A MOV 25H,AAJMP D14D41: ANL A,#0FH SWAP A MOV 28H, A AJMP D14ND4: JNB ACC.6, ND3 ;判断是否读出百位 JNB 02H,D31 ;判断是否采样零信号 MOV R1, #25H ;百位零信号缓冲器 ANL A,#0FH XCHP A,R1 AJMP D14D31: MOV R1, #28H ANL A,#

温馨提示

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

评论

0/150

提交评论