直流电机转速闭环控制_第1页
直流电机转速闭环控制_第2页
直流电机转速闭环控制_第3页
直流电机转速闭环控制_第4页
直流电机转速闭环控制_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机控制基础设计结题论文直流电机转速闭环控制设计学 院: 自动化学院 姓 名: 学 号: 专业班级: 09 级自动化 指导老师:时颖重庆大学自动化学院重庆大学自动化学院2012 年 09 月直流电机转速闭环控制直流电机转速闭环控制设计设计摘要摘要在运动控制系统中,电机转速控制占有至关重要的作用,其控制算法和手段有很多,模拟PID控制是最早发展起来的控制策略之一,长期以来形成了典型的结构,并且参数整定方便,能够满足一般控制的要求,但由于在模拟PID控制系统中,参数一旦整定好后,在整个控制过程中都是固定不变的,而在实际中,由于现场的系统参数、温度等条件发生变化,使系统很难达到最佳的控制效果,因此

2、采用模拟PID控制器难以获得满意的控制效果。随着计算机技术与智能控制理论的发展,数字PID技术渐渐发展起来,它不仅能够实现模拟PID所完成的控制任务,而且具备控制算法灵活、可靠性高等优点,应用面越来越广。本设计以上面提到的数字 PID 为基本控制算法,以计算机硬件 PD-32E 为控制核心,产生占空比受数字 PID 算法控制的 PWM 脉冲实现对直流电机转速的控制。同时利用霍尔传感器将电机速度转换成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。在系统中采数码管和 44 键盘作为人机交互界面,启动后可以通过显示部件了解电机当前的转速。该系统控制简单,反应灵敏,具有很强的抗干

3、扰能力。关键字:关键字:运动控制、PID、计算机硬件目录引言引言.11 小组分工小组分工.22 模型建立模型建立.22.1 设计要求.22.2 设计报告要求.34 构建系统的器件构建系统的器件.44.1 8254 定时器/计数器.44.1.1 8254具有以下基本功能.44.1.2 8254的工作方式.44.1.3 8254内部寄存器各位的定义及初始化的编程方法.54.1.4 8254定时/计数器原理图和发光二极管的驱动原理图.54.2 8254 定时器/计数器.54.2.1 8255的工作方式.64.2.2 8255并口模块原理图.64.3 8259 中断控制器 .74.3.1 8259各引

4、脚定义.74.3.2 8259A的内部结构.84.4 AD574.85 系统设计思路及总设计方案系统设计思路及总设计方案.105.1 关键问题.105.2 总设计思路及方案.105.3 霍尔元件测速模块 .115.4 4*3 小键盘原理图.135.5 主程序设计.135.6 设计进度的具体安排和记录 .156 硬件连接及系统电路图硬件连接及系统电路图 .156.1 硬件连接.156.2 系统硬件连接图.16心得体会心得体会.16付 攀 20095077 .16明柯辰 20095087.17金智 20095084.18邱 宁 20095089 .19参考文献参考文献.20附附 1:程序流程图:程

5、序流程图.22附附 2:程序清单:程序清单 .27计算机控制技术课程设计1引言由于直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础。早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采

6、用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率。 目前,直流电动机调速系统数字化已经走向实用化,伴随着电子技术的高度发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术又进入到一个新的阶段,智能化、高可靠性已成为它发展的趋势。本次项目的设计是在 PD-32E 对直流电机控制系统的基础上进行设计和改进的。在设计过程中,使学生能够对单片机有进一步的了解,培养了学生独立的进行程序的设计和调试。系统中通过单片机对直流电机的转速进行控制和转化,并在 8 位数码管上进行显示,方便人们的控制检测,运用PID 调节实现直流电机的闭环调速,同时

7、在电机的上电转动中,对电机进行过电保护,使电机可以良好的进行运转。计算机控制技术课程设计21 小组分工整个课程设计从拿到课题到完成基本功能、添加优化方案、最终形成课程设计报告,小组成员始终活跃在各自的岗位,有条不紊的完成分配给各自的任务,整个设计过程大家都全程参与,没有一个人缺席。综合小组各成员从编程能力、资料收集整理能力、组织协调能力、文书编写能力等方面进行如下分工:学号分工项目付攀20095077显示与处理、显示子程序的编写和调试;标度变换程序的编写调试,辅助整体程序的调试明柯辰20095087键盘扫描程序及各键功能子程序的编写调试,均值滤波程序的编写,辅助报告的完成金智20095084

8、AD 转换程序,初始化 8254、8255、8259 子程序的编写,完成实验报告的编写邱宁20095089主程序的设计,控制算法程序,终端相关的程序设计,PWM 波的生成程序,及整个程序的调试2 模型建立2.1 设计要求 (1)已知参数和设计要求 1.用 PD-32E 实验装置产生 PWM 方波调制直流电机以一定速率选装,认为给一个虚度漂移,霍尔原件测出速度并根据 PID 算法跟踪校正速度漂移。计算机控制技术课程设计32.要求用 LED 或 LCD 实时显示电机速度。3.要求在 10 秒内 PID 算法纠正速率漂移。 (2)实现方法 采用 PD-32E 实验装置实现2.2 设计报告要求1)明确

9、每位组员的详细分工。2)在上述设计主要内容的基础上,本组讨论整理出系统的详细操作说明。3)详细描述自行完善和优化的系统功能以及设计方案。4)给出系统的设计思路和意见、软件设计方案。5)画出各软件模块的程序流程图。6)列出加上必要注释的程序清单。7)每位组员根据自己承担的设计内容和设计过程,写出心得体会。8)所有组员在任务书上签名,将任务书装订在报告首页。计算机控制技术课程设计44 构建系统的器件4.1 8254 定时器/计数器8254 内部有 3 个独立的 16 位计数器,每个计数器有 6 种工作方式,计数的数制可以是二进制数或 BCD 码数,每个计数器允许的最高计数频率 10MHZ。 825

10、4 是 8253 的改进型,因此它的操作方式以及引脚与 8253 完全相同。主要不同点是 8253 的最高计数频率只为 2MHZ,且 8254 比 8253 多了一个读回命令,这个命令可以使 3 个通道的计数值和状态信息都锁存,而这在 8253 中需写入 3个命令。4.1.1 8254 具有以下基本功能1)有 3 个独立的 16 位计数器。2)每个计数器可按二进制或十进制(BCD)计数。3)每个计数器可编程工作于 6 种不同工作方式。4)8254 每个计数器允许的最高计数频率为 10MHz(8253 为 2MHz) 。5)8254 有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄

11、存器的内容。6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值计算公式为: 定时时间=CLK 时钟周期计数初值 N。4.1.2 8254 的工作方式1)方式 0:计数到 0 结束输出正跃变信号方式。 2)方式 1:硬件可重触发单稳方式。3)方式 2:频率发生器方式。4)方式 3:方波发生器。5)方式 4:软件触发选通方式。 计算机控制技术课程设计56)方式 5:硬件触发选通方式。4.1.3 8254 内部寄存器各位的定义及初始化的编程方法8254 的方式控制字和读出控制字共用该寄存器,即使用同一个口地址。其中方式控制字用于设置计数器的工作方式,读出控制字用于设置读出命令。在8253

12、 中该寄存器只用于设置计数器的工作方式。 4.1.4 8254 定时/计数器原理图和发光二极管的驱动原理图4.2 8254 定时器/计数器本实验中使用的核心器件是并口芯片 8255A。8255A 是一种使用单一的+5V电源、40 引脚双列直插式的大规模集成电路芯片。计算机控制技术课程设计64.2.1 8255 的工作方式8255 内部有 3 个 I/O 端口,A 口可以工作在方式 0、方式 1 或方式 2;B 口可以工作在方式 0 或方式 1;C 口可以工作在方式 0。方式 0 是基本型输入/输出。用这种方式和外设交换数据时,8255 端口与外设之间不使用联络线。方式 1 为选通型输入/输出。

13、用这种方式和外设交换数据时,端口和外设之间要有联络信号。方式 2 是双向数据传送,仅 A 口有此功能。当 A 口工作在方式 2 时,B 口仍可以工作在方式 0 或方式 1,但此时的 B 口方式 1 只能用查询方式与 CPU 交换信息。4.2.2 8255 并口模块原理图计算机控制技术课程设计74.3 8259 中断控制器8259A 是可编程的中断控制器。每片 8259A 可以管理 8 个外部中断,通过多片 8259A 的级联最多可以管理 64 个外部中断,8259A 能对它所管理的每个中断源进行单独的允许与禁止,对各中断请求具有多种优先级管理方式;中断响应时能够自动提供中断类型号,通过中断类型

14、号可得到 4 字节(CS:IP)的中断服务程序入口地址。4.3.1 8259 各引脚定义8259A 是 28 引脚双列直插式芯片,各信号引脚与 TTL 兼容,采用+5V 供电。1)数据线,双向三态,可直接与系统数据总线相连。702)片选信号:低电平有效,通常由系统高位地址译码产生。3)地址线:用于 8259A 内部寄存器选择。04)读信号、写信号:低电平有效,用以控制数据总线上的数据流向。5)中断请求线 INT:8259A 向 CPU 或上一级 8259A 输出的重点请求信号。6)中断响应线:CPU 或上一级 8259A 的中断响应信号输入端。7)外部中断请求输入:外部设备的中断请求信号输入端

15、。07计算机控制技术课程设计84.3.2 8259A 的内部结构4.4 AD574 AD574A 是美国模拟数字公司(Analog)推出的单片高速 12 位逐次比较型 A/D 转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的 A/D 转换器,其主要功能特性如下:分辨率:12 位非线性误差:小于1/2LBS 或1LBS转换速率:25us模拟电压输入范围:010V 和 020V,05V 和 010V 两档四种电源电压:15V 和 5V数据输出格式:12 位/8 位计算机控制技术课程设计9芯

16、片工作模式:全速工作模式和单一工作模式 AD574A 的引脚说明:1. Pin1(+V)+5V 电源输入端。2. Pin2()数据模式选择端,通过此引脚可选择数据纵线是 12 位或 8 位输出。3. Pin3()片选端。4. Pin4(A0)字节地址短周期控制端。与端用来控制启动转换的方式和数据输出格式。须注意的是,端 TTL电平不能直接+5V 或 0V 连接。5. Pin5()读转换数据控制端。6. Pin6(CE)使能端。 现在我们来讨论 AD574A 的 CE、和 A0 对其工作状态的控制过程。在 CE=1、=0 同时满足时,AD574A 才会正常工作,在 AD574 处于工作状态时,当

17、=0 时 A/D 转换,当=1 是进行数据读出。和 A0 端用来控制启动转换的方式和数据输出格式。A0-0 时,启动的是按完整 12 位数据方式进行的。当 A0=1 时,按 8 位 A/D 转换方式进行。当=1,也即当AD574A 处于数据状态时,A0 和控制数据输出状态的格式。当=1 时,数据以 12 位并行输出,当=0 时,数据以 8 位分两次输出。而当 A0=0 时,输出转换数据的高 8 位,A0=1 时输出 A/D 转换数据的低 4 位,这四位占一个字节的高半字节,低半字节补零。AD574A 控制端标志意义CEA0工作状态计算机控制技术课程设计105 系统设计思路及总设计方案5.1 关

18、键问题1)解决 PID 控制算法的问题。2)解决 PWM 波的产生的问题。5.2 总设计思路及方案单片机直流电机调速简介:单片机直流调速系统可实现对直流电动机的平滑调速。PWM 是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。在 PWM 驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。0XXXX禁止xXXX禁止100X0启动 12 位转换100X1启动 8 位转换101接+5VX12 位并行输出有效10

19、1接 0V0高 8 位并行输出有效101接 0V1低 4 位并行输出有效计算机控制技术课程设计11硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性。整个测量转速系统为 PD-32E 控制模块、霍尔传感器模块、LED 模块等各个模块都承担着各自的任务。5.3 霍尔元件测速模块当没有信号产生时,可以改变一下磁钢的方向,霍尔对磁钢方向有要求。没有磁

20、钢时输出高电平,有磁钢时输出低电平。霍尔传感器的外形图和与磁场的作用关系如图所示。磁钢用来提供霍尔能感应的磁场,当霍尔元件以切割磁力线的方式相对磁钢运动时,在霍尔输出端口就会有电压输出,所以霍尔传感器和磁钢需要配对使用。霍尔传感器检测转速示意图如下。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率,就可以得出圆盘的转速。同样道理,根据圆盘(车轮)的转速,再结合圆盘的周长就是计算出物体的位移。如果要增加测量位移的精度,可以在圆盘(车轮)上多增加几个磁钢。AD574 利用不同的控制信号,既可实现高精度的 12 位

21、转换,又可作快速的8 位转换。12 位转换后的数据有两种读出方式:12 位一次读出;高 8 位、低 4位分两次读出。ADC 数据输出带有三态缓冲,可直接与 8 位或 16 位的微处理器接口。内部采用快速逐次逼近式 A/D 转换,转换时间为 25us。AD574 有单极性输入和双极性两种模拟输入可供选择使用,在实际应用时,应根据模拟输入信计算机控制技术课程设计12号的性质加以选定,在 PD-32 实验装置已固定为双极性输入。状态输出信号STS,转换时为高电平,转换结束时为低电平,如果 AD574 用于微处理器系统,STS 信号可做为 CPU 的中断请求信号。硬件中断是由 CPU 以外的器件发出的

22、中断请求信号而引发的中断。80486 MPU 只有 2 个引脚(INTR 和 NMI)可以接收外部的中断请求信号,为了管理众多的外部中断源,Intel 公司设计了专用的配套芯片-8259A 中断控制器。8259A 是可编程芯片,一片 8259A 管理 8 级中断源,采用级连方式,两片 8259A 可以管理15 级中断。它内部有一组初始化命令字寄存器,用于存放对 8259 初始化编程时的命令字 ICW1ICW4。8259A 是可编程器件,其工作方式由软件编程决定,它提供的两类命令字分别可以用来完成初始化编程和应用编程。其中 ICW 命令可装入到 8259A 的内部控制寄存器,以确定它用到的中断管

23、理方式或工作模式。经过初始化编程以后,在使用过程中只需使用 OCW 进行应用编程即可。每一片 8255 的,负责其上方的两片数码管。端口 A 输出驱动左边数码管的 ah 阴级段。 端口 B 输出驱动右边数码管的 ah 阴级段。 端口 C 输出驱动两个数码管的共阳极。每个数码管有两个共阳极(分别是第 1、5 脚) ,两个共阳极都接低电平,数码管不显示;第 5 脚阳极接高电平,第 1 脚阳极接低电平,数码管显示红色字符;第 1 脚阳极接高电平,第 5 脚阳极接低电平,数码管显示绿色字符,两个共阳极都接高电平,数码管显示黄色字符。数码管字型编码表如下所示:计算机控制技术课程设计135.4 4*3 小

24、键盘原理图 由一片 74HC245 作为键盘的行扫描电路(键盘的列扫描信号由一片74HC273 提供,如图 2 所示) ,74HC245 的 P0-P3 已经分别接到 4*3 的小键盘的4 行。另外,这片 74HC245 的引脚和 4*3 小键盘行、列都有引出相应的接插口,所以也能另作它用,例如用 74HC245 来驱动发光二极管,或者与适当的输入输出器件(例如 8255)相配合就可以进行键盘扫描实验。该片 74HC245 的/G 端引了出来(KEYCS0)作为它的片选信号端。硬件连接说明:1.小键盘的 P0P3 口连接第四片 8255 的 C0C3 口; Q0Q2 口连接 A0A2口;2.

25、占空比输入接第四片的 PB7 口;8259 的 INTP 接 INTR1 口;3.8254A 的 OUT0 接 8259 的 IRQ0;CLK0 接 47K;CS 接 CS1;GATE0 接+5V;5.5 主程序设计将人为设定的直流电机转速值,与测速电路得到的直流电机转速值(反馈量)进行比较,其差值经过 PID 运算,将得到控制量并产生 PWM 脉冲,通过驱计算机控制技术课程设计14动电路控制直流电机的转动,构成直流电机闭环调速控制系统。 在 PWM 驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占

26、空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。设电机始终接通电源时,电机转速最大为 Vmax,设占空比为 D= t1 / T,则电机的平均速度为 Va = Vmax * D,其中 Va 指的是电机的平均速度;Vmax 是指电机在全通电时的最大速度;D = t1 / T 是指占空比。由上面的公式可见,当我们改变占空比 D = t1 / T 时,就可以得到不同的电机平均速度 Vd,从而达到调速的目的。本设计中采用软件延时方式对脉冲宽度进行控制 ,PWM 模式被用于产生一个连续的占空比可调的方波信号。脉冲宽度调制通过比较 PCA 定时器的低字节(CL)和比较寄存器的低字节(CCAPnL

27、)产生 8 位 PWM 脉冲。当 CL0?Set_data变量放入AX寄存器Ax中变量减100将Ax中的变量放回Set_data中压栈是Set_data变量置为0否转转速速步步减减子子程程序序计算机控制技术课程设计23开始压栈将控制标志置为1弹栈压栈将控制变量置为0结束开始结束将控制标志置为0弹栈控控制制启启动动子子程程序序控控制制停停止止子子程程序序Set_data变量放入AX寄存器Ax中变量加100开始结束将Ax中的变量放回Set_data中压栈 Set_data5000?Set_data变量置为5000是否转转速速步步进进子子程程序序开始寄存器压栈将adnum中数据乘上1221将上步中数

28、据除上1000寄存器弹栈余数是否小于501将所得商加1结束否所得的商放在check_num单元中是标标度度变变换换1计算机控制技术课程设计24开始寄存器压栈初始化各变量初始化8254,8255,8259装填中断向量寄存器弹栈结束初初始始化化程程序序开始寄存器压栈将set_data中数据除以100放在setdata1中将chenk_num中数据除以100放在checknum11中寄存器弹栈结束标标度度变变换换2开始调用初始化子程序调用均值滤波子程序调用标度转换子程序1调用标度转换子程序2调用显示预处理子程序调用显示子程序控制标志是否有效调用控制算法子程序调用键盘扫描子程序是否主主程程序序计算机控

29、制技术课程设计25开始向ad574地址虚写数据在该地址读回数据放到ax中将无效的高四位清零后存到addata中寄存器压栈寄存器弹栈结束AD转转换换开始寄存器压栈acount1单元中数据自加1acount1中数据是否小于50将acount1清零否将acount清零acount是否小于100将acount加1acount是否大于kongzhi向8255a口输出全0向8255a口输出全1向8255写20h结束命令寄存器弹栈结束否否是是是中中断断子子程程序序清零变量adres和addata开始寄存器压栈Cx中放入16调用ad转换子程序将addata数据累加到adres中cx=cx-1Cx=0?Adre

30、s中数据右移4位,结果放入adnum寄存器弹栈是否结束均均值值滤滤波波计算机控制技术课程设计26开始寄存器压栈将设定数据减去实测数据的差放到ax中是否为正将偏差加到errdata单元(积分作用)Ah是否小于-3Ah是否大于3偏差数据乘上系数(比例作用)再加上errdata中数据放入控制变量中寄存器弹栈结束否是否否是是PI控控制制程程序序计算机控制技术课程设计27附 2:程序清单.486;数据段定义;DATA SEGMENT USE16 ORG 1000HCTRL_8255 EQU 20CHPORTA EQU 200HPORTB EQU 204HPORTC EQU 208HAD_574 EQU

31、300HADDR0 EQU 340HADDR1 EQU 348HINTQ EQU 40HCTRL_8254 EQU 32CHK_SET1 EQU 800K_SET2 EQU 2 ACOUNT DW ? ADDATA DW ? ADRES DW ?ADNUM DW ?CHECK_NUM DW ?CHECKNUM1 DB ?;显示用CHECKNUM2 DW ?KONGZHI DB ? ERRDATA DW ? SET_DATA DW ?SETDATA1 DB ? ;显示用SETDATA2 DW ?CTFLAG DB ?ACOUNT1 DB ?DATA ENDSCODE SEGMENT USE16

32、ASSUME CS:CODE,DS:DATA ORG 3000HBEG:JMP START TAB DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;显示字形码计算机控制技术课程设计28DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH DISP_CODE_BUF DB ?,?,?,?,?,?,?,?,0FFH,0FFH ;主程序部分;START:MOV AX,DATA MOV DS,AX MOV ES,AX CALL CHUSHIHUASA1: SA2: CALL CY16 ;均值滤波程序 CALL VTRANS ;标度变换 1 CALL S

33、HUJUCHULI ;(已失去作用) CALL PRE_DISP ;显示预处理程序 CALL DISP ;显示程序 CMP CTFLAG,0 ;比较控制表示是否无效 JE A11 ;无效跳转 CALL ZHUANHUAN ;执行标度变换 2 CALL CT ;执行控制算法程序A11: CALL SCANKEY ;执行键盘扫描子程序 JMP SA1 ;循环执行;键盘扫描程序;SCANKEY PROC PUSHA KSCAN: MOV BL,0FBH ;从最右列开始扫描NXTCOL: MOV AL,BL MOV DX,20BH ;送出列信号 OUT DX,AL MOV DX,20BH ;读入行信号

34、 IN AL,DX AND AL,0F0H CMP AL,0F0H计算机控制技术课程设计29 JNZ FNDKEY ;有键按下即跳转 ROR BL,1 ;列信号右移 JC NXTCOL JMP KSCAN1 FNDKEY: SHL BL,4 SHR AL,4 OR BL,AL ;形成键特征值 CALL DLYS CALL DLYS KEYUP: MOV AL,0 MOV DX,20BH ;送出列信号 OUT DX,AL MOV DX,20BH ;读入行信号 IN AL,DX AND AL,0F0H CMP AL,0F0H JNZ KEYUP ;等待按键松开 CTSTART: ;调用启动控制功能

35、 CMP BL,0EEH JNE STOP CALL KONGZHISTART JMP KSCAN1 STOP: ;调用停止控制功能 CMP BL,0DEH JNE BUJIN CALL KONGZHISTOP JMP KSCAN1 BUJIN: ;调用步进功能 CMP BL,0EBH JNE BUJIAN CALL CTBUJIN JMP KSCAN1 BUJIAN: ;调用步减功能 CMP BL,0DBH JNE KSCAN1 CALL CTBUJIAN KSCAN1: POPA RETSCANKEY ENDP计算机控制技术课程设计30 KONGZHISTART PROC ;启动控制 PU

36、SHA MOV CTFLAG,1 POPA RETKONGZHISTART ENDP KONGZHISTOP PROC ;停止控制 PUSHA MOV KONGZHI,0 MOV CTFLAG,0 POPA RETKONGZHISTOP ENDPCTBUJIN PROC ;转速步进 PUSHA MOV AX,SET_DATA ADD AX,100 MOV SET_DATA,AX CMP SET_DATA,5000 JBE CTBEND MOV SET_DATA,5000 CTBEND:POPA RETCTBUJIN ENDPCTBUJIAN PROC ;转速步减 PUSHA CMP SET_D

37、ATA,0 JBE PJ1 MOV AX,SET_DATA SUB AX,100 MOV SET_DATA,AX POPA RET PJ1: MOV SET_DATA,0 POPA RET CTBUJIAN ENDP 计算机控制技术课程设计31DLYS PROC ;延时子程序 PUSHA MOV CX,0FFHDLYS_AGN: NOP LOOP DLYS_AGN POPA RETDLYS ENDP ;ad 转换子程序;AD_IN PROC PUSHA MOV DX,AD_574 ;向 ad574 虚写 OUT DX,AL MOV CX,20HLOO1: NOP LOOP LOO1 IN AX

38、,DX AND AX,0FFFH ;只保留低 12 位 MOV ADDATA,AX POPA RETAD_IN ENDP;均值滤波子程序;CY16 PROC PUSHA MOV ADRES,0000 mov addata,0 MOV CX,16 ;循环调用 16 次 ad 转换程序,结果累加至 adres 单元ADST: CALL AD_IN MOV AX,ADRES ADD AX,ADDATA MOV ADRES,AX LOOP ADST SHR AX,4 ;右移 4 位即除以 16计算机控制技术课程设计32 MOV ADNUM,AX POPA RETCY16 ENDP;数据转换程序(实际未

39、使用);ZHUANHUAN PROC PUSHA MOV AL,SETDATA1 MOV DL,60 MUL DL MOV SETDATA2,AX MOV AL,CHECKNUM1 MOV DL,60 MUL DL MOV CHECKNUM2,AX POPA RETZHUANHUAN ENDP;控制算法程序;CT PROC NEAR ; PUSHA MOVZX AX,SETDATA1;5 MOVZX DX,CHECKNUM1;0 MOV CX,ERRDATA SUB AX,DX JNS CT0 ;为正数跳转 CMP AH,0FCH ; 与-3 比较 JS CT2 ;小于-3 跳转(不积分) J

40、MP CT1 CT0: CMP AH,03 ;与 3 比较 JNS CT2 ;大于 3 跳转(不积分) CT1: ADD CX,AX ;积分过程 MOV ERRDATA,CX CT2: MOV DX,K_SET1 ;比例过程 IMUL DX ADD AX,CX计算机控制技术课程设计33 MOV KONGZHI,AH ;ADD AX,CX ; MOV KONGZHI,AX CT3: POPA RETCT ENDP ;标度变换 1(结果为真实值 x100);VTRANS PROC PUSHA MOV AX,ADNUM MOV CX,1221 MUL CX MOV CX,1000 DIV CX CM

41、P DX,501 JB ENDV INC AX ENDV:MOV CHECK_NUM,AX POPA RETVTRANS ENDP;显示预处理(字码转换);PRE_DISP PROC NEAR ;显示值转换成显示字型码子程序PUSHALEA SI, DISP_CODE_BUF ;取显缓区指针LEA BX,TABMOVAL,SETDATA1 ;MOV AH,0计算机控制技术课程设计34MOV CL,10DIV CL XLAT TABMOV SI, AL ;存设定值个位字型码INC SIMOV AL,AHXLAT TABMOV SI,AL ; ;存设定值十位字型码 INC SI MOV AL,0B

42、FH MOV SI,AL INC SI MOV SI,AL INC SI MOV AL,CHECKNUM1 ;拆分待显数据 MOV AH,0 MOV CL,10 DIV CL XLAT TAB ;得到个位字型码 MOV SI,AL ; 保存个位字型码 INC SI ; 指向下一位存储单元 MOV AL,AH XLAT TAB MOV SI,AL POPA RET PRE_DISP ENDP ;显示程序;DISP PROC NEAR PUSHA CMP ACOUNT1,9 JNE DIS1 LEA SI,DISP_CODE_BUF MOV DX,200H MOV CX,3 DIS: MOV AL,SI OUT DX,AL ;A 口显示计算机控制技术课程设计35 INC SI MOV AL,SI ADD DX,4 OUT DX,AL ;B 口显示

温馨提示

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

评论

0/150

提交评论