配套课件-微型计算机控制技术_第1页
配套课件-微型计算机控制技术_第2页
配套课件-微型计算机控制技术_第3页
配套课件-微型计算机控制技术_第4页
配套课件-微型计算机控制技术_第5页
已阅读5页,还剩421页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章 绪论 1.1 微型计算机控制系统的组成 1.2 微型计算机控制系统分类 1.3 微型计算机控制系统的发展趋势 微型计算机控制系统是由计算机(工业控制计算机)和工业对象两大部分组成。图1-1给出了按偏差进行控制的闭环控制系统框图。图1-1 闭环控制系统框图1.1 微型计算机控制系统的组成返回本章首页图1-2中给出了开环控制系统框图。它与闭环控制系统不同,它的控制器直接根据给定信号去控制被控对象工作。被控制量在整个控制过程中对控制量不产生影响。与闭环控制系统相比,它的控制性能较差。图1-2 开环控制系统框图如果把图1-1中的控制器用微型计算机来代替,就可以构成微型计算机控制系统,其基本框图

2、如图1-3所示。在微型计算机控制系统中,只要运用各种指令,就能编出符合某种控制规律的程序。微处理器执行这样的程序,就能实现对被控参数的控制。 图1-3 计算机控制系统基本框图1. 硬件组成微型计算机控制系统的硬件一般是由微型计算机、外部设备、输入输出通道和操作台等组成,如下图1-4所示。图1-4 微型计算机控制系统原理图硬件组成 (1)微型计算机 (2)外部设备 (3)输入输出通道 (4)操作台 2计算机控制系统的软件软件是指能完成各种功能的计算机程序的总和。它是微型计算机控制系统的神经中枢,整个系统的工作都是在程序的指挥下进行协调工作的。软件通常分为两大类:一类是系统软件,另一类是应用软件。

3、返回本节1.2 微型计算机控制系统分类 1操作指导控制系统 2直接数字控制系统(DDC) 3计算机监督系统(SCC) 4分级计算机控制系统 返回本章首页1操作指导控制系统 图1-5 操作指导控制系统组成框图返回本节2直接数字控制系统(DDC) 图1-6 DDC控制系统原理图返回本节3计算机监督系统(SCC) 计算机监督系统(Supervisory Computer Control)简称SCC系统。 SCC系统有两种不同的结构形式。一种是SCC+模拟调节器,另一种是SCC+DDC控制系统。(1)SCC+模拟调节器控制系统该系统原理图,如图1-7所示。(2)SCC+DDC控制系统SCC+DDC控制

4、系统原理图,如下图1-8所示。图1-7 SCC+模拟调节器控制系统原理图 图1-8 SCC+DCC控制系统原理图 4分级计算机控制系统 分级计算机控制系统是一个四级系统,各级计算机的功能如图1-9所示。装置控制级(DDC级) 车间监督级(SCC级) 工厂集中控制级(MIS) 企业管理级(MIS) 图1-9 分级计算机控制系统返回本节1可编程控制器(PLC) 2采用新型的控制系统(集散控制系统) 3人工智能 4神经网络控制系统 1.3 微型计算机控制系统的发展趋势 返回本章首页1可编程控制器(PLC) PLC与传统的继电器控制相比,具有如下一些特点:(1)抗干扰能力强 (2)适应性好 (3)编程

5、直观、简单 (4)功能完善,接口功能强 返回本节2采用新型的控制系统(集散控制系统) 集散控制系统是分散型综合控制系统(Total Distributed Control Systems)或分散型微处理器控制系统(Distributed Microprocessor Control Systems)的简称。图1-10是集散控制系统的组成框图。它以微型计算机为核心,把微型机、工业控制计算机、数据通信系统、显示操作装置、输入 /输出通道、模拟仪表等有机地结合起来,采用组合组装式结构组成系统,为实现工程大系统的综合自动化创造了条件。图1-10 集散系统组成框图返回本节3人工智能 人工智能是用计算机模

6、拟人类大脑的逻辑判断功能,其中具有代表性的两个尖端领域是专家系统和机器人。所谓专家系统即计算机专家咨询系统,是一个存储了大量专门知识的计算机程序系统。不同的专家系统将不同领域专家的知识,以适当的形式存放于计算机中。根据这些专家知识,专家系统可以对用户提出的问题做出判断和决策,以回答用户的咨询。机器人是一种能模拟人类智能和肢体动作的装置,从本世纪70年代微处理机问世以来,机器人便逐渐涉足于各工业生产领域和科学研究领域。目前已出现的机器人可以分为两类,工业机器人和智能机器人。 返回本节4神经网络控制系统 国外在20世纪80年代掀起了神经网络(Neural Network)计算机的研究和应用热潮,我

7、国在90年代也开始了这方面的研究。由于神经网络的特点(大规模的并行处理和分布式的信息存储,良好的自适应性、自组织性和很强的学习功能、联想功能及容错功能),使它的应用越来越广泛,其中一个重要的方面是智能控制,包含机器人控制。返回本节THANK YOU VERY MUCH !本章到此结束,谢谢您的光临!返回本章首页结束放映第二章 微型计算机接口技术 2.1 D/A转换器 2.2 MCS-51和D/A转换器的接口 2.3 A/D转换器 2.4 MCS-51和A/D转换器的接口 2.5 数据的采样及保持 2.6 常用输出驱动电路 在微机的各种接口中,完成外设信号到微机所需数字信号转换的,称为模拟数字转

8、换(A/D转换)器;完成微机输出数字信号到外设所需信号转换的,称为数字模拟转换(D/A转换)器。D/A转换器(Digital to Analog Converter)是一种能把数字量转换成模拟量的电子器件;A/D转换器(Analog to Digital Converter)则相反,它能把模拟量转换成相应的数字量。在微机控制系统中,经常要用到A/D和D/A转换器。它们的功能及在实时控制系统中的地位,如图2-1所示。图2-1 单片机和被控实体间的接口示意返回本章首页2.1 D/A转换器 2.1.1 D/A转换器的原理 2.1.2 D/A转换器的性能指标 2.1.3 典型的D/A转换器芯片DAC0

9、832 返回本章首页2.1.1 D/A转换器的原理 D/A转换器有并行和串行两种,在工业控制中,主要使用并行D/A转换器。D/A转换器的原理可以归纳为“按权展开,然后相加”。因此,D/A转换器内部必须要有一个解码网络,以实现按权值分别进行D/A转换。解码网络通常有两种:二进制加权电阻网络和T型电阻网络。 为了说明T型电阻网络的工作原理,现以四位D/A转换器为例加以讨论,如图2-2所示。图2-2 T型电阻网络型D/A转换器返回本节2.1.2 D/A转换器的性能指标 1. 分辨率 2. 转换精度 3. 偏移量误差 4. 建立时间 返回本节2.1.3 典型的D/A转换器芯片DAC0832 1. DA

10、C0832内部结构 2. 引脚功能 3. DAC0832的技术指标 1. DAC0832内部结构 DAC0832内部由三部分电路组成,如图2-3所示。 图2-3 DAC0832原理框图2. 引脚功能 DAC0832芯片为20引脚,双列直插式封装。其引脚排列如图2-4所示。(1)数字量输入线D7D0(8条) (2)控制线(5条) (3)输出线(3条) (4)电源线(4条) 图2-4 DAC0832引脚图3. DAC0832的技术指标 DAC0832的主要技术指标:(1)分辨率8位(2)电流建立时间1S(3)线性度(在整个温度范围内)8、9或10位(4)增益温度系数00002 FS/(5)低功耗2

11、0mW(6)单一电源+5 +15V因DAC0832是电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf为运算放大器的反馈电阻端。运算放大器的接法如图2-5所示。图2-5 运算放大器接法返回本节2.2 MCS-51和D/A转换器的接口 2.2.1 DAC0832的应用 2.2.2 MCS-51和8位DAC的接口 2.2.3 MCS-51和12位DAC的接口 返回本章首页2.2.1 DAC0832的应用 1. 单极性输出 2. 双极性输出 1. 单极性输出 在需要单极性输出的情况下,可以采用图2-6所示接线。图2-6 单极性DAC的接法2. 双极性输出 在需要双极性输出的

12、情况下,可以采用图2-7所示接线。图2-7 双极性DAC的接法图2-7中,运算放大器OA2的作用是将运算放大器OA的单向输出转变为双向输出。表达式(2-3)的比例关系可以用图2-8来表示。返回本节图2-8 双极性输出线性关系图2.2.2 MCS-51和8位DAC的接口 1. 直通方式 2. 单缓冲方式 3. 双缓冲方式 1. 直通方式 2. 单缓冲方式 所谓的单缓冲方式就是使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式。在实际应用中,如果只有一路模拟量输出。单缓冲方式接线如图2-9所示。 图2-9 DAC0832单缓冲方式接口例2.1 DAC0832用作波形发

13、生器。试根据图2-9接线,分别写出产生锯齿波、三角波和方波的程序,产生的波形如图2-10所示。图2-10 例2.1所产生的波形解:由图2-9可以看出,DAC0832采用的是单缓冲单极性的接线方式,它的选通地址为7FFFH。锯齿波程序:ORG0000HMOVDPTR,#7FFFH;输入寄存器地址CLRA;转换初值LOOP:MOVXDPTR,A;D/A转换INCA;转换值增量NOP;延时NOPNOPSJMPLOOP END三角波程序:ORG0100HCLRAMOVDPTR,#7FFFHDOWN:MOVXDPTR,A;线性下降段INCA JNZDOWN MOVA,#0FEH;置上升阶段初值UP:MO

14、VXDPTR,A;线性上升段DECAJNZUPSJMPDOWN END方波程序:ORG0200HMOVDPTR,#7FFFHLOOP: MOVA,#33H;置上限电平MOVXDPTR,A ACALLDELAY;形成方波顶宽MOVA,#0FFH;置下限电平MOVXDPTR,AACALLDELAY;形成方波底宽SJMPLOOPEND3. 双缓冲方式 所谓双缓冲方式,就是把DAC0832的两个锁存器都接成受控锁存方式。双缓冲方式DAC0832的连接如图2-11所示。图2-11 DAC0832的双缓冲方式接口例2.2 DAC0832用作波形发生器。试根据图2-11接线,分别写出产生锯齿波、三角波和方波

15、的程序,产生的波形如图2-12所示。图2-12 例2.2所产生的波形ORG0000H LOOP1:MOVA,#80H;转换初值LOOP:MOVR0,#0FEH;输入寄存器地址MOVXR0, A;转换数据送输入寄存器 INCR0;产生DAC寄存器地址MOVXR0, A;数据送入DAC寄存器并进行D/A转换DECA;转换值减少NOP;延时NOPNOPCJNEA,#0FFH,LOOP;-5V是否输出?未输出,程序循环SJMPLOOP1;-5V已输出,返回转换初值END解:由图2-11可以看出,DAC0832采用的是双缓冲双极性的接线方式,输入寄存器的地址为FEH,DAC寄存器的地址为FFH。锯齿波程

16、序:三角波程序:ORG0100HMOVA,#0FFHDOWN:MOVR0,#0FEHMOVXR0,A;线性下降段INCR0 MOVXR0,ADECAJNZDOWN UP:MOVR0,#0FEH;线性上升段MOVXR0,A INCR0 MOVXR0,AINCA JNZUPMOVA,#0FEHSJMPDOWNEND方波程序:ORG0200HLOOP:MOVA,#66HMOVR0,#0FEH;置上限电平MOVXR0,A INCR0 MOVXR0,A ACALLDELAY;形成方波顶宽MOVA,#00H;置下限电平MOVR0,#0FEH MOVXR0,A INCR0 MOVXR0,A ACALLDEL

17、AY;形成方波底宽SJMPLOOPEND例2.3 X-Y绘图仪与双片DAC0832接线如图2-13所示。设8031内部RAM中有两个长度为30H的数据块,其起始地址分别为20H和60H,请根据图2-13,编出能把20H和60H中的数据分别从1#和2#DAC0832输出,并根据所给数据绘制出一条曲线。图2-13 控制X-Y绘图仪的双片DAC0832接口解:根据图2-13接线,DAC0832各端口的地址为:FDH1#DAC0832数字量输入寄存器地址FEH2#DAC0832数字量输入寄存器地址FFH1#和2#DAC0832启动D/A转换地址设R1寄存器指向60H单元;R0指向20H单元,并同时作为

18、两个DAC0832的端口地址指针;R7寄存器存放数据块长度。ORG0000HMOVR7,#30H;数据块长度MOVR1,#60H MOVR0,#20HLOOP: MOVA,R0PUSHA;保存20H单元地址MOVA,R0;取20H单元中的数据MOVR0,#0FDH;指向1#DAC0832的数字量输入寄存器MOVXR0,A;取20H单元中的数据送1#DAC0832INCR0MOVA,R1;取60H单元中的数据INCR1;修改60H单元地址指针MOVXR0,A;取60H单元中的数据送2#DAC0832INCR0MOVXR0,A;启动两片DAC0832同时进行转换POPA;恢复20H单元地址INCA

19、;修改20H单元地址指针MOVR0,ADJNZR7,LOOP;数据未传送完,继续END返回本节2.2.3 MCS-51和12位DAC的接口 DAC1208的内部结构和引脚结构 DAC1208的内部结构如下图2-14所示,引脚结构如图2-15所示。图2-14 DAC1208内部框图图2-15 DAC1208引脚图8031和DAC1208的接线方式如图2-16所示。 图2-16 8031和DAC1208的连接解:D/A转换的程序为:ORG0000HMOVR0,#0FFH;8位输入寄存器地址MOVR1,#21H MOVA,R1;高8位数字量送AMOVXR0,A;高8位数字量送8位输入寄存器DECR0

20、DECR1MOVA,R1;低4位数字量送ASWAPA;A中高低4位互换MOVXR0,A;低4位数字量送4位输入寄存器DECR0MOVXR0,A;启动D/A转换END例2.4 设内部RAM的20H和21H单元内存放一个12位数字量(20H单元中为低4位,21H单元中为高8位),试根据图2-16编写出将它们进行D/A转换的程序。返回本节2.3 A/D转换器 2.3.1 逐次逼近式A/D转换器的工作原理 2.3.2 A/D转换器的性能指标 2.3.3 典型的A/D转换芯片ADC0809 返回本章首页2.3.1 逐次逼近式A/D转换器的工作原理 逐次逼近式A/D转换器是一种采用对分搜索原理来实现A/D

21、转换的方法,逻辑框图如图2-17所示。图2-17 逐次逼近式A/D转换器逻辑框图返回本节2.3.2 A/D转换器的性能指标 1. 转换精度 2. 转换时间 3. 分辨率 4. 电源灵敏度 返回本节2.3.3 典型的A/D转换芯片ADC0809 1. ADC0809的内部逻辑结构8路A/D转换器8路模拟量开关ADC0809的内部逻辑结构如图2-18所示。 图2-18 ADC0809内部逻辑结构 2. 引脚结构ADC0809采用双列直插式封装,共有28条引脚。其引脚结构如图2-19所示。 图2-19 ADC0809引脚图引脚结构 (1)IN7IN0:8条模拟量输入通道 (2)地址输入和控制线:4条

22、 (3)数字量输出及控制线:11条 (4)电源线及其他:5条 表2-1 被选通道和地址的关系返回本节2.4 MCS-51和A/D转换器的接口 2.4.1 MCS-51和ADC0809的接口 2.4.2 MCS-51对AD574的接口 返回本章首页2.4.1 MCS-51和ADC0809的接口 ADC0809和8031的接线如图2-20所示。图2-20 ADC0809和8031接线图例2.5 如图2-20所示,试用查询和中断两种方式编写程序,对IN5通道上的数据进行采集,并将转换结果送入内部RAM20H单元。解:中断方式程序清单:ORG0000HMOVDPTR,#7FF5HMOVXDPTR,A;

23、启动A/D转换SETBEASETBEX1;开外中断1SETBIT1;外中断请求信号为下跳沿触发方式LOOP:SJMPLOOP;等待中断END中断服务程序:ORG0013H;外中断1的入口地址LJMP1000H;转中断服务程序的入口地址ORG1000HMOVXA,DPTR;读取A/D转换数据MOV20H,A;存储数据RETI;中断返回查询方式程序清单:ORG0000HMOVDPTR,#7FF5HMOVXDPTR,A;启动A/D转换LOOP:JBP3.3,LOOP;等待转换结束MOVXA,DPTR;读取A/D转换数据MOV20H,A;存储数据END例2.6 如图2-21所示,试编程对8个模拟通道上

24、的模拟电压进行一遍数字采集,并将采集结果送入内部RAM以30H单元为始地址的输入缓冲区。图2-21 8031和ADC0809的接口解:从图中可以看出,接线方式为中断方式。ADDA、ADDB和ADDC三端接8031的P0.0 、P0.1 和P0.2,故通道号是通过数据线来选择。程序清单:ORG0000HMOVR0,#30H;数据区始地址送R0MOVR7,#08H;通道数送R7MOVR6,#00H;IN0地址送R6MOVIE,#84H;开中断SETBIT1;外中断请求信号为下跳沿触发方式MOVR1,#0F0H;送端口地址到R1MOVA,R6;IN0地址送AMOVXR1,A;启动A/D转换LOOP:

25、SJMPLOOP;等待中断END中断服务程序:ORG0013H;外中断1的入口地址AJMP1000H;转中断服务程序的入口地址ORG1000HMOVXA,R1;读入A/D转换数据MOVR0,A;将转换后的数据存入数据区INCR0;数据区指针加1INCR6;模拟通道号加1MOVA,R6;新的模拟通道号送AMOVXR1,A;启动下一通道的A/D转换DJNZR7,LOOP1;8路采样未结束,则转向LOOP1CLREX1;8路采样结束,关中断LOOP1:RETI;中断返回返回本节2.4.2 MCS-51对AD574的接口 (1)引脚功能 AD574为28脚双列直插式封装,引脚排列如图2-22所示。图2

26、-22 AD574引脚图(2)结构特点 AD574内部集成有转换时钟,参考电压源和三态输出锁存器,因此使用方便,可直接和微机接口,不需要外接时钟电路。 ADC0809的输入模拟电压为0+5V,是单极性的。而AD574的输入模拟电压既可是单极性也可是双极性。 AD574的数字量的位数可以设定为8位,也可设定为12位。2. 8031和AD574的接口图2-23表示出了AD574与8031单片机的接口电路。 图2-23 AD574与8031接口电路图2-24 单极性输入电路例2.7 在图2-23中,试编写程序,使AD 574进行12位A/D转换,并把转换后的12位数字量存入内部20H和21H单元。设

27、20H单元存放高8位,21H单元存放低4位。解:程序清单如下:ORG0000H MOVR0,#20H;数据区首址MOVDPTR,#0FF7CH MOVXDPTR,A;启动A/D转换LOOP:JBP1.0,LOOP;转换是否结束,未结束,等待MOVDPTR,#0FF7DHMOVXA,DPTR;读高8位数据MOVR0,A;存高8位数据INCDPTRINCDPTRMOVXA,DPTR;读低4位数据ANLA,#0FH;屏蔽高4位随机数INCR0MOVR0,A;存低4位数据END返回本节2.5 数据的采样及保持 2.5.1 多路转换开关 2.5.2 数据采样定理 2.5.3 采样/保持器 返回本章首页2

28、.5.1 多路转换开关 1. CD4051CD4051是单边8通道多路调制器/多路解调器。其引脚结构如图2-25所示。图2-25中,C、B、A为二进制控制输入端,改变C、B、A的数值,可以译出8种状态,并选中其中之一,使输入输出接通。当INH=1时,通道断开;当INH=0时,通道接通。改变图中 IN/OUT07及OUT/IN的传递方向,则可用作多路开关或反多路开关。其真值表如表2-3所示。图2-25 CD4051引脚图 表2-3 CD4051真值表2. 多路转换开关的扩展当采样的通道比较多,可以将两个或两个以上的多路开关并联起来,组成82或162的多路开关。下面以CD4051为例说明多路开关的

29、扩展方法。两个8路开关扩展成16路的多路开关的方法,如图2-26所示。返回本节图2-26 用CD4051多路开关组成的16路模拟开关接线图离散系统的采样形式有周期采样、多阶采样和随机采样。周期采样应用最为广泛。所谓周期采样就是以相同的时间间隔进行采样。图2-27给出了采样前后波形的变化。X*(t)图2-27 采样前后波形的变化2.5.2 数据采样定理 返回本节采样/保持器的作用是:在采样时,其输出能够跟随输入变化;而在保持状态时,能使输出值不变。其输入输出特性如图2-28所示。图2-28 采样/保持器的输入输出特性2.5.3 采样/保持器 1. 采样/保持器的工作原理最简单的采样/保持器是由开

30、关和电容组成,如图2-29所示。图2-29 最简单的采样/保持器2. 常用的采样/保持器随着大规模集成电路的发展,已生产出各种各样的采样/保持器。如用于一般目的有AD582、AD583、LF198/398等;用于高速的有THS-0025、THS-0060、THC-0030、THC-1500等;用于高分辨率的有SHA1144、ADC1130等。返回本节2.6 常用输出驱动电路 2.6.1 白炽灯驱动接口 2.6.2 光电隔离器 返回本章首页2.6.1 白炽灯驱动接口 图2-30是用CJ0451驱动器对白炽灯驱动的典型应用电路。驱动器输出驱动电流为300500mA。当单片机的P1.7输出低电平时,

31、CJ0451驱动器的输出晶体管导通,灯泡上有电流流过而点亮。图2-30 CJ0451驱动灯泡的应用返回本节2.6.2 光电隔离器 图2-31中二极管用于保护驱动器,当驱动器由0变为1时,继电器由接通转为关断,由于继电器线圈是感性负载,会产生很高的感应电动势,二极管提供的泄流回路能保护隔离器。 继电器隔离适用于控制对响应速度要求不高的启停设备。对启停时间很短的开关量输出控制系统,应采用光电耦合器。光电耦合器所需的驱动电流小,在硬件设计时,只需要一般的三态门即可。图2-32为快速驱动直流负载的光电隔离电路。图2-31 开关量输出隔离电路图2-32 光电耦合控制直流电机返回本节THANK YOU V

32、ERY MUCH !本章到此结束,谢谢您的光临!结束放映返回本章首页第三章 常用控制程序设计 3.1 判断程序设计 3.2 巡回检测程序设计 3.3 数字滤波程序设计 3.4 标度变换程序设计 3.5 上下限报警处理程序设计 3.6 LED数码管显示程序设计 3.7 定时程序设计 3.8 键盘控制程序设计 3.9 抗干扰技术 3.10 电机控制程序设计 3.11 步进电机控制 3.1 判断程序设计 3.1.1 算术判断程序 3.1.2 逻辑判断程序 3.1.3 标志判断程序 返回本章首页判断程序就是分支执行程序。程序在执行时,首先判定给定的条件是否满足,根据判定的结果(真或假)再执行相应的操作

33、。例如:在转速控制系统中,电机的恒速运转一般是通过控制输入电压来实现的,首先检测出电机的实际转速,再比较电机的实际转速和给定转速,如果电机的转速低于给定转速,就需要增加输入电压;如果电机的转速高于给定转速,就需要降低输入电压。上述功能的执行过程如图3-1所示。图3-1 判断程序框图检测电机转速是否大于给定转速降低输入电压提高输入电压是否MCS-51系列的程序状态字(PSW)是一个用于存储程序运行状态信息的8位寄存器,其位定义如表3-1所示。其中有些位状态是根据程序运算结果由硬件自动设置;而有些位状态则是通过软件设定的。PSW的位状态可通过指令读出,以实现程序的转移。返回本节3.1.1 算术判断

34、程序1. 两个8位无符号数比较 2. 两个16位无符号数比较 3. 两个8位有符号数的比较 两个8位无符号数比较 图3-2 8位无符号数的比较流程框图 CLRCY;进位标志清零 MOVA,M;AMSUBBA,N;求MNJZEQU;累加器A=0,则M=N,转EQUJCLESS;CY=1,有借位,则MN处理程序;无借位,则MN,执行BIG处理程序EQU:M=N处理程序LESS:MN处理程序8位无符号数的比较程序清单:2. 两个16位无符号数比较 图3-3 16位无符号数的比较流程框图16位无符号数的比较程序清单: CLRCY;标志位清零 MOVA,MH;AMHMOVR2,NH;R2NHSUBBA,

35、R2;高8位比较JZHEQU;高8位相等,转低8位比较 JCLESS;有借位,转MN 理程序HEQU:CLRCY;标志位清零 MOVA,ML;AMLMOVR2,NL;R2NLSUBBA,R2;低8位比较JZEQU;A=0,则M=N,转EQUJCLESS;有借位,则MN处理程序;无借位,执行MN 理程序EUQ:M=N 处理程序 LESS:M0,N0, 即两数均为正数。(2)M0,N0, 即M为正数,N为负数。(3)M0, 即M为负数,N为正数。(4)M0,N0, 即两数均为负数。图3-4 8位有符号数的比较流程框图8位有符号数比较程序清单: MOVA,M;AMMOVR2,N;R2NSUBBA,R

36、2;M和N 比较JZEQU;M和N相等,转相等处理程序JBPSW.2,FLOW;判断是否溢出JBACC.7,LESS;无溢出,且A的最高位为1,则MNFLOW:JBACC.7,BIG;有溢出,且A的最高位为1,则MNLESS:MN处理程序;否则,MN处理程序 EUQ:M=N处理程序 返回本节3.1.2 逻辑判断程序 逻辑判断程序的设计步骤:(1)读入数据(开关状态或阀门的位置);(2)屏蔽不需要的状态位;(3)与所要求的状态比较;(4)判断比较结果,选择程序入口。例3-1图3-5中A、B、C、D表示4个开关,当四个开关均闭合时,顺序执行相应的程序,否则,继续检测。逻辑判断程序流程框图如图3-6

37、所示。 图3-5 开关位置检测图 图3-6 开关状态检测流程图逻辑判断程序清单: CHECK:MOVA,P1;读入开关状态 ANLA,#55H;屏蔽无用位XRLA,#00H;判断A、B、C、D是否全部闭合JNZCHECK;A、B、C、D没全部闭合,继续检测;否则顺序执行相应程序 返回本节3.1.3 标志判断程序 标志判断的设计思想是:根据某一设定的标志单元(或标志位)的状态,决定程序的执行方向。电机旋转方向控制程序流程图如图3-7所示。图3-7 电机旋转方向控制程序流程图电机旋转方向控制程序清单: FLAGBIT 00H;设定00H为电机旋转方向控制位 JBFLAGRIGHT;FLAG=1,转

38、RIGHTLEFT:;FLAG=0,顺时针旋转控制程序 RIGHT:;逆时针旋转控制程序 返回本节3.2 巡回检测程序设计 3.2.1 概述 3.2.2 巡回检测举例 返回本章首页3.2.1 概述 所谓的巡回检测就是对生产过程中的各个参数按照一定的周期进行检查和测量,检测的数据通过计算机处理后可以进行显示、打印和报警等操作。巡回检测程序主要由以下几个方面构成:1. 采样周期T的确定 2. 采样开关通道号的控制 3. A/D转换 4. 数据处理 返回本节3.2.2 巡回检测举例 1. 利用8位A/D转换芯片(ADC0809) 2. 采用12位A/D转换芯片(AD574A) 1. 利用8位A/D转

39、换芯片(ADC0809)图3-8 炉温巡回检测电路原理图系统的硬件电路介绍: (1)测量元件和变送器 (2)A/D转换电路 (3)二分频电路 本程序由系统初始化程序和中断程序组成。初始化程序完成中断向量和定时器初值的设定;中断程序完成数据采样工作,实现对8个通道的巡回检测。初始化程序功能:设置定时器0、外部中断0和外部中断1的中断程序入口;设置定时器0的工作方式为方式1,定时时间为100ms;设置计数单元(30H)初值。初始化程序流程框图如图3-9所示。图3-9 初始化程序流程图初始化程序清单: ORG0000H AJMPSTART ORG0003H AJMPSAMPLE;转采样中断程序 OR

40、G000BH AJMPTIME0;转8秒定时中断程序ORG0013HAJMPEOC;转EOC中断处理程序START:MOVTMOD,#01H;置定时器0为工作方式1 MOVTH0,#3CHMOVTL0,#0B0H;定时器初值设定 MOV30H,#00H;置计数初值SETBIT0;中断请求信号为脉冲方式 SETBIT1;中断请求信号为脉冲方式 SETBEX0;外部中断0中断允许SETBET0;定时器0中断允许 SETBEA;开中断SETBTR0;启动定时器HERE:AJMPHERE;等待中断定时器中断程序流程框图如图3-10所示。图3-10 定时器中断程序流程框图定时器中断程序程序清单: TIM

41、E0:CLREA;关中断INC30H MOVA,30H XRLA,#50H;判断是否到8秒JZS_8;8秒定时到,转至S_8AJMPRECOUN;未到8秒,继续计时S_8:SETBP3.2;触发外部中断0NOP CLRP3.2 NOPRECOUN:MOVTH0,#3CH MOVTL0,#0B0H;设定定时器初值SETBEA;开中断RETI;中断返回数据采样程序流程框图如图3-11所示。数据采样程序程序清单: SAMPLE:SETB00H;设置标志位 MOVDPTR,#0F00H;设置通道初值 MOVR6,#08H;设置通道数 MOVR7,#05H;设置采样次数 MOVR0,#40H;设置数据区

42、首址 TRAN_S:MOVXDPTR,A;启动A/D转换程序流程图WAIT:JB00H,WAIT;标志位为1等待A/D转换完成中断 SETB00H;置标志位INCDPTR;通道号加1INCR0INCR0INCR0INCR0INCR0;45H为下一通道采样数据存放首址DJNZR6,#TRAN_S;8个通道采样未完,继续采样MOVDPTR,#0F00H;8个通道采样结束,重置通道初值INCR0;修改采样数据存放地址DJNZR7,TRAN_S;未完成5次采样,继续;数据处理程序.RETI2. 采用12位A/D转换芯片(AD574A) 图3-14 AD574A和8031的硬件接口电路图图3-15 AD

43、574A A/D转换程序流程框图D574A A/D转换程序清单: ORG0000HAJMPSTARTORG0003HAJMPSAMPLE;转至数据采样程序START:MOVDPTR,#0000H;建立AD574A的地址MOVR0,#40H;设置数据存储初址SETBEX0;允许外部中断0SETBIT0;设置外部中断0请求信号方式为脉冲方式SETBEA;中断允许MOVXDPTR,A;启动A/D转换HERE:AJMPHERE;等待中断中断服务程序清单:SAMPLE:CLREA;关中断MOVDPTR,#0002H MOVXA,DPTR;读A/D转换数据的高8位MOVR0,A;保存数据INCR0INCD

44、PTR MOVXA,DPTR;读A/D转换数据的低4位SETBEA;开中断RETI 返回本节3.3 数字滤波程序设计 3.3.1 概述 3.3.2 数字滤波的方法返回本章首页3.3.1 概述 和模拟滤波装置相比,数字滤波有以下几个优点:(1)数字滤波通过程序实现,不需硬件设备,系统的可靠性较高。(2)数字滤波可实现多通道共用。(3)可对低频信号(如0.01Hz)实现滤波。(4)采用不同的算法和参数就可实现对不同信号的滤波,使用起来灵活、方便。返回本节3.3.2 数字滤波的方法 1. 程序判断滤波 2. 中值滤波 3. 算术平均滤波 4. 加权平均滤波 5. 一阶滞后滤波 6. 防脉冲干扰平均值

45、法 1. 程序判断滤波 限幅滤波就是把相邻的两次采样值相减,求出其增量(以绝对值表示),然后与两次采样允许的最大偏差值(由被控对象的实际情况决定) y进行比较,如果小于等于y,则取本次采样值;如果大于y,则仍取上次采样值作为本次采样值。即:Yn-Yn-1y, 则Yn=Yn , 取本次采样值Yn-Yn-1 y, 则Yn=Yn-1 ,取上次采样值 (3-1)限幅滤波程序流程框图如图3-16所示。图3-16 限幅滤波程序流程框图限幅滤波程序程序清单: PUSHPSW;保护现场PUSHA CLRC;进位标志位清零MOVDATA,DATA2 MOVA,DATA1SUBBA,DATA;求Yn-1 -YnJ

46、NCCOMPARE;如果Yn-1 -Yn0,转COMPARECPLA;如果Yn-1 -Yny,DATA1DATAOVER:POPA;恢复现场 POPPSWRET;返回限速滤波的滤波原理如下:设在顺序采样时刻T1、T2、T3所采集的数据分别为Y1、Y2、Y3,则当Y2-Y1y,则Y2作为采样值;Y2-Y1y, 则保留Y2,但不作为采样值,继续采样得Y3;如果Y3-Y2y,则Y3作为采样值;Y3-Y2y, 则取作为采样值。2. 中值滤波 所谓中值滤波法就是对某一被测参数连续采样n次(n一般取奇数),然后把n次采样值按顺序排列,取其中间值做为本次采样值。中值滤波程序的流程框图如图3-17所示。 图3

47、-17 中值滤波程序流程框图 现场保护设置数据个数读数据排序取中值据现场恢复排序完成否?是设置数据区首址 开 始返 回是否中值滤波程序程序清单: PUSHPSWPUSHASORT:MOVR0,DATA;数据存储区单元首址MOVR7,TIME;读比较次数CLRFLAG;清交换标志位 LOOP:MOVA,R0;取第一个数MOVFIRST,A;保存第一个数INCR0MOVSECOND,R0;保存第二个数CLRCSUBBA,R0;两数比较JCNEXT;第一数小于第二数,不交换MOVR0,FIRST DECR0MOVR0,SECOND;交换两数INCR0SETBFLAG;置交换标志位NEXT:DJNZR

48、7,LOOP;进行下一次比较JBFLAG,SORT;进行下一轮比较DECR0CLRCMOVA,TIME RRCAMOVR7,ACONT:DEC R0DJNZR7,CONTMOVSAMP,R0;取中值POPAPOPPSWRET3. 算术平均滤波所谓算术平均滤波就是把n个采样值相加,然后取其算术平均值作为本次有效的采样信号,即: 图3-18 算术平均滤波程序流程图算术平均滤波程序清单:(本例中取采样次数n=8) PUSHPSW;现场保护 PUSHAMOVFLAG,#00H;进位位清零MOVR0,DATA;设置数据存储区首址MOVR7,#08H;设置采样数据个数CLRA;清累加器LOOP:ADDA,

49、R0;两数相加JNCNEXT;无进位,转NEXTINCFLAG;有进位,进位位加1NEXT:INCR0;数据指针加1DJNZR7, LOOP;未加完,继续加MOVR7,#03H;设置循环次数DIVIDE:MOVTEMP,A;保存累加器中的内容MOVA,FLAG;累加结果除2CLRC RRCAMOVFLAG,A MOVA,TEMP RRCA DJNZR7,DIVIDE;未结束,继续执行 MOVSAMP,A;保存结果至SAMP中POPA;恢复现场POPPSW RET 4. 加权平均滤波 在算术平均滤波程序中,n次采样值在最后的结果中所占的比重是相等的,这样虽然消除了随机干扰,但有用信号的灵敏度也随

50、之降低。为了提高滤波效果,将各个采样值取不同的比重,然后再相加求平均值,这种方法称为加权平均滤波。一个n项加权平均式为:图3-19 加权平均滤波程序流程图加权平均滤波程序清单: PUSHPSW;保护现场PUSHAMOVR7,TIME;数据个数设置MOVR0,DATA;数据区首址设置MOVR1,COEFF;系数存储首址设置MOVFLAG,#00H;累加结果存储区清零MOVSAMP_L,#00H MOVSAMP_H,#00HLOOP:MOVA,R0;读采样值MOVB,AMOVA,R1;读加权平均系数MULABCLRCADDA,SAMP_L;累加和MOVSAMP_L,AMOVA,BADDCA,SAM

51、P_HJNCNEXT INCFLAG NEXT:MOVSAMP_H,A INCR0;数据区地址加1 INCR1;系数地址加1 DJNZR7,LOOP;未加完,继续MOVR7,#07H;设置循环次数DIV128:CLRCMOVA,FLAG;累加结果除2RRCA MOVFLAG,AMOVA,SAMP_HRRCAMOVSAMP_H,AMOVA,SAMP_LRRCAMOVSAMP_L,ADJNZR7,DIV128;未除完,继续MOVSAMP,SAMP_L;保存滤波后采样值POPA;恢复现场POPPSWRET5. 一阶滞后滤波图3-20 一阶滞后滤波程序流程图一阶滞后滤波程序清单: MOVMUL1_H,

52、COEFF1_HMOVMUL1_L,COEFF1_LMOVMUL2_H,DATA1_HMOVMUL2_H,DATA1_LACALLMULTD; MOVBUFF1,PR_H MOVBUFF2,PR_L MOVMUL1_H,COEFF2_H MOVMUL1_L,COEFF2_LMOVMUL2_H,DATA2_HMOVMUL2_H,DATA2_L ACALLMULTD;CLRCMOVA,PR_H;ADDA,BUFF1 MOVPR_H,AMOVA,PR_LADDCA,BUFF2; MOVPR_L,A 双字节无符号位乘法子程序(MULTD)。 入口条件:乘数MUL1存于MUL1_H和MUL1_L单元中,

53、被乘数MUL2存于MUL2_H和MUL2_L单元中。出口条件:乘积按顺序存于PR_H、PR_L、MUL1_H、MUL1_L单元中。MULTD:CLR C;清进位标志位MOVPR_L,#00H;乘积高8位清零 MOVPR_H,#00HMOVR7,#11H;设置循环次数LOOP1:JNCLOOP2;进位标志位为零,转LOOP2MOVA,PR_L;PR+MUL2ADDA,MUL2_LMOVPR_L,AMOVA,PR_HADDCA,MUL2_HMOVPR_H,ALOOP2:MOVA,PR_H;PR右移一位RRCAMOVPR_H,AMOVA,PR_LRRCAMOVPR_L,AMOVA,MUL1_H;MU

54、L1右移一位RRCAMOVMUL1_H,AMOVA,MUL1_L RRCAMOVMUL1_L,A DJNZR7,LOOP1;循环未结束,继续6. 防脉冲干扰平均值法 图3-21 防脉冲干扰平均值法程序流程框图 防脉冲干扰平均值法程序清单: PUSHA;保护现场PUSHPSWSORT:MOVR0,DATA;数据存储区单元首址MOVR7,#10H;读比较次数CLRCHANGE;清交换标志位 LOOP:MOVA,R0;取第一个数MOVFIRST,A;保存第一个数INCR0MOVSECOND,R0;保存第二个数CLRCSUBBA,R0;两数比较JCNEXT;第一数小于第二数,不交换MOVR0,FIRS

55、T DECR0MOVR0,SECOND;交换两数INCR0SETBCHANGE;置交换标志位NEXT:DJNZR7,LOOP;进行下一次比较JBCHANGE,SORT;进行下一轮比较 MOVFLAG,#00H;进位位清零 INCDATA;去掉最小值MOVR0,DATA;设置数据存储区首址MOVR7, #08H;设置累加循环次数,去掉最大值 CLRA;清累加器 LOOP:ADDA,R0;两数相加 JNCNEXT;无进位,转NEXT INCFLAG;有进位,进位位加1 NEXT:INCR0;数据指针加1 DJNZR7, LOOP;未加完,继续加MOVR7,#03H;设置循环次数DIVIDE:MOV

56、TEMP,A;保存累加器中的内容MOVA,FLAG;累加结果除2CLRC RRCAMOVFLAG,AMOVA,TEMPRRCA DJNZR7,DIVIDE;未结束,继续执行MOVSAMP,A;保存结果至SAMP中POPA;恢复现场POPPSWRET返回本节3.4 标度变换程序设计 对于一般的线性仪表而言,标度变换公式为:为了简化程序设计,一般把被测参数的起点A0所对应的A/D转换值设定为0,即N0=0,这样式(3-6)可以改写为:返回本章首页例3-2某温度测量仪表的量程为100900,利用8031和ADC0809进行A/D转换。在某一时刻计算机采样并经过数字滤波后的的数字量为0CDH求此时对应

57、的温度值是多少?(设仪表的量程是线性的)解:由式(3-7)可知,A0=100,Am=900,Nx=0CDH=(205)D,Nm=0FFH=(255)D,所以此时对应的温度为:标度变换程序清单: BDCHAN:MOVSUB1_L,AM;INCAM MOVSUB1_H,AMMOVSUB2_L,A0INCA0MOVSUB2_H,A0ACALLSUB2MOVMUL1_H,DIFF_HMOVMUL1_L,DIFF_LMOVSUB1_L,NX; INCNX MOVSUB1_H,NXMOVSUB2_L,N0INCN0MOVSUB2_H,N0ACALLSUB2MOVMUL2_H,DIFF_HMOVMUL2_L

58、,DIFF_LACALLMULTD;求MOVDIV1_H,PR_HMOVDIV1_L,PR_LMOVSUB1_L,NM; INCNMMOVSUB1_H,NMMOVSUB2_L,N0INCN0MOVSUB2_H,N0ACALLSUB2MOVDIV2_H,DIFF_HMOVDIV2_L,DIFF_LACALLDUBDIV;CLRCMOVA,DIV1_LADDCA,A0MOVAX,AINCA0MOVA,DIV1_HADDCA,A0MOVAX,A;RET双字节减法子程序(SUB2) 双字节减法子程序(SUB2)程序入口:被减数放在SUB1_H、SUB1_L单元中,减数放在 SUB2_H、SUB2_L单

59、元中;程序出口:差放在 DIFF_H、DIFF_L单元中。SUB2:CLRCMOVA,SUB1_L;ASUB1_LSUBBA,SUB2_L;低8位相减MOVDIFF_L,A;保存低8位差值MOVA,SUB1_H;ASUB1_HSUBBA,SUB2_H;高8位相减MOVDIFF_H,A;保存高8位差值RET双字节无符号数除法(DUBDIV) 程序入口:被除数存放在DIV1_H、DIV1_L单元中, 除数存放在 DIV2_H、DIV2_L单元中;程序出口:商存放在 DIV1_H、DIV1_L单元中,余数存放在L_L和L_H单元中。DUBDIV:CLRA;余数单元清零MOVL_H,AMOVL_L,A

60、MOVR0,#10H;设置除法移位次数 LOOP:CLRC;移位MOVA,DIV1_LRLCAMOVDIV1_L,AMOVA,DIV1_HRLCAMOVDIV1_H,AMOVA,L_LRLCAMOVL_L,AMOVA,L_HRLCAMOVL_H,AMOVPSW.5,CLP1:MOVA,L_L;余数单元减除数SUBBA,DIV2_LMOVR1,AMOVA,L_HSUBBA,DIV2_H JBPSW.5 ADD1JCSMALLADD1:MOVL_H,AMOVA,R1MOVL_L,AINCDIV1_L;商加一 SAMLL:DJNZR0,LOOPMOV20H,L_H;四舍五入 JB07H, ADD_D

温馨提示

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

最新文档

评论

0/150

提交评论