家用风扇控制器设计.docx
- 文档编号:24320472
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:36
- 大小:623.77KB
家用风扇控制器设计.docx
《家用风扇控制器设计.docx》由会员分享,可在线阅读,更多相关《家用风扇控制器设计.docx(36页珍藏版)》请在冰豆网上搜索。
家用风扇控制器设计
学号:
课程设计
题目
家用风扇控制器设计
学院
自动化学院
专业
电气工程
班级
姓名
指导教师
年
1
月
8
日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
自动化学院
题目:
家用风扇控制器设计
初始条件:
设计并制作一个家用风扇控制器。
控制器面板为:
按钮三个,分别为风速、类型和停止。
LED指示灯6个,指示风速强、中、弱,类型为睡眠、自然和正常。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.风扇处于停转状态时,所有指示灯不亮,只有按下”风速”键时,才会响应,进入初始工作状态,初始状态为:
风速”弱”,类型”正常”;电扇在任何状态,只要按停止键,则进入停转状态。
2.按”风速”键,其状态由”弱”-”中”-”强”-”弱”……往复循环改变,每按一下按键改变一次;按”类型”键,其状态由”正常”-”睡眠”-”自然”-”正常”……往复循环改变;
3.风速的弱、中、强对应于电扇的转动由慢到快;
4.类型的不同选择,分别为:
正常:
电扇连续运转;
自然:
电扇模拟自然风,即转4s,停8s;
睡眠:
电扇产生轻柔的微风,即运转8s,停转8s;
5.撰写课程设计说明书。
内容包括:
摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:
设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:
12月26日-----12月28日查阅资料及方案设计
12月29日-----1月2日编程
1月3日-----1月7日调试程序
1月8日-----1月9日撰写课程设计报告
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
本次课程设计任务为设计并制作一个家用风扇控制器,并实现一定的功能控制功能。
相关功能要求包括风速、类型和通断的调节与控制,并在风扇运行于任意状态下都对其实现功能的切换,充分体现其可控制性。
本设计应用汇编语言对相关硬件程序设计,在基本的接口芯片出实现实时通信,接收对应的按键信号,再通过编程实现各种逻辑关系转换而输出相应的控制信号。
基于设计要求,本设计选用了8253和8255芯片与8086组合,通过软件编程使8253输出定时信号及输出脉宽信号分别用以申请中断和控制步进电机的走步,8255通过输出高低电平控制8253通道计数功能从而实现电机的转动和停止同时负责输出控制LED显示的信号。
用8253的通道1和2一起来定时控制电机转动和停止时间的长短。
关键词:
汇编语言接口芯片实时通信
1设计任务及分析
1.1设计任务要求
任务为设计和制作一个家用电风扇,核心问题为设计该风扇的控制电路,与步进电机相连,最终达到一定的功能切换目的。
要求完成的任务:
1.通断控制:
风扇初始状态为不转,只有按下风速键才能使其工作,任何时间按下停止键都能使其停转。
2.风速控制:
按下风速键,风扇运行状态由”弱”-”中”-”强”-”弱”……往复循环改变,每按一下按键改变一次。
3.类型控制:
按”类型”键,其状态由”正常”-”睡眠”-”自然”-”正常”……往复循环改变;
4.类型的不同选择,分别为:
正常:
电扇连续运转;自然:
电扇模拟自然风,即转4s,停8s;睡眠:
电扇产生轻柔的微风,即运转8s,停转8s;
1.2设计系统分析
本次任务的设计对象为家用电风扇的控制电路,相应的功能要求包括通断控制、风速控制和模式控制,与步进电机相连后,可通过控制步进电机的输入脉冲信号来改变其旋转方式以达到上述目的,控制步进电机的核心电路需要具有通断信号实时通讯,改变输出脉冲频率以及输出模式的功能,可采用接口芯片和数电芯片等多种方法。
最后用ISIS仿真模拟,对设计好的电路进行初步检验与校正。
鉴于经济性和灵活性以及本次课设的主要学习目的,最终选择了8086和一定的接口芯片组合完成电路的搭建,应用汇编语言对其进行编程。
通过本学期的课程学习与相关资料的查阅,我们发现8255A的实时通讯功能和8253A的分频功能可以完成对步进电机输入脉冲的调节作用,故选择8253A以及8255A作为主要硬件,通过应用汇编语言对上述中央芯片与接口芯片进行编程,利用8255A接收外部按键信号并传达至8086,8086将决策信号送至8255A和8253A,通过接口电路控制风扇的运行状态。
应用8253的分频功能控制信号输出的模式与速度,通过8253定时/计数器通道0定时控制步进速度,通道2和3定时电机的转停时间,8255的PA0控制步进电机的转停。
8255的C口输出控制脉冲,经74452电路驱动电路。
B口输出控制LED显示风扇当前的状态。
在模拟中通过开关来实现各种控制信号的输入,再通过8255的端口进行读取,再由8086通过软件的对采入的信号进行辨别进而转入到相应的功能子程序中以实现各种功能。
在各种功能的背后,通过8086驱动相应功能的硬件设备实现各种功能的切换。
8255输出步进电机控制信号的同时也负责输出LED显示灯的控制信号,使得LED能够显示实时工作状态。
整体流程如图1.1所示
图1.1电风扇控制电路整体流程
2方案设计
2.1硬件系统设计
2.1.1硬件系统概要
本文选用设备如表2-1所示,其中,可编程并行接口芯片8255A的C口低四位接收4状态信号,并启动电扇或设置相应的工作状态。
在输入按键只有一个的情况下,可通过按键次数控制不同的状态,例如:
风速有三种状态(弱、中、强),可以用按键1次代表弱风状态,按第二次时切换到中速,按第三次时切换至强风状态。
8253实现风种时间控制。
选用由8253工作方式3,当CPU输入控制字后,输出将为高,在写入计数值后计数器将立即自动对输入时钟CLK计数,计数器减为1时,输出将变低,方式2时8253不可用重新设置计数值就能连续工作,保证了定时的精确。
表2-1选用设备清单
型号或名称
数量
Intel8086
1片
8255A
1片
8253
1片
步进电机
1个
开关
4个
步进电机驱动电路
1套
表2-2显示模块状态表示
按键
状态
相应显示器
风速
弱
1
中
2
强
3
类型
正常
1
自然
2
睡眠
3
定时
定时8秒
1
定时16秒
2
定时32秒
3
2.28255A的设计
2.2.18255A功能简介
1.8255特性
具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。
它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。
A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。
A0,A1为地址选择线,用来选择8255的PA口、PB口、PC口和控制寄存器。
2.8255A的控制字
8255A有两类控制字:
一类控制字用于定义个端口的工作方式,称为方式选择控制字;另一类控制子用于C端口的任意一位进行置位或复位操作,称为置位复位控制字。
(1)方式选择控制字
8255A具有三种基本工作方式,在对8255A进行初始化编程时,应向控制字寄存器写入方式悬着控制字,用来规定8255A各端口的工作方式。
方式0——基本输入输出方式
方式1——选通输入输出方式
方式2——双向总线I/O方式
(2)置位复位控制字
C口的数位常用来产生控制信号(如应答式数据传送中断请求信号)或其他应答信号,可通过置位复位控制字来使端口C的任一位引脚的输出单独置“1”或置“0”。
2.2.28255A端口分配及功能实现
1.端口分配
8255A的PC口的低四位工作在方式0的基本输出方式,作为8253的门控信号来控制8253是否需要计数,PC0控制8253通道0的门控信号,PC1控制8253通道1的门控信号, PC2控制8253通道2的门控信号,高四位工作在方式0的基本输入方式用来接收四个开关的开关信号。
PB口作为四相步进电机的四相线路输出电路用来驱动步进电机的转动,工作在方式0的基本输出方式,用低六位来控制六个LED灯的亮和灭。
8255A的PA口工作在方式0的基本输入方式作为控制信号的输入,接收8253的信号来控制步进电机的转动与停止。
2.对步进电机的控制
1、用8255并行接口控制A、B、C的通断。
8255A的CS端可接地址200~207H。
实验室中,用LED指示灯通断模拟步进电机绕组的通电情况。
8255A工作于方式0。
8255A内部结构图如图2-1所示。
端口A地址(00):
200H
端口A地址(01):
201H
端口A地址(10):
202H
控制端口地址(11):
203H
图2.18255A的内部结构
8255与步进电机连接示意图如图2-2所示。
图2-28255A与步进电机的连接图
图2.28255与步进电机连接示意图
2.38253的设计
2.3.18253功能简介
1.基本原理概述
8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。
8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。
采用二进制计数时,最大计数值是FFFFH,采用BCD码计数时。
最大计数值是9999。
与此计数器相对应,每个通道内设有一个16位计数值锁存器。
必要时可用来锁存计数值。
2.8253的控制字
8253有六种工作方式简介如表2-3所示。
表2-38253方式简介
方式0
计数结束中断方式
方式1
可编程单稳态输出方式
方式2
比率发生器(分频器)
方式3
方波发生器(输出对称方波)
方式4
软件触发选通
方式5
硬件触发选通
每个通道都可独立进行这六种工作方式互不影响,用8253时需对所用8253的通道进行初始化编程以确定气的工作方式。
初始化编程通过控制字来确定其的工作方式。
2.3.28253A端口分配及功能实现
首先利用通道0对时钟进行分频,已获得可较好利用的时钟,得到周期为八秒的方波为后面能自然和睡眠的状态产生四秒高电平八秒低电平以及周期为十六秒的方波做准备。
通道1用来产生类型风的状态信号,在自然风类型时,让其工作在方式2产生四秒高电平八秒低电平,让8255A的PA口PA0接收,当高电平时驱动步进电机转动,低电平则停止以实现自然风的模拟;在睡眠的类型时,通道2工作在方式3产生周期为十六秒的方波,让8255A的PA口PA0接收,当高电平时驱动步进电机转动,低电平则停止以实现睡眠风的模拟。
通道3用来实现定时的功能,在定时的功能时初始化其工作在方式4,在计数的时候为高电平,当计数完后,输出一负脉冲结束定时停止风扇转动,让8255A的PA口PA1接收,当高电平时驱动步进电机转动,低电平则停止,可通过改变其的计数初值来实现不同时间长度的定时。
2.4系统硬件电路连接
2.4.1分块电路连接方式
(1)控制电路与步进电机的励磁回路连接,其电路如图2.3所示。
图2.3步进电机连接电路
(2)将按键与8255相连,使之接受输入信号,其电路如图2.4所示。
图2.4输入模块连接电路
(3)8255输出与LED相连,以达到控制的目的。
其电路如图2.5所示
图2.5显示模块连接电路
2.4.4系统硬件原理图
3软件设计
硬件的设计完成后,运用汇编语言编写软件部分通过8086CPU实现各种信号的输入/输出以及相关信号的处理,从而控制步进电机的各种转态的转换控制。
软件设计主体流程图如图3.1所示
图3.1风扇控制器软件总流程图
3.1风扇运行控制模块
此模块主要控制步进电机的转动以及住转速,亦是整个控制器的主控部分。
实现风扇各种功能的”CPU”。
其中主要部分是驱动电机转动的子程序,每次依次对四相电路驱动一次,由于8086处理速度非常快在肉眼看不来电机有微停抖动的情况,步进电机就是在连续的转动。
对步进电机转动需要判断两个控制信号,一个是类型信号PA0另一个是定时信号PA1,当两者都是高电平时才去驱动步进电机转动。
风扇运行控制模块流程图如图3.2所示:
图3.2风扇运行控制模块流程图
3.2按键判断控制模块
判断方法:
有按键按下后后保存他们的开关状态当下次有开关状态变化时就可以知道有按键按下进行按键判断。
首先判断上一次的开关状态与此次检测的状态是否相同,不同则分别判断四个开关状态是否变化,若有就转入相应的子模块中。
按键判断控制模块流程图如图3.3所示。
图3.3按键控制模流程图
3.3风速控制模块
此次任务中家用风扇我用了步进电机进行模拟,步进电机的速度控制运用PWM方法,通过改变频率来实现速度控制。
在软件编程中,通过8255A的PB口输出驱动步进电机,通过改变单拍输出的延时时间来改变速度,延时越短速度越快。
在设计中,置一数据BUF1单元保存延时时间,不同的速度选择时,置不同数据来改变延时的长短从而实现速度的控制。
另置一数据单元BUF2保存当前风速状态,BUF2在1、2、3之间循环,分别代表弱、中、强并作为状态数据显示。
风速控制模块流程图如图3.4所示。
图3.4风速控制模块流程图
3.4类型控制模块
类型的控制主要运用8253来产生各种状态波形信号,通过检测信号的高低电平来控制步进电机的运转。
此模块主要来初始化8253通道1的工作状态。
在数据段中置一数据单元BUF3来存储类型的状态数据,BUF3在1、2、3之间循环分别代表类型中的正常、自然以及睡眠三种类型并作为状态数据显示。
类型控制模块流程图如图3.5所示。
图3.5类型控制模块流程图
3.5定时控制模块
定时也是通过8253产生控制信号来控制,通过8253的通道2工作在方式4实现定时,在定时完后会在风扇运行控制模块中转到停止模块中。
在数据段中置一数据单元BUF4来存储定时类型的状态数据,BUF4在1、2、3之间循环分别代表类型中的8秒、16秒以及32秒三种类型并作为状态数据显示。
定时控制模块流程图如图3.6所示。
图3.6定时控制模块流程图
3.6停止控制模块
停止状态主要实现风扇暂时性的停止运行,在某个键按下后又能继续运转。
按要求只有在风速键按下才能继续运行。
此模块主要对已运行的风扇停止后所有状态进行清零,以保证再次运行后能按初始状态运行。
停止模块流程图如图3.7所示。
图3.7停止控制模块流程图
4系统仿真
1、当程序运行时,进入DOS状态下控制器面板的菜单选项:
按钮为三个,分别为”风速”、”类型”和”停止”,LED指示灯共六个,分别指示风速”强”、”中”、”弱”,类型分别为”睡眠”、”自然”和”正常”。
2、电扇处于停转状态时:
所有指示灯不亮,只有按下”风速”键时,其状态由”弱”→“中”→“强”→“弱”……往复循环改变,每按一下按键改变一次;按”类型”键时,其状态由”正常”→“睡眠”→“自然”→“正常”……往复循环改变;电扇在任何状态,只要按停止键,则进入停转状态。
5心得与体会
本学期我们在《微机原理与接口技术》中学习到的基础汇编语言与接口芯片的知识,在本次课设中得到了应用,在具体实施中,我不仅重温了汇编语言的语法,还进一步加深了对8255和8253两种芯片的理解,并在将它们应用到实际中的过程中充分利用了其不同的工作方式达到相应的目的,而且学会了如何将两片芯片配合使用。
通过本次课设,我们组同学充分利用了网络资源和图书资料,在方案的论证与确定以及相关芯片资料的查询过程中,我们对汇编程序结构,指令,调用等基础知识有了更深刻的了解,在实践中充分利用所学知识结合实际情况作出符合要求的设计。
在具体的实践操作过程中,我们遇到了一些问题与挑战,为了圆满完成任务,我们不但查阅了充足的资料,也重温了AD等相关绘图软件的使用以及电机学中关于步进电机的知识,并在此基础上学到了部分proteus仿真中及硬件调试方面常出现的问题及解决方法。
这次课程设计充分锻炼了我的实际动手操作能力,在完成一个小型系统的设计的过程中,我不但学会了将理论知识与实际应用联系结合起来,还使自己独立自主学习的能力得到了加强,为自己积累了许多宝贵的经验教训的同时,也为以后在大型系统设计中能奠定一定的基础。
参考文献
[1]彭虎.《微机原理与接口技术》.机械工业出版社,2001年3月
[2]雷丽文.《微机原理与接口技术》.电子工业出版社1999年第一版
[3]韩海.《汇编语言程序设计》.西安:
西安电子科技大学出版社.2000
[4]胡寿松.《自动控制原理》.科学出版社,1999
[5]刘乐善.《微型计算机接口技术及应用》.武汉:
华中科技大学出版社.2004
[6]沈美明.《IBMPC机汇编语言程序设计》.清华大学出版社,1991年第一版
附录:
设计源程序
源程序:
CODESSEGMENT
ASSUMECS:
CODES
;8253端口地址
IOCON8253EQU43H
IO08253EQU40H
IO18253EQU41H
IO28253EQU42H
;8255端口地址
IOCON8255EQU0FF2BH
IOB8255EQU0FF29H
IOC8255EQU0FF2AH
ORG1000H
START:
MOVCS:
DATA0,0H
MOVCS:
DATA0[1],0H
MOVCS:
DATA0[2],0H
;8255初始化
MOVAL,10000011B
MOVDX,IOCON8255
OUTDX,AL
;按键状态数据
MOVWORDPTRDS:
[077AH],09FFH
;控制器启动程序
;判断是否是风速按键按下
QD:
MOVDX,IOC8255
INAL,DX
CMPAL,01
JNEQD
MOVBYTEPTRDS:
[077CH],01H
JMPSTYLEPRO
;检查是否有键键入
CHECK:
MOVDX,IOC8255
INAL,DX
ANDAL,0FH
CMPAL,BYTEPTRDS:
[077CH]
;没有则跳出返回
JZCHECKOUT
;判断输入键的类型
MOVAH,AL
MOVBL,BYTEPTRDS:
[077CH]
MOVBYTEPTRDS:
[077CH],AL
MOVBH,BL
ANDBL,01H
ANDAL,01H
XORAL,BL
;风速选择键键入
JNZSPEEDPRO
MOVAL,AH
MOVBL,BH
ANDBL,02H
ANDAL,02H
XORAL,BL
;风类型选择键键入
JNZSTYLEPRO
MOVAL,AH
MOVBL,BH
ANDBL,04H
ANDAL,04H
XORAL,BL
;定时选择键键入
JNZL1
MOVAL,AH
MOVBL,BH
ANDBL,08H
ANDAL,08H
XORAL,BL
;停止键键入
JNZL2
L1:
JMPTIMEPRO
L2:
JMPPAUSEPRO
CHECKOUT:
RET
;风速选择程序模块
SPEEDPRO:
MOVAL,CS:
DATA
ADDAL,1
MOVCS:
DATA,AL
MOVAL,CS:
DATA
CMPAL,1
JZL
CMPAL,2
JZMID
;强风
MOVCS:
DATA,0
MOVWORDPTRDS:
[077AH],00FFH
MOVCS:
DATA0,03H
JMPBACK
;弱风
L:
MOVWORDPTRDS:
[077AH],09FFH
MOVCS:
DATA0,01H
JMPBACK
;中风
MID:
MOVWORDPTRDS:
[077AH],04FFH
MOVCS:
DATA0,02H
JMPBACK
BACK:
JMPCHECKOUT
;类型选择程序模块
STYLEPRO:
MOVCS:
DATA0[2],0H
MOVAL,CS:
DATA[1]
ADDAL,1
MOVCS:
DATA[1],AL
MOVAL,CS:
DATA[1]
CMPAL,1
JZNORMAL
CMPAL,2
JZNATURAL
MOVCS:
DATA[1],0
JMPSLEEP
;正常
NORMAL:
MOVCS:
DATA0[1],01H
NORMAL_R:
CALLDISP
CALLRUN
CALLCHECK
JMPNORMAL_R
;自然
NATURAL:
CALLFORMAT8253_NATURAL
MOVCS:
DATA0[1],02H
NATURAL_R:
CALLDISP
MOVDX,IOB8255
INAL,DX
TESTAL,1
JNZN_GO
JMPN_CHECK
N_GO:
CALLRUN
N_CHECK:
CALLCHECK
JMPNATURAL_R
;睡眠
SLEEP:
CALLFORMAT8253_SLEEP
MOVCS:
DATA0[1],03H
SLEEP_R:
CALLDISP
MOVDX,IOB8255
INAL,DX
TESTAL,1
JNZS_GO
JMPS_CHECK
S_GO:
CALLRUN
S_CHECK:
CALLCHECK
JMPSLEEP_R
;定时选择程序模块
TIMEPRO:
CALLFORMAT8253
MOVCS:
DATA0[1],0H
MOVAL,CS:
DATA[2]
ADDAL,1
MOVCS:
DATA[2],AL
CMPAL,1
JZTIME1
MOVAL,CS:
DATA[2]
CMPAL,2
JETIME2
MOVCS:
DATA[2],0
JMPTIME3
;8秒定时
TIME1:
CA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家用 风扇 控制器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)