[工学]微机原理之风扇报告

上传人:1888****888 文档编号:37899858 上传时间:2021-11-05 格式:DOC 页数:35 大小:261.70KB
收藏 版权申诉 举报 下载
[工学]微机原理之风扇报告_第1页
第1页 / 共35页
[工学]微机原理之风扇报告_第2页
第2页 / 共35页
[工学]微机原理之风扇报告_第3页
第3页 / 共35页
资源描述:

《[工学]微机原理之风扇报告》由会员分享,可在线阅读,更多相关《[工学]微机原理之风扇报告(35页珍藏版)》请在装配图网上搜索。

1、第一章微机应用系统课程设计的目的意义1.1 课程在教学计划中的地位和作用微机应用系统设计与综合实验课程是测控技术专业本科生必修的一门技术基础课程。本课程设计任务是继微型计算机原理与接口技术这门课程后的一个实践环节。是在学生基本学完该课程时的一次集中式的综合设计,它对于学生深刻理解微机原理和接口技术起着重要的作用。在微型计算机原理与接口技术这门课程联系较多的是数字逻辑与计数、译码、信号缓冲、锁存、总线驱动扩展等内容,且着重应用微机系统的组成、时序、中断、接口技术与汇编语言程序设计。而通过该课程设计的学习使学生对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计

2、方法。1.2 设计任务的目的与意义充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。通过课程设计进一步锻炼同学们在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最

3、终到达胜利的彼岸。本设计的目的在于全面消化已学的相关课程内容。深刻理解微机原理与接口技术课程的内涵。为此,主要应完成的任务是:从硬件的角度掌握微机的组成,接口部件的结构和彼此之间的联系,从软件的角度理解和应用微机系统的运行机制。第二章家用风扇控制器的设计任务2.1 家用风扇控制器设计要求1.设计内容设计一个家用风扇控制器。控制器面板为:按钮三个,分别为风速、类型和停止,LED指示灯六个,指示风速强、中、弱,类型为睡眠、自然和正常。电扇处于停转状态时,所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。电扇处于工作状态时,有:(1) 初

4、始状态为:风速-“弱”,类型-“正常”;(2) 按“风速”键,其状态由“弱”“中”“强” “弱” 往复循环改变,每按一下按键改变一次;(3) 按“类型”键,其状态由“正常”“睡眠”“自然”“正常” 往复循环改变;风扇风速的弱、中、强对应于电扇的转动由慢到快。风扇类型的不同选择,分别为:(1) 正常电扇连续运转;(2) 自然电扇模拟自然风,即转4s,停8s;(3) 睡眠电扇慢转,产生轻柔的微风,运转 8s,停转8s;按照风速与类型的设置输出相应的控制信号。2.设计要求设计出电路原理图,说明工作原理,编写程序及程序流程图。并能在实验平台上进行运行模拟,能实现任务的功能要求的。2.2 课题任务的认识

5、本次课程设计任务主要模拟家用风扇的各种功能,设计一种控制器能实现对各种功能的控制,在风扇任意时刻运行时都对其实现各种功能的切换,充分体现其的可控制性。在基本的弱电环境下的各种芯片实现对强电的控制的一种典型实例。利用汇编语言与硬件结合,在各种基本的接口芯片实时通信,接收对应的按键信号,再基于硬件的基础用汇编语言实现各种逻辑关系转换而输出相应的控制信号从而实现各种功能的控制与转换。2.3 总体设计思想本次课程设计任务主要基于8086以及各种接口芯片结合汇编语言实现对家用风扇的控制器的模拟。我主要运用8086CPU结合汇编语言编写的软件来实现各种信号的处理与变换,以得到想要的控制信号,并用接口芯片8

6、255A实现信号的输出与接收。在模拟中通过开关来实现各种控制信号的输入,再通过8255的端口进行读取,再由8086通过软件的对采入的信号进行辨别进而转入到相应的功能子程序中以实现各种功能。在各种功能的背后,通过8086驱动相应功能的硬件设备实现各种功能的切换。具体设计设计,我想采用8255A来接收开关信号,驱动风扇的转动信号输出,并接收8253产生的控制信号。8253主要来实现各种风种的控制信号,以得到自然、睡眠的类型风。硬件设计框图如图2-1所示。2.4 功能扩展此任务控制器已基本实现所有风扇控制功能,而现在几乎所有的风扇都能实现定时功能,故可以扩展定时功能在控制器的设计中以达到全面的控制。

7、在风扇控制的停止后,后续状态任务上未作要求,我在对其在设计上,能在停止后处在等待状态,当且仅当有风速键按下后,控制器可恢复继续控制风扇的运行,实现控制器的循环控制。 8086CPU82538255A风扇驱动信号读取控制控制信号按键开关图 2-1 硬件设计框图第三章 预备知识3.1 风扇速度控制方法脉宽调制法(PWM) 脉冲宽度调制法(PWM)是将风扇电源的开关频率设为固定值,通过改变其占空比来调节风扇速度的方法。占空比越大,风扇速度越快。这种控制方式的关键在于选择合适的开关频率,如果频率太低,风扇速度将会随PWM周期而振荡。相反,如果频率过高,风扇内部的换向整流电路会断开风扇加速/减速电路的电

8、源而导致风扇停转。一般的频率范围是20Hz160Hz。另外,PWM的上升和下降时间要足够慢,以保证风扇的长期稳定。PWM控制方式的优点是驱动电路简单,有很好的启动特性,晶体管热量耗散小等。缺点是增加了风扇的应力,不便使用速度报警传感器,而速度报警传感器与电机使用同一电源供电,如电机电源以20Hz160Hz频率接通或断开,则传感器也会随之关断或开启,从而失去应有的检测功能。在PWM控制方法中,风扇的电压为额定值(例如12V风扇中的12V电源)或零电压,但由于风扇没有满负荷运转,因而它的反向电动势就会减少,这将导致PWM导通期间的电流可能会大于正常值。虽然风扇的设计使共能够处理较大的电池,但在风扇

9、启动阶段,电流将每秒增加30倍,这将对风扇的可靠性产生很大影响。尽管如此,PWM仍然是低成本应用的理想选择。3.2 步进电机的控制原理1.步进电机的速度控制及运动规划步进电机区别于其他控制用途电机的最大特点是,它可接受数字控制信号(电脉冲信号)并转化成与之相对应的角位移或直线位移,因而本身就是一个完成数字模拟转化的执行元件。而且它能进行开环位置控制,输入一个脉冲信号就得到一个规定的位置增量。这样的增量位置控制系统与传统的直流伺服系统相比,其成本明显降低,几乎不必进行系统调整。因此,步进电机广泛应用于数控机床、机器人、遥控、航天等领域,特别是微型计算机和微电子技术的发展,使步进电机获得更为广泛的

10、应用。2. 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图3-1是该四相反应式步进电机工作原理示意图。图 3-1步进电机开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿 之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依

11、次类 推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图3-2中a、b、c所示。a. 单四拍 b. 双四拍 c八拍图3-2 步进电机工作时序波形图3.步进电机的速度特性步进电机的转速取决于脉冲频率、转子齿数和拍数。其角速度与脉冲频率成正比,而且在时间上与脉冲同步。因而在转子齿数和运行拍数一定的

12、情况下,只要控制脉冲频率即可获得所需速度。由于步进电机是借助它的同步转矩而启动的,为了不发生失步,启动频率是不高的。特别是随着功率的增加,转子直径增大,惯量增大,启动频率和最高运行频率可能相差10倍之多。为了充分发挥电机的快速性能,通常使电机在低于启动频率下启动,然后逐步增加脉冲频率直到所希望的速度,所选择的变化速率要保证电机不发生失步,并尽量缩短启动加速时间。为了保证电机的定位精度,在停止以前必须使电机从最高速度逐步减小脉冲率降到能够停止的速度(等于或稍大于启动速度)。因此,步进电机拖动负载高速移动一定距离并精确定位时,一般来说都应包括“启动加速高速运行(匀速)减速停止”五个阶段,速度特性通

13、常为梯形,如果移动的距离很短则为三角形速度特性,如图3-3所示。图3-3 步进电机的速度曲线3.3 所用到的芯片及其各自功能说明这个任务主要是实现开关信号的处理以及对相应功能信号的输出控制,软件编程稍微占主要的设计部分,故而芯片用的较少。芯片合部分硬件设备如下表3-1所示。表 3-1 芯片和部分硬件设备列表型号或名称数量Intel 80861片8255A1片82531片步进电机1个开关4个步进电机驱动电路1套3.3.1 8086功能简介1. 概述Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。8086 CPU有20条地址线,可直接寻址1MB的存

14、储空间,每一个存储单元可以存放一个字节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有一个惟一的地址与之对应,其地址范围用十进制表示为01048575,用十六进制表示为00000HFFFFFH。Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位单元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。 Intel

15、8086有四个内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针 (如C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。 8086处理器的时钟频率介于4

16、.77MHz(在原先的IBM PC)和10 MHz之间。 8086 没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。8086CPU有一组强有力的指令系统,内部有硬件乘除指令及串处理指令,可对多种数据类型进行处理。8086CPU与8位CPU8080向上兼容。处理能力比8080高十倍以上,而相同任务程序代码长度可缩短20%。8086CPU可与8087协处理器及8089输入/输出处理器构成多机系统,以提高数据处理及输入/输出能力。2. CPU工作于最小模式中部分引脚信号定义(1) AD15 AD0(Address Data Bus):地址/数据总线,双向,三态。 这

17、是一组采用分时的方法传送地址或数据的复用引脚。根据不同时钟周期的要求,决定当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻状态。(2) (Read)读选通信号,三态,输出,低电平有效信号低电平有效时,表示CPU正在进行读存储器或读I/O端口的操作(3) (Write)写选通信号,三态,输出,低电平有效信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作(4) (Memory/Input and Output)存储器或I/O端口控制信号,三态,输出信号为高电平时,表示CPU正在访问存储器,为低电平时,表示CPU正在访问

18、I/O端口。(5) INTR(Interrupt Request)可屏蔽中断请求信号,输入,电平触发或边沿触发,高电平有效CPU在每条指令周期的最后一个时钟周期检测此信号,一旦检测到此信号有效,并且中断允许标志位IF=1时,CPU在当前指令执行完后,转入中断处理程序。用STI指令,可使中断允许信号标志位IF置“1”,用CLI指令可使IF置“0”,从而可实现中断屏蔽。3. 8086指令系统按功能分类,8086的指令共有六大类,它们是:数据传送指令、算术运算指令、逻辑运算和移位指令、字符串处理指令、控制转移指令以及处理器控制指令。常用指令简介:(1) MOV 传送指令(Move)指令格式: MOV

19、目的,源指令功能:将源操作数(一个字或一个字节)传送到目的操作数(2) IN输入指令(Input)指令格式: IN AL,端口地址或 IN AX,端口地址 IN AL,DX ;端口地址存放在DX寄存器中或 IN AL,DX指令功能:输入指令用来从指定的外设寄存器取信息送入累加器。(3) OUT输出指令(Output)指令格式: OUT AL,端口地址或 OUT AX,端口地址 OUT AL,DX ;端口地址存放在DX寄存器中或 OUT AL,DX指令功能:输出指令用来把累加器的内容送往指定的外设存储器当端口地址大于FFH时,必须使用第二种寻址方式,即先将端口号送入DX寄存器,再执行操作。(4)

20、 CMP比较指令(Compare)指令格式:CMP目的,源指令功能:两个操作数相减,不产生运算结果,仅影响标志,接着可用条件跳转指令决定程序去向(5)JMP无条件转移指令指令格式:JMP目的指令功能:使程序无条件的转移到指定的地址去执行3.3.2 8255A功能简介 1. 8255特性一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3)。A组可设置为基本的I/O口,闪

21、控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。A0,A1为地址选择线,用来选择8255的PA口、PB口、PC口和控制寄存器。当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1,A1=1时,控制寄存器被选择。2. 8255A的控制字8255A 有两类控制字:一类控制字用于定义个端口的工作方式,称为方式选择控制字;另一类控制子用于C端口的任意一位进行置位或复位操作,称为置位复位控制字。(1) 方式选择控制字8255A具有三种基

22、本工作方式,在对8255A进行初始化编程时,应向控制字寄存器写入方式悬着控制字,用来规定8255A各端口的工作方式。方式0基本输入输出方式方式1选通输入输出方式方式2双向总线I/O方式 A口:可工作于方式0,1,2任何一种B口:只能工作于方式0,1(不能为方式2)C口:分成双4位,可基本I/O,还可输出A,B口控制信号,输入A,B的状态。 方式选择控制字的格式如图3-4所示。D7 D6 D5 D4 D3 D2 D1 D0C口低四位I/O1 输入0 输出B口I/O1 输入0 输出C口高四位I/O1 输入0 输出A口I/O1 输入0 输出B口方式0 方式01 方式1A口方式0 方式01 方式1D7

23、=1标志位图 3-4 8255A方式选择控制字的格式(2) 置位复位控制字C口的数位常用来产生控制信号(如应答式数据传送中断请求信号)或其他应答信号,可通过置位复位控制字来使端口C的任一位引脚的输出单独置“1”或置“0”。置位复位控制字的格式如图3-5所示。D7 D6 D5 D4 D3 D2 D1 D0位选择000 选中PC0001 选中PC1.111 选中PC7D7=0标志位任意值1 置位0 复位图 3-5 8255A置位复位控制字的格式3.3.3 8253功能简介1. 基本原理概述 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都

24、决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,最

25、大计数值是FFFFH, 采用BCD码计数时。 最大计数值是9999。与此计数器相对应, 每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。2. 8253的控制字8253有六种工作方式简介如表3-2所示。表 3-2 8253方式简介方式0计数结束中断方式方式1可编程单稳态输出方式方式2比率发生器(分频器)方式3方波发生器(输出对称方波)方式4软件触发选通方式5硬件触发选通每个通道都可独立进行这六种工作方式互不影响,用8253时需对所用8253的通道进行初始化编程以确定气的工作方式。初始化编程通过控制字来确定其的工作方式。控制字格式如图3-6所示。SC1 SC0 RL1 RL0 M2

26、M1 M0 BCDD7 D6 D3 D4 D3 D2 D1 D0通道选择:读/写操作:工作方式选择:00 通道001 通道110 通道211 无效00 计数器锁存,供CPU读01 只读/写计数器低字节10 只读/写计数器高字节11 先读/写计数器低字节, 后读/写高字节000 方式0001 方式1*10 方式2*11 方式3100 方式4101 方式51 BCD计数0 2进制计数图 3-6 8253控制字格式第四章硬件设计4.1 硬件设计基本概要根据设计要求和内容,用可编程并行接口芯片8255A PC口低四位接收4个按键(分别表示风速、风种、定时、停止)的状态以启动电扇或设置相应的工作状态。这

27、样就需要4个按键,因此可以用实验箱上的某一列的4个按键,可以将此列的列选择线直接接为低电平,4个行输入线接到8255的口。这样可以直接从8255的口读取按键的状态,从而执行相应的操作。要通过一个按键来控制2个以上的状态,可以通过按键的次数来控制第几种状态,比如风速有三种状态(弱、中、强),可以用按键1次控制弱,按键2次控制中,按键3次控制强,这样就可以实现一键控制多钟状态了。控制器的指示灯,利用3个七段字符显示器进行显示,分别显示风速、类型、定时三个指示信号。显示模块代码状态表示如下表4-1所示。表4-1 显示模块代码状态表示按键状态相应七段字符显示器显示的代码风速弱1中2强3类型正常1自然2

28、睡眠3定时定时8秒1定时16秒2定时32秒3用实验箱上的四相步进电动机作为电风扇,其转速可用PWM控制方法,通过改变其驱动电平的频率来改变步进电机的速度。利用8255A的PB口对步进电机进行四相四拍驱动。风种及定时的时间控制可由可编程计数器/定时器 8253来实现。可选用由8253工作方式3,在这种方式下,当CPU输入控制字后,输出将为高,在写入计数值后计数器将立即自动对输入时钟CLK计数,计数器减为1时,输出将变低,方式2时8253不可用重新设置计数值就能连续工作,保证了定时的精确。4.2 8255A设计8255A的PC口的低四位工作在方式0的基本输出方式,作为8253的门控信号来控制825

29、3是否需要计数,PC0控制8253通道0的门控信号,PC1控制8253通道1的门控信号, PC2控制8253通道2的门控信号。高四位工作在方式0的基本输入方式用来接收四个开关的开关信号,PB口作为四相步进电机的四相线路输出电路用来驱动步进电机的转动,工作在方式0的基本输出方式。8255A的PA口工作在方式0的基本输入方式作为控制信号的输入,接收8253的信号来控制步进电机的转动与停止。4.3 8253设计首先利用通道0对时钟进行分频,已获得可较好利用的时钟,得到周期为八秒的方波为后面能自然和睡眠的状态产生四秒高电平八秒低电平以及周期为十六秒的方波做准备。通道1用来产生类型风的状态信号,在自然风

30、类型时,让其工作在方式2产生四秒高电平八秒低电平,让8255A的PA口PA0接收,当高电平时驱动步进电机转动,低电平则停止以实现自然风的模拟;在睡眠的类型时,通道1工作在方式3产生周期为十六秒的方波,让8255A的PA口PA0接收,当高电平时驱动步进电机转动,低电平则停止以实现睡眠风的模拟。通道2用来实现定时的功能,在定时的功能时初始化其工作在方式4,在计数的时候为高电平,当计数完后,输出一负脉冲结束定时停止风扇转动,让8255A的PA口PA1接收,当高电平时驱动步进电机转动,低电平则停止,可通过改变其的计数初值来实现不同时间长度的定时。4.4 风扇控制器系统硬件原理图如图4-1所示。图4-1

31、 风扇控制器系统硬件原理图第五章 软件设计 硬件的设计完成后,运用汇编语言编写软件部分通过8086CPU实现各种信号的输入/输出以及相关信号的处理,从而控制步进电机的各种转态的转换控制。软件设计主体流程图如图5-1所示。开始初始化8255A ,8253是否有风速键按下N初始化风速-“弱”,类型-“正常”风扇运行控制模块是否有键按下N是风速键按下风速控制模块序是类型键按下类型控制模块序是定时键按下定时控制模块序YYYYN是停止键按下停止控制模块序YNNNY图5-1风扇控制器软件总流程图5.1 风扇运行控制模块 此模块主要控制步进电机的转动以及住转速,亦是整个控制器的主控部分。实现风扇各种功能的“

32、CPU”。其中主要部分是驱动电机转动的子程序,每次依次对四相电路驱动一次,由于8086处理速度非常快在肉眼看不来电机有微停抖动的情况,步进电机就是在连续的转动。对步进电机转动需要判断两个控制信号,一个是类型信号PA0另一个是定时信号PA1,当两者都是高电平时才去驱动步进电机转动。风扇运行控制模块流程图如图5-2所示:PA0是高电平PA1是高电平驱动步进电机显示当前状态NNYY停止控制模块风扇运行模块子程序子程序返回图5-2 风扇运行控制模块流程图5.2 按键判断控制模块常用风扇开关是弹簧式,但平台上是单刀单掷的开关,若用常用方法判断其是高电平(或低电平)每次拨完开关后需对开关拨回原来的状态下次

33、才能正常拨动开关,相当不方便。我采用另一种判断方法,每次有按键按下后后保存他们的开关状态当下次有开关状态变化时就可以知道有按键按下进行按键判断。首先判断上一次的开关状态与此次检测的状态是否相同,不同则分别判断四个开关状态是否变化,若有就转入相应的子模块中。 按键判断控制模块流程图如图5-3所示。开关状态是否变化保存此次开关状态风速开关状态变化停止开关状态变化定时开关状态变化类型开关状态变化NNNNNY风速控制模块YYY类型控制模块定时控制模块停止控制模块开关模块子程序Y子程序返回图 5-3 按键控制模流程图5.3 风速控制模块 此次任务中家用风扇我用了步进电机进行模拟,步进电机的速度控制运用P

34、WM方法,通过改变频率来实现速度控制。在软件编程中,通过8255A的PB口输出驱动步进电机,通过改变单拍输出的延时时间来改变速度,延时越短速度越快。在设计中,置一数据BUF1单元保存延时时间,不同的速度选择时,置不同数据来改变延时的长短从而实现速度的控制。另置一数据单元BUF2保存当前风速状态,BUF2在1、2、3之间循环,分别代表弱、中、强并作为状态数据显示。风速控制模块流程图如图5-4所示。BUF2为弱风状态BUF2加1BUF2为中速状态BUF2为强风状态BUF1置弱风延时时间数据BUF1置中风延时时间数据BUF1置强风延时时间数据 BUF2清零YYYNNN风速控制模块子程序子程序返回图5

35、-4风速控制模块流程图5.4 类型控制模块类型的控制主要运用8253来产生各种状态波形信号,通过检测信号的高低电平来控制步进电机的运转。此模块主要来初始化8253通道1的工作状态。在数据段中置一数据单元BUF3来存储类型的状态数据,BUF3在1、2、3之间循环分别代表类型中的正常、自然以及睡眠三种类型并作为状态数据显示。类型控制模块流程图如图5-5所示。BUF3为正常状态BUF3加1BUF3为自然状态BUF3为睡眠状态PC0、PC1、PC2输出0 ,8253所有通道门控置0PC0、PC1输出1通道2初始化工作在方式2PC0、PC1输出1通道2初始化工作在方式3 BUF3清零YYYNNN类型控制

36、模块子程序子程序返回图5-5类型控制模块流程图5.5 定时控制模块定时也是通过8253产生控制信号来控制,通过8253的通道2工作在方式4实现定时,在定时完后会在风扇运行控制模块中转到停止模块中。在数据段中置一数据单元BUF4来存储定时类型的状态数据,BUF4在1、2、3之间循环分别代表类型中的8秒、16秒以及32秒三种类型并作为状态数据显示。定时控制模块流程图如图5-6所示。BUF4为8S状态BUF4加1BUF4为16S状态BUF4为32S状态PC5输出1 ,初始化通道38S的计数初值PC5输出1 ,初始化通道316S的计数初值PC5输出1 ,初始化通道332S的计数初值BUF4清零YYYN

37、NN定时控制模块子程序子程序返回图5-6定时控制模块流程图5.6 停止控制模块停止状态主要实现风扇暂时性的停止运行,在某个键按下后又能继续运转。按要求只有在风速键按下才能继续运行。此模块主要对已运行的风扇停止后所有状态进行清零,以保证再次运行后能按初始状态运行。停止模块流程图如图5-7所示。BUF1、BUF2、BUF3、BUF4清零PC0、PC1、PC2输出为08253所有通道门控清零停止模块子程序子程序返回图5-7停止控制模块流程图5.7 源程序及说明 课程设计的运行是在DVCC实验平台上实现,由于DVCC试验平台的部分限制,如8253只有两个通道,8255只有B口和C口,故在实际设计运行的

38、时候对原方案做了微小的改动。在定时功能上只有正常类型风的定时,并作为一单独风扇控制模块。类型模块做为另一单独风扇运行控制模块。说明:DS:077AH存储延时时间控制步进电机速度DATA0存储当前状态显示数据DATA存储当前状态类型数据源程序:35CODES SEGMENT ASSUME CS:CODES;8253端口地址IOCON8253 EQU 43H IO08253 EQU 40H IO18253 EQU 41H IO28253 EQU 42H ;8255端口地址IOCON8255 EQU 0FF2BH IOB8255 EQU 0FF29H IOC8255 EQU 0FF2AH ORG 1

39、000HSTART: MOV CS:DATA0,0H MOV CS:DATA01,0H MOV CS:DATA02,0H;8255初始化MOV AL,10000011B MOV DX,IOCON8255 OUT DX,AL;按键状态数据 MOV WORD PTR DS:077AH,09FFH;控制器启动程序;判断是否是风速按键按下QD: MOV DX,IOC8255 IN AL,DX CMP AL,01 JNE QD MOV BYTE PTR DS:077CH,01H JMP STYLEPRO;检查是否有键键入CHECK: MOV DX,IOC8255 IN AL,DX AND AL,0FH

40、CMP AL,BYTE PTR DS:077CH;没有则跳出返回JZ CHECKOUT ;判断输入键的类型MOV AH,AL MOV BL,BYTE PTR DS:077CH MOV BYTE PTR DS:077CH,AL MOV BH,BL AND BL,01H AND AL,01H XOR AL,BL;风速选择键键入JNZ SPEEDPRO MOV AL,AH MOV BL,BH AND BL,02H AND AL,02H XOR AL,BL;风类型选择键键入JNZ STYLEPRO MOV AL,AH MOV BL,BH AND BL,04H AND AL,04H XOR AL,BL;

41、定时选择键键入JNZ L1 MOV AL,AH MOV BL,BH AND BL,08H AND AL,08H XOR AL,BL;停止键键入JNZ L2 L1: JMP TIMEPRO L2: JMP PAUSEPRO CHECKOUT: RET;风速选择程序模块SPEEDPRO: MOV AL,CS:DATA ADD AL,1 MOV CS:DATA,AL MOV AL,CS:DATA CMP AL,1 JZ L CMP AL,2 JZ MID ;强风MOV CS:DATA,0MOV WORDPTRDS:077AH,00FFHMOV CS:DATA0,03HJMP BACK;弱风 L:MO

42、V WORD PTR DS:077AH,09FFH MOV CS:DATA0,01H JMP BACK;中风MID:MOVWORD PTR DS:077AH,04FFH MOV CS:DATA0,02H JMP BACK BACK:JMP CHECKOUT;类型选择程序模块STYLEPRO: MOV CS:DATA02,0H MOV AL,CS:DATA1 ADD AL,1 MOV CS:DATA1,AL MOV AL,CS:DATA1 CMP AL,1 JZ NORMAL CMP AL,2 JZ NATURAL MOV CS:DATA1,0 JMP SLEEP ;正常NORMAL: MOV

43、CS:DATA01,01H NORMAL_R: CALL DISP CALL RUN CALL CHECK JMP NORMAL_R ;自然NATURAL: CALL FORMAT8253_NATURAL MOV CS:DATA01,02H NATURAL_R: CALL DISP MOV DX,IOB8255 IN AL,DX TEST AL,1 JNZ N_GO JMP N_CHECK N_GO:CALL RUN N_CHECK: CALL CHECK JMP NATURAL_R ;睡眠SLEEP: CALL FORMAT8253_SLEEP MOV CS:DATA01,03H SLEEP

44、_R: CALL DISP MOV DX,IOB8255 IN AL,DX TEST AL,1 JNZ S_GO JMP S_CHECK S_GO:CALL RUN S_CHECK: CALL CHECK JMP SLEEP_R;定时选择程序模块TIMEPRO: CALL FORMAT8253 MOV CS:DATA01,0H MOV AL,CS:DATA2 ADD AL,1 MOV CS:DATA2,AL CMP AL,1 JZ TIME1 MOV AL,CS:DATA2 CMP AL,2 JE TIME2 MOV CS:DATA2,0 JMP TIME3 ;8秒定时TIME1: CALL

45、FORMAT8253_TIME1 MOV CS:DATA02,01H TIME1_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T1_GO JMP PAUSEPRO T1_GO: CALL RUN CALL CHECK JMP TIME1_R ;16秒定时TIME2: CALL FORMAT8253_TIME2 MOV CS:DATA02,02H TIME2_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T2_GO JMP PAUSEPRO T2_GO

46、: CALL RUN CALL CHECK JMP TIME2_R ;32秒定时TIME3: CALL FORMAT8253_TIME3 MOV CS:DATA02,03H TIME3_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T3_GO JMP PAUSEPRO T3_GO: CALL RUN CALL CHECK JMP TIME3_R ;停止控制模块PAUSEPRO: PCHECK: MOV DX,IOC8255 IN AL,DX AND AL,0FH CMP AL,BYTE PTR DS:077CHJZ PCH

47、ECK;是否为风速键 MOV AH,AL MOV BL,BYTE PTR DS:077CH MOV BYTE PTR DS:077CH,AL MOV BH,BL AND BL,01H AND AL,01H XOR AL,BL JZ PCHECK ;状态清零MOV CS:DATA,0H MOV CS:DATA1,0H MOV WORD PTR DS:077AH,3FFFH MOV CS:DATA0,0H MOV CS:DATA01,0H MOV CS:DATA02,0H JMP STYLEPRO;步进电机驱动转动模块RUN: MOV DX,IOC8255 MOV AL,30HOUT DX,ALC

48、ALL DELAYMOV AL,60HOUT DX,ALCALL DELAYMOV AL,0C0HOUT DX,ALCALL DELAYMOV AL,90HOUT DX,ALCALL DELAYRET ;延时控速DELAY: MOV CX,WORD PTR DS:077AH DELA:LOOP DELA RET ;通道0初始化FORMAT8253: MOV AL,00110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO08253 OUT DX,AL MOV AL,10 OUT DX,ALRET;自然风通道2初始化FORMAT8253_NA

49、TURAL: MOV AL,10110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT DX,AL MOV AL,10 OUT DX,ALRET;睡眠风通道2初始化FORMAT8253_SLEEP: MOV AL,10110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT DX,AL MOV AL,20 OUT DX,ALRET;8秒定时通道2初始化FORMAT8253_TIME1: MOV AL,10110001B MOV DX,IOCON8253

50、OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT DX,AL MOV AL,20 OUT DX,ALRET;16秒定时通道2初始化FORMAT8253_TIME2: MOV AL,10110001B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT DX,AL MOV AL,40 OUT DX,ALRET;32秒定时通道2初始化FORMAT8253_TIME3: MOV AL,10110001B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT

51、 DX,AL MOV AL,80 OUT DX,AL RET;状态显示模块DISP: MOV DX,OFFSET DATA0 MOV AH,04H DISP0:MOV CX,00FFH MOV BX,DX MOV BL,CS:BX MOV BH,0H PUSH DX MOV DX,0FF22H MOV AL,CS:DATA1BX OUT DX,AL MOV DX,0FF21H MOV AL,AH OUT DX,AL DISP1:LOOP DISP1 POP DX INC DX SHR AH,01H JNZ DISP0 MOV DX,0FF22H MOV AL,0FFH OUT DX,AL RE

52、TDATA1 DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90H,88HDB 83H,0C6H,0AH,86H,8EHDB 0FFH,0CH,89H,0DEH,0C7HDB 8CH,0F3H,0BFHDATA0 DB 0H,0H,0H ;显示类型数据DATA DB 0H,0H,0H ;类型数据CODES ENDS END START第六章系统调试与控制器使用说明6.1 系统调试 在任何设计中在系统完成前都必须对整个系统进行调试,以确定系统能正常运行且能实现用户要求的功能。在调试过程就是查找系统设计的缺陷,以及在硬件连接和软件编写上的错误。6.1.

53、1 硬件调试在理论设计完成后我们需要对设计的思想与理念实践出来,在本次任务我们主要在DVCC-598JH+的实验平台上进行调试与模拟。由于实验平台上个别接口芯片的限制,与我的设计有部分不符。在硬件上主要需对平台提供的设备与设计中主要冲突的解决。主要有以下两个问题。1. 8253的通道过少 实验平台上8253只有两个通道,故通道2只能类型选择控制信号发生以及定时信号的发生。在最终设计中定时的模块只能定时正常连续的风类型,而无法定时自然风和睡眠类型的风种类型。2. 8255无A口在系统理论设计中用到了8255所有的端口,而由于试验平台的限制,无法给8253门控信号,故只能稍微改变思路。在类型和定时

54、上个作为以独立运行模块检测一个控制信号来控制风扇的运转。在步进电机驱动上用C口高四位,低四位开关量输入,B口输入8253控制信号输出。6.1.2 软件调试 软件的调试主要解决在于硬件结合中出现的冲突,及在功能实现上出现的不足和程序本身在逻辑的错误的解决。 由于在硬件上本身的改动在软件也随之有相应的改动。在硬件的初始化以及在端口的改变上作出改动。停止模块在开始阶段,停止后再次启动后,风扇的类型会是上次停止前的状态,无法达到初始状态。为此在进入停止模块后通过对所有状态清零这样就可以保证停止后再次启动能在初始状态下运行风扇。显示模块上,开始是以开关信号的输入来决定状态的输出,但在实际运行时,开关状态输入进去了但是状态并未改变,造成显示错误。最后改变显示的决定因子,改在相应的类型模块中置其的状态显示字符。这样进入到此类型状态模块就能显示此类型未进入就不能显示,保证了状态的正常显示。6.2 使用说明在开机后按照DVCC-598JH+实验系统平台的操作步骤,首先要将源程序写入到8086CPU内后方可运行。在DVCC-598JH+实验系统平台的软件中将源程序写到空白页上,然后与平台上的硬件进行连接。成功后方可对源程序进行编译调试写入到8086的CPU中,单击运行按钮开始运行控制器的程序。控制器运行后,再无按

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!