家用风扇控制器设计Word文档格式.docx
- 文档编号:6989202
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:32
- 大小:407.40KB
家用风扇控制器设计Word文档格式.docx
《家用风扇控制器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《家用风扇控制器设计Word文档格式.docx(32页珍藏版)》请在冰点文库上搜索。
4.类型的不同选择,分别为:
正常:
电扇连续运转;
自然:
电扇模拟自然风,即转4s,停8s;
睡眠:
电扇产生轻柔的微风,即运转8s,停转8s;
5.撰写课程设计说明书。
内容包括:
摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:
设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:
12月26日-----12月28日查阅资料及方案设计
12月29日-----1月2日编程
1月3日-----1月7日调试程序
1月8日-----1月9日撰写课程设计报告
指导教师签名:
年月日
系主任(或责任教师)签名:
目录
摘要...................................................................................................................1
1总体设计思想..................................................................................................2
2硬件设计..........................................................................................................3
2.1硬件设计基本概要....................................................................................3
2.28255A的设计............................................................................................4
2.38253的设计..............................................................................................4
2.4步进电机的设计........................................................................................5
2.5硬件系统原理图........................................................................................5
3软件设计..........................................................................................................6
3.1风扇运行控制模块....................................................................................7
3.2按键判断控制模块.....................................................................................7
3.3风速控制模块............................................................................................9
3.4类型控制模块............................................................................................10
3.5定时控制模块............................................................................................10
3.6停止控制模块............................................................................................11
4系统调试及仿真..............................................................................................12
5心得与体会......................................................................................................14
参考文献..............................................................................................................15
附录源程序及其说明........................................................................................16
本科生课程设计成绩评定表
摘要
本次课程设计任务主要模拟家用风扇的各种功能,设计一种控制器能实现对各种功能的控制,在风扇任意时刻运行时都对其实现各种功能的切换,充分体现其可控制性,是在基本的弱电环境下的各种芯片实现对强电的控制的一种典型实例。
利用汇编语言与硬件结合,在各种基本的接口芯片实时通信,接收对应的按键信号,再基于硬件的基础用汇编语言实现各种逻辑关系转换而输出相应的控制信号从而实现各种功能的控制与转换。
关键词:
汇编语言硬件接口芯片实时通信控制与转换
1总体设计思想
本次课程设计任务主要基于8086以及各种接口芯片结合汇编语言实现对家用风扇控制器的模拟,运用8086CPU结合汇编语言编写的软件来实现各种信号的处理与变换,以得到想要的控制信号。
8255A接收开关信号,驱动风扇的转动信号输出,并接收8253产生的控制信号。
8253主要实现各种风种的控制信号,从而得到自然、睡眠的类型风。
在模拟中通过开关来实现各种控制信号的输入,再通过8255的端口进行读取,再由8086通过软件对采入的信号进行辨别进而转入到相应的功能子程序中以实现各种功能。
在各种功能的背后,通过8086驱动相应功能的硬件设备实现各种功能的切换。
图1-1硬件设计框图
此任务控制器已基本实现所有风扇控制功能,而现在几乎所有的风扇都能实现定时功能,故可以在控制器的设计中扩展定时功能以达到全面控制的目的。
风扇控制停止后,后续状态任务书上未作要求,现设计其能在停止后处于等待状态,当且仅当有风速键按下后,控制器可恢复继续控制风扇的运行,实现控制器的循环控制。
2硬件设计
2.1硬件设计基本概要
根据设计要求和内容,用可编程并行接口芯片8255A
PC口低四位接收4个按键(分别表示风速、风种、定时、停止)的状态以启动电扇或设置相应的工作状态。
这样就需要4个按键,因此可以用实验箱上的某一列的4个按键,可以将此列的列选择线直接接为低电平,4个行输入线接到8255的C口。
这样可以直接从8255的口读取按键的状态,从而执行相应的操作。
要通过一个按键来控制2个以上的状态,可以通过按键的次数来控制第几种状态,比如风速有三种状态(弱、中、强),可以用按键1次控制弱,按键2次控制中,按键3次控制强,这样就可以实现一键控制多钟状态了。
控制器的指示灯,使用六个LED灯进行显示,分别显示不同风速、类型等6个指示信号。
显示模块状态表示如下表2-1所示。
用四相步进电动机作为电风扇,其转速可通过改变其驱动电平的频率来改变步进电机的速度。
利用8255A的PC口高四位对步进电机进行四相四拍驱动。
风种时间控制可由可编程计数器/定时器8253来实现。
可选用8253工作在方式3。
在这种方式下,当CPU输入控制字后,输出将为高,在写入计数值后计数器将立即自动对输入时钟CLK计数,计数器减为1时,输出将变低,方式2时8253不可用重新设置计数值就能连续工作,保证了定时的精确。
表2-1显示模块代码状态表示
按键
状态
相应LED灯显示器
风速
弱
1
中
2
强
3
类型
正常
4
自然
5
睡眠
6
2.28255A的设计
8255A的PA工作在方式0的基本输入方式作为控制信号的输入,接收8253的信号来控制步进电机的转动与停止。
PC低四位工作在方式0的基本输入方式,用来接收四个开关的开关信号,高四位工作在方式0的基本输出方式作为四相步进电机的四相线路输出电路用来驱动步进电机的转动。
PB口工作在方式0的基本输出方式,用低六位来控制六个LED灯的亮和灭。
2.38253的设计
先利用通道0对时钟进行分频,已获得可较好利用的时钟,得到周期为四秒的方波为后面能自然和睡眠的状态产生八秒高电平四秒低电平以及周期为十六秒的方波做准备。
使用通道2用来产生类型风的状态信号,在自然风类型时,让其工作在方式2产生八秒高电平四秒低电平,当高电平时驱动步进电机转动,低电平则返回继续检测,以实现自然风的模拟;
在睡眠的类型时,通道2工作在方式3产生周期为十六秒的方波,当高电平时驱动步进电机转动,低电平则返回继续检测,以实现睡眠风的模拟。
2.4步进电机的设计
步进电机可接受数字控制信号(电脉冲信号)并转化成与之相对应的角位移或直线位移,因而本身就是一个完成数字模拟转化的执行元件。
而且它能进行开环位置控制,输入一个脉冲信号就得到一个规定的位置增量。
本次课程设计使用的电机为四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
步进电机的转速取决于脉冲频率、转子齿数和拍数。
其角速度与脉冲频率成正比,而且在时间上与脉冲同步。
因而在转子齿数和运行拍数一定的情况下,只要控制脉冲频率即可获得所需速度。
2.5系统硬件原理图
图2-1系统硬件原理图
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、电扇处于停转状态时:
所有指示灯不亮,只有按下“风速”键时,其状态由“弱”→“中”→“强”→“弱”……往复循环改变,每按一下按键改变一次;
按“类型”键时,其状态由“正常”→“睡眠”→“自然”→“正常”……往复循环改变;
系统利用proteus进行仿真,仿真图详见下图4-1
图4-1系统仿真图
5心得与体会
通过此次的课程设计任务,我加深了自己对汇编语言以及各接口芯片使用方法的理解,在实践中体会到各芯片的工作的状态及使用方法。
本学期学习过的8255A和8253芯片的相关内容,通过这次课程设计,通过设计,看书,也有了比较深刻地了解。
与此同时还加深了对汇编程序结构,指令,调用等基础知识的认识。
在实践中充分利用所学知识结合实际情况作出符合要求的设计。
在具体的调试过程中遇到了很多问题,我们小组通过查找各方面资料解决了这些问题。
在这我学到了部分proteus仿真中及硬件调试方面常出现的问题及解决方法。
而在软件设计方面我也学到常见逻辑错误及其解决方法。
能在实践中磨砺自己的意志以及锻炼自己的动手操作能力,提升自己独立完成小型系统的设计任务能力。
为以后在大型系统设计中能奠定一定的基础知识及实际操作能力,并为自己积累了许多宝贵的经验教训。
通过这次短暂的课程设计,不仅使我加深了对接口程序设计的认识,对接口各部件的工作原理也有了进一步的了解,也增强了分析故障以及独立处理问题的能力。
参考文献
[1]彭虎.微机原理与接口技术.机械工业出版社,2001年3月
[2]雷丽文.微机原理与接口技术.电子工业出版社1999年第一版
[3]韩海编著.汇编语言程序设计.西安:
西安电子科技大学出版社,2000
[4]胡寿松.自动控制原理.科学出版社,1999
[5]刘乐善.微型计算机接口技术及应用.武汉:
华中科技大学出版社,2004
[6]沈美明.IBMPC机汇编语言程序设计.清华大学出版社,1991年第一版
附录源程序及其说明
说明:
DS:
[077AH]——存储延时时间控制步进电机速度
DATA0——存储当前状态显示数据
DATA——存储当前状态类型数据
源程序:
CODESSEGMENT
ASSUMECS:
CODES
;
8253端口地址
IOCON8253EQU43H
IO08253EQU40H
IO18253EQU41H
IO28253EQU42H
;
8255端口地址
IOCON8255EQU0FF2BH
IOB8255EQU0FF29H
IOC8255EQU0FF2AH
ORG1000H
START:
MOVCS:
DATA0,0H
DATA0[1],0H
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
ANDAL,0FH
CMPAL,BYTEPTRDS:
[077CH]
没有则跳出返回
JZCHECKOUT
判断输入键的类型
MOVAH,AL
MOVBL,BYTEPTRDS:
[077CH],AL
MOVBH,BL
ANDBL,01H
ANDAL,01H
XORAL,BL
风速选择键键入
JNZSPEEDPRO
MOVAL,AH
MOVBL,BH
ANDBL,02H
ANDAL,02H
风类型选择键键入
JNZSTYLEPRO
ANDBL,04H
ANDAL,04H
定时选择键键入
JNZL1
ANDBL,08H
ANDAL,08H
停止键键入
JNZL2
L1:
JMPTIMEPRO
L2:
JMPPAUSEPRO
CHECKOUT:
RET
风速选择程序模块
SPEEDPRO:
MOVAL,CS:
DATA
ADDAL,1
DATA,AL
CMPAL,1
JZL
CMPAL,2
JZMID
强风
MOVCS:
DATA,0
MOVWORDPTRDS:
[077AH],00FFH
DATA0,03H
JMPBACK
弱风
L:
DATA0,01H
JMPBACK
中风
MID:
MOVWORDPTRDS:
[077AH],04FFH
DATA0,02H
BACK:
JMPCHECKOUT
类型选择程序模块
STYLEPRO:
DATA[1]
DATA[1],AL
JZNORMAL
JZNATURAL
DATA[1],0
JMPSLEEP
NORMAL:
DATA0[1],01H
NORMAL_R:
CALLDISP
CALLRUN
CALLCHECK
JMPNORMAL_R
NATURAL:
CALLFORMAT8253_NATURAL
DATA0[1],02H
NATURAL_R:
MOVDX,IOB8255
TESTAL,1
JNZN_GO
JMPN_CHECK
N_GO:
CALLRUN
N_CHECK:
JMPNATURAL_R
SLEEP:
CALLFORMAT8253_SLEEP
DATA0[1],03H
SLEEP_R:
JNZS_GO
JMPS_CHECK
S_GO:
S_CHECK:
JMPSLEEP_R
定时选择程序模块
TIMEPRO:
CALLFORMAT8253
DATA[2]
DATA[2],AL
JZTIME1
JETIME2
DATA[2],0
JMPTIME3
8秒定时
TIME1:
CALLFORMAT8253_TIME1
DATA0[2],01H
TIME1_R:
NOTAL
TESTAL,01
JNZT1_GO
JMPPAUSEPRO
T1_GO:
CALLR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家用 风扇 控制器 设计