目录一、设计要求 (2)二、设计目的 (2)三、设计的具体实现 (3)1. 系统概述 (3)2. 硬件电路设计 (3)3. 软件程序设计 (5)四、结论 (10)五、心得体会及建议 (11)六、附录 (11)七、参考文献 (14)1家用电风扇设计报告一、设计要求1、控制器面板为:按钮三个,分别为风速、类型和停止,LED指示灯六个,指示风速强、中、弱,类型为睡眠、自然和正常。
2、电扇处于停转状态时:所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。
3、处于工作状态时有:(1) 初始状态为:风速-“弱”,类型-“正常”;(2) 按“风速”键,其状态由“弱”→“中”→“强”→“弱”……往复循环改变,每按一下按键改变一次;(3) 按“类型”键,其状态由“正常”→“睡眠”→“自然”→“正常”……往复循环改变;4、风速:风速的弱、中、强对应于电扇的转动由慢到快。
5、风速类型的不同选择分别为:(1) 正常电扇连续运转;(2) 自然电扇模拟自然风,即转4s,停8s;(3) 睡眠电扇慢转,产生轻柔的微风,运转 8s,停转8s;6、定时:可以定时30分,60分.二、设计目的用PC的软硬件资源实现家用电风扇的模拟控制。
2三、设计的具体实现1、系统概述整个电路可分为四个模块:风速控制模块,风种控制模块,定时控制模块,振荡源。
(a)、开关SW1和可编程并行接口芯片8255A以及部分相关元件组成风速控制电路,8255A的C口作为输入端口,A 口作为输出端口,通过软件循环检测C口的输入状态,从而决定A口的输出状态。
(b)、端口地址为80H—83H的可编程计数器8253A和555定时器组成的单稳态触发电路组成风种控制模块,其中振荡源为其提供计数脉冲。
其中计数器2产生周期为8s的方波,计数器1为频率发生器,每隔12s产生一个脉冲,触发555定时器组成的单稳态触发电路,使其产生脉冲宽度大概为4s的矩形波。
(c)、端口地址为90H—93H的可编程计数器8253A以及相关电路组成定时器,振荡源为其提供计数脉冲,可实现定时30min和60min。
计数器0和计数器1都工作在方式1 ——可重触发的单稳态。
门控信号每接受一个上升沿,计数器就会重新计数。
(d)、用555定时器组成T=1s的振荡源。
2、硬件电路设计硬件连线图如图3.2.1所示:3图3.2.14其中可编程并行接口芯片8255A的端口地址为288H—28BH,风种控制模块的可编程计数器8253A的端口地址为80H—83H,定时控制模块的可编程计数器8253A的端口地址为90H—93H。
振荡源用555定时器组成,通过设定R2=R3=48KO,C3=10uF,C4=0.01uF使其输出周期为1s。
在555定时器组成的单稳态触发电路中,使R1=400O,C1=900uF,使其产生脉冲宽度大概为Tw=4s 的矩形波。
8253A正常工作时,输出为电平,而8255A检测的是高电平,故其输出需要接非门。
3、软件程序设计程序清单如下:DATA SEGMENTP55A EQU 288H ;8255 A PORT OUTPUTP55C EQU 28AH ;8255 C PORT INPUTP55CTL EQU 28BH ;8255 COUTRL PORTBUF DB 0MES DB 'SW1 ARE FENGSU CONTROL',0AH,0DH DB 'SW2 IS THE FENGZGONG CONTROL ',0AH,0DH DB 'SW3 IS THE ZONGKAIGUAN',0AH,0DHDB 'SW4 IS THE TIME CONTROL',0AH,0DH,'$' DATA ENDS5CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AL,54HOUT83H,ALMOV AL,0CHOUT81H,AL ;U1计数器1:T=12s 频率发生器MOV AL,96HOUT83H,ALMOV AL,08HOUT82H,AL ;U1计数器2:T=8s 方波发生器MOV AL,32HOUT93,ALMOV AX,0708HOUT90H,AL6MOV AL,AHOUT90H,AL ;U2计数器0:可重触发单稳态方式,初值为1800MOV AL,72HOUT93H,ALMOV AX,0E10HOUT91H,ALMOV AL,AHOUT91H,AL ;U2计数器1:可重触发单稳态方式,初值为3600MOV AX,CSMOV DS,AXMOV AX,DATAMOV DS,AXMOV DX,OFFSET MESMOV AH,09INT21HMOV DX,P55CTL7MOV AL,8BHOUT DX,AL ;8255 C 输入, A 输出MOV BUF,33HOUT1: MOV AL,BUFMOV DX,P55AOUT DX,ALpush dxMOV AH,06hmov dl,0ffhINT21H ;ANY KEY PRESSEDpop dxJE IN1MOV AH,4CHINT21HIN1: MOV DX,P55CIN AL,DX ;INPUT SWITCH VALUETEST AL,10HJNZ K48TEST AL,20HJNZ K5TEST AL,40HJNZ K6STOP: MOV DX,P55AMOV AL,0FFHJMP OUT1SAM: TEST AL,01HJNZ STOPTEST AL,02HJZ ZX0JMP STOPK4: MOV BL,80HJMP SAMK5: MOV BL,0C0HJMP SAMK6: MOV BL,0FFHJMP SAM9ZX0: CALL DELAYMOV AL,BUFROR AL,1MOV BUF,ALJMP OUT1DELAY PROC NEARDELAY1: MOV CX,0FFFFHDELAY2: LOOP DELAY2DEC BLJNZ DELAY1RETDELAY ENDPCODE ENDSEND START(a)、采用间接寻址方式对8255的控制端口赋值8bh,即1000 1011,设置其工作方式为:A口方式0输出,C口输入,B口方式0输入。
(b)、上述程序通过检测8255 C口的相应电平,从而转入子程序,每个子程序对应着不同的延迟信号,从而实现对PA3、PA2、PA1、PA0电平移位速率的控制,进而控制电机速率。
1011由上述程序可知,速度选择开关的优先级别从高到低依次为:K4、K5、K6。
Delay 子程序的功能是根据不同的BL 值设置不同的延迟时间,从而实现不同的转速。
(c )、通过对可编程计数器8253A 的初始化设置,U1计数器1:T=12s 频率发生器;U1计数器2:T=8s ,方波发生器;U2计数器0:可重触发单稳态方式,初值为1800;U2计数器1:可重触发单稳态方式,初值为3600。
(d )8255控制字如3.3.1图所示:图3.3.1(e )8253控制字如3.3.2图所示:图3.3.2四、结论1、当程序运行时,按钮为四个,分别为“风速”、“风种”、“定时”和“停止”,LED指示灯共六个,分别指示风速“强”、“中”、“弱”,类型分别为“睡眠”、“自然”和“正常”。
2、电扇处于停转状态时:所有指示灯不亮,只有按下“风速”键时,其状态由“弱”→“中”→“强”→“弱”……往复循环改变,每按一下按键改变一次;按“类型”键时,其状态由“正常”→“睡眠”→“自然”→“正常”……往复循环改变;可以实现定时30min和60min.电扇在任何状态,只要按停止键,则进入停转状态。
五、心得体会及建议本次课程设计是模拟家用电风扇控制器,通过步进电机来实现风扇的物理实现,我们用8253输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。
电机的转动和停止则是通过8255的A0端子输出高低电平来继续或暂停8253的计数从而控制中断申请来实现的。
8253的定时时间决定了电机转动的方式,从而实现风种的控制。
通过电机的数据我们模拟了家用电风扇的控制器。
通过这次短暂的课程设计,不仅使我加深了对接口程序设计的认识,对接口各部件的工作原理也有了进一步的了解,也增强了分析故障的能力.以前学习过8255,8253芯片的相关内容,通过这次课程设计,通过设计,看书,终于有了比较深刻地了解.这次课程设计,虽然花费了很多时间,效果做得也不是很好,但却加深对汇编程序结构,指令,中断,调用等基础知识的认识。
在课程设计过程中,我深刻体会到汇编语言的难度是比较高的,要求非常严密的逻辑思维能力,但从中12我们学会了怎样运用8255进行并行控制,以及用8253进行时钟频率的控制,明白在程序的设计的同时,互相交流学习和讨论,将会开拓视野,启迪灵感。
当然还要有坚持不懈的精神。
六、附录1.电路连接图见A3附图.2.本次课设所用到的主要元器件简介:(a). 8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。
8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号13(6)方式5:硬件触发的选通信号8253各引脚功能如下。
D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
(b).8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:方式0—基本输入/输出方式方式1—选通输入/输出方式方式2—双向选通输入/输出方式8255引脚图如图3.2示,各引脚功能如下。
D7~D0——与CPU侧连接的八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器选择输入信号;14。