家用电风扇课程设计 2 精品.docx
- 文档编号:8178764
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:14
- 大小:77.79KB
家用电风扇课程设计 2 精品.docx
《家用电风扇课程设计 2 精品.docx》由会员分享,可在线阅读,更多相关《家用电风扇课程设计 2 精品.docx(14页珍藏版)》请在冰豆网上搜索。
家用电风扇课程设计2精品
微机原理与接口技术
课程设计
课程设计题目
家用电风扇课程设计
1.功能分析及解决方案
1.1功能需求分析
本次课程设计任务主要模拟家用风扇的各种功能,设计一种控制器能实现对各种功能的控制,在风扇任意时刻运行时都对其实现各种功能的切换,充分体现其的可控制性。
在基本的弱电环境下的各种芯片实现对强电的控制的一种典型实例。
利用汇编语言与硬件结合,在各种基本的接口芯片实时通信,接收对应的按键信号,再基于硬件的基础用汇编语言实现各种逻辑关系转换而输出相应的控制信号从而实现各种功能的控制与转换。
1.2解决问题方法及思路
设计一个家用风扇控制器。
控制器面板为:
按钮三个,分别为风速、类型和停止,LED指示灯六个,指示风速强、中、弱,类型为睡眠、自然和正常。
电扇处于停转状态时,所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。
电扇处于工作状态时,有:
(1)初始状态为:
风速-“弱”,类型-“正常”;
(2)按“风速”键,其状态由“弱”®“中”®“强”®“弱”……往复循环改变,每按一下按键改变一次;
(3)按“类型”键,其状态由“正常”®“睡眠”®“自然”®“正常”……往复循环改变;
风扇风速的弱、中、强对应于电扇的转动由慢到快。
风扇类型的不同选择,分别为:
(1)正常电扇连续运转;
(2)自然电扇模拟自然风,即转4s,停8s;
(3)睡眠电扇慢转,产生轻柔的微风,运转8s,停转8s;
按照风速与类型的设置输出相应的控制信号。
本次课程设计任务主要基于8086以及各种接口芯片结合汇编语言实现对家用风扇的控制器的模拟。
我主要运用8086CPU结合汇编语言编写的软件来实现各种信号的处理与变换,以得到想要的控制信号,并用接口芯片8255A实现信号的输出与接收。
2.硬件设计
2.1可编程并行接口8255
1.8255特性
一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
具有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口和控制寄存器。
当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具有三种基本工作方式,在对8255A进行初始化编程时,应向控制字寄存器写入方式悬着控制字,用来规定8255A各端口的工作方式。
方式0——基本输入输出方式
方式1——选通输入输出方式
方式2——双向总线I/O方式
A口:
可工作于方式0,1,2任何一种
B口:
只能工作于方式0,1(不能为方式2)
C口:
分成双4位,可基本I/O,还可输出A,B口控制信号,输入A,B的状态。
(2)置位复位控制字
C口的数位常用来产生控制信号(如应答式数据传送中断请求信号)或其他应答信号,可通过置位复位控制字来使端口C的任一位引脚的输出单独置“1”或置“0”。
3.8255A的部分技术参数
表1
标识符
最小
最大
测试条件
输入低电平(VIL)
-0.5V
0.8V
输入高电平(VIH)
2.0V
5V
输出低电平(VOL)DB
0.45V
IOL=2.5mA
输出低电平(VOL)PER
0.45V
IOL=1.7mA
输出高电平(VOH)DB
2.4V
IOH=-400μA
输出高电平(VOH)PER
2.4V
IOH=-200μA
驱动电流
-1.0mA
-4.0mA
REXT=750Ω
VEXT=1.5V
供应电流
120mA
2.2步进电机
1.步进电机的速度控制及运动规划
步进电机区别于其他控制用途电机的最大特点是,它可接受数字控制信号(电脉冲信号)并转化成与之相对应的角位移或直线位移,因而本身就是一个完成数字模拟转化的执行元件。
而且它能进行开环位置控制,输入一个脉冲信号就得到一个规定的位置增量。
这样的增量位置控制系统与传统的直流伺服系统相比,其成本明显降低,几乎不必进行系统调整。
因此,步进电机广泛应用于数控机床、机器人、遥控、航天等领域,特别是微型计算机和微电子技术的发展,使步进电机获得更为广泛的应用。
2.步进电机的工作原理
该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图3-1是该四相反应式步进电机工作原理【图1】
图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相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
3.步进电机的速度特性
步进电机的转速取决于脉冲频率、转子齿数和拍数。
其角速度与脉冲频率成正比,而且在时间上与脉冲同步。
因而在转子齿数和运行拍数一定的情况下,只要控制脉冲频率即可获得所需速度。
由于步进电机是借助它的同步转矩而启动的,为了不发生失步,启动频率是不高的。
特别是随着功率的增加,转子直径增大,惯量增大,启动频率和最高运行频率可能相差10倍之多。
为了充分发挥电机的快速性能,通常使电机在低于启动频率下启动,然后逐步增加脉冲频率直到所希望的速度,所选择的变化速率要保证电机不发生失步,并尽量缩短启动加速时间。
为了保证电机的定位精度,在停止以前必须使电机从最高速度逐步减小脉冲率降到能够停止的速度(等于或稍大于启动速度)。
因此,步进电机拖动负载高速移动一定距离并精确定位时,一般来说都应包括“启动-加速-高速运行(匀速)-减速-停止”五个阶段,速度特性通常为梯形,如果移动的距离很短则为三角形速度特性,【图3】
图3
2.3开关
1.功能
开关对步进电机的各种模式进行控制
2.功能分析
对步进电机进行控制,当开关打开时程序会扫描开关获得信息然后进入相应的模式中。
2.4LED灯
1) LED在本设计中的作用
本设计利用二极管能发光的特性,用于显示开关闭合。
2)LED功能分析
当开关打开时,其对应的LED灯就会发光,给出提示。
3)LED技术参数
LED的压降一般为1.5~2.0 V,其工作电流一般取10~20 mA为宜。
3控制程序设计
3.1控制流程设计及其思路说明
8255内部包含3个8位的输入输出端口A、B和C,端口A和端口B都可以用作一个8位的输入口或8位的输出口,端口C既可以作为一个8位的输入口或8位的输出口,又可以作为两个4位的输入输出口(C口上半部分和C口下半部分)使用,还可以配合A口和B口工作,分别用来产生A口和B口的输出控制信号和输入A口和B口的端口状态信号
3.2程序流程图
3.3控制程序
MY8255_AEQU0FF00H;8255A
MY8255_BEQU0FF01H;8255B
MY8255_CEQU0FF02H;8255C
MY8255_MODEEQU0FF03H;8255
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
DATAENDS
CODESEGMENTASSUMECS:
CODE,DS:
DATA
START:
MOVDX,MY8255_MODE
MOVAL,90H
OUTDX,AL
MOVDX,MY8255_C
MOVAL,00H
OUTDX,AL
MOVDX,MY8255_B
MOVAL,0FFH
OUTDX,AL
START1:
MOVDX,MY8255_A//对8255A口进行扫描
INAL,DX
ANDAL,00001000B
CMPAL,08H//对按键进行判断
JNZT1
CALLZIRAN//调用自然模式
T1:
MOVDX,MY8255_A
INAL,DX
ANDAL,00000111B//屏蔽按键
CMPAL,00H
JNZT10
CALLSTOP
T10:
CMPAL,01H
JNZT6
CALLQIANG
T6:
CMPAL,02H
JNZT8//AL非02H跳入T8
CALLZHONG
T8:
CMPAL,04H
JNZT9
CALLRUO
T9:
JMPSTART1
//自然模式
ZIRANPROCNEAR
MOVDX,MY8255_B//对8255B口进行初始化
MOVAL,0F7H
OUTDX,AL
MOVCX,40//循环次数进行控制
T:
MOV[DI],1770H
CALLZHENGZHUAN
LOOPT
CALLDL4S
RET
ENDP
//强风模式
QIANGPROCNEAR
MOVDX,MY8255_B//对8255B口进行初始化
MOVAL,0FEH
OUTDX,AL
MOV[DI],0A00H
MOVDX,MY8255_A//扫描8255A口
INAL,DX
ANDAL,00010000B
CMPAL,10H//对按键进行判断
JNZT2
CALLFANZHUAN
CMPAL,01H
JZT3
T2:
CALLZHENGZHUAN
T3:
RET
ENDP
//中风模式
ZHONGPROCNEAR
MOVDX,MY8255_B//对8255B口进行初始化
MOVAL,0FDH
OUTDX,AL
MOV[DI],1000H
MOVDX,MY8255_A//扫描8255A口
INAL,DX
ANDAL,00010000B
CMPAL,10H//对按键进行判断
JNZT4
T4:
CALLFANZHUAN
CMPAL,10H
JNZT5
CALLZHENGZHUAN
T5:
RET
ENDP
//停止模式
STOPPROCNEAR
MOVDX,MY8255_B//对8255B口进行初始化
MOVAL,0FFH
OUTDX,AL
MOVDX,MY8255_C//对8255C口进行初始化
MOVAL,00H
OUTDX,AL
CALLDL500ms//调用延时
RET
ENDP
//弱风模式
RUOPROCNEAR
MOVDX,MY8255_B//对8255B口进行初始化
MOVAL,0FBH
OUTDX,AL
MOV[DI],1B00H
MOVDX,MY8255_A//扫描8255A口
INAL,DX
ANDAL,00010000B
CMPAL,10H//对按键进行判断
JNZA1
CALLFANZHUAN
A1:
CMPAL,10H
JNZA2
CALLZHENGZHUAN
A2:
RET
ENDP
//反转模式
FANZHUANPROCNEAR
MOVDX,MY8255_A//扫描8255A口
INAL,DX
NOTAL
MOVDX,MY8255_B
OUTDX,AL
MOVDX,MY8255_C
MOVAL,09H//设置风扇的旋转方式
OUTDX,AL
CALLDELAY
MOVAL,0CH
OUTDX,AL
CALLDELAY
MOVAL,06H
OUTDX,AL
CALLDELAY
MOVAL,03H
OUTDX,AL
CALLDELAY
RET
ENDP
//正转模式
ZHENGZHUANPROCNEAR
PUSHDX
MOVDX,MY8255_C//对8255C口进行初始化
MOVAL,03H
OUTDX,AL
CALLDELAY
MOVAL,06H//设置风扇的旋转方式
OUTDX,AL
CALLDELAY
MOVAL,0CH
OUTDX,AL
CALLDELAY
MOVAL,09H
OUTDX,AL
CALLDELAY
POPDX
RET
ENDP
//延时程序设置
DELAYPROCNEAR
PUSHCX
MOVCX,[DI]
DATE:
LOOPDATE
POPCX
RET
ENDP
DL500msPROCNEAR
PUSHCX
MOVCX,60000
DL500ms1:
LOOPDL500ms1
POPCX
RET
DL500msENDP
DL4SPROCNEAR
PUSHCX
MOVCX,8
DL4S1:
CALLDL500ms
LOOPDL4S1
POPCX
RET
ENDP
CODEENDS
ENDSTART
4.上机调试
4.1硬件上机调试
设计电路原理图,考虑到要实现的功能,所以使用8255A控制步进电机的运转,由于要考虑延时所以先使用了8253,但是为了使实验看起来简洁就使用程序进行了延时。
在了解步进电机的控制时,看到了脉宽调制法(PWM),但是经过程序也可实验程序实现所以最后未用。
在各个硬件芯片之间的连接调试中,需要我注意的主要是连接的可靠性。
由于本课程设计所涉及的芯片都是我们学习过的,加之我在初期的硬件逻辑设计中未出现较大错误。
在硬件的调试过程中我遇到过一个主要的问题,对于8255A的调试,我用了我们课堂上所学的实验8255A的三个口PA、PB和PC进行了调试,检测两个芯片的工作是否正常。
4.2软件上机调试
程序通过8255A对步进电机和LED灯进行控制,A口设置为输入端口,B、C为输出端口,开始时未注意到端口地址问题所以LED灯始终无法按预计的亮起,最终查阅书籍改正地址就行了。
在调试过程中我们发现时常有指针超出范围,或者定义的函数方法出错,这时我们的方法出错就进行方法的重新定义,对于指针的问题我们就进行调试机的单步运行一步一步的查看程序的问题所在最后再次进行编译查看每一个环节的细节问题。
4.3联机调试
小键盘检测:
由于采用的是软件延时,小键盘的检测究竟需要多久的延时才使程序在检测到一次按键时,刚好使风速或者类型改变一次(而不是两次或以上)是个很棘手的问题。
为此曾多次调节键盘检测延时的参数,也多次由于延时不当使程序执行时造成死机。
最后终于调出了合适的延时参数。
5设计结果分析及问题讨论
5.1课程设计及结果分析
自然和睡眠类型下风扇需要转一会停一会,如何在风扇停转的这段延时中使风扇能实时响应小键盘的输入,这是又一个大问题。
在多次调整程序的结构觉得毫无作用的时候,本人想到了增加一个带键盘检测的延时模块,从而轻松解决了该问题。
从按键上选择输入类型,然后步进电机机会进入相应的模式中,如选择自然风,步进电机就会正转。
5.2问题讨论
直流电机的控制方式:
用哪种方式能改变直流电机的转速,使其有明显的转速变化以区分“弱”、“中”、“强”三种风速是最开始遇到的问题。
通过查找资料,并在实验室调节DA0832的输出(占空比不变时改变电压数字量、电压不变时改变占空比)观察风扇的转速变化,最终确定调节PWM波的占空比为有效的控制方式。
5.3收获、体会和意见
程序在调试中没问题,可是一运行就死机,这种问题经常发生,有可能是硬件的问题,也可能是调试时不够仔细,没调试完所有功能就急着运行了。
这需要仔细耐心地把程序的所有功能都调试一遍,防止意外的执行结果产生。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家用电风扇课程设计 精品 家用 电风扇 课程设计