完整版微机原理毕业课程设计电风扇程序设计.docx

上传人:b****8 文档编号:9166653 上传时间:2023-02-03 格式:DOCX 页数:22 大小:156.71KB
下载 相关 举报
完整版微机原理毕业课程设计电风扇程序设计.docx_第1页
第1页 / 共22页
完整版微机原理毕业课程设计电风扇程序设计.docx_第2页
第2页 / 共22页
完整版微机原理毕业课程设计电风扇程序设计.docx_第3页
第3页 / 共22页
完整版微机原理毕业课程设计电风扇程序设计.docx_第4页
第4页 / 共22页
完整版微机原理毕业课程设计电风扇程序设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

完整版微机原理毕业课程设计电风扇程序设计.docx

《完整版微机原理毕业课程设计电风扇程序设计.docx》由会员分享,可在线阅读,更多相关《完整版微机原理毕业课程设计电风扇程序设计.docx(22页珍藏版)》请在冰豆网上搜索。

完整版微机原理毕业课程设计电风扇程序设计.docx

完整版微机原理毕业课程设计电风扇程序设计

 

微机原理课程设计说明书

 

题目:

家用电风扇的控制设计

学院:

计算机与通信工程学院

专业:

姓名:

学号:

指导教师:

 

2012年8月24日

目  录

前言……………………………………………………………………………..1

1[注释清单说明]…....…………………………………………………………..2

2[芯片介绍]…………………………………………………………………....3

2.1[8253芯片]…………………………………………………………..3

2.2[8255芯片]………………....…………………………………....4

3[设计过程]..............................................................................................................6

3.1[总体设计].................................................................................................6

3.2[硬件设计]..................................................................................................6

3.3[软件设计]..................................................................................................6

3.3.1[风速设计].........................................................................7

3.3.2[类型设计].........................................................................7

3.3.3[转头设计]........................................................................7

4[硬件框图及说明].........................................................................................8

5[软件模块及流程说明]..................................................................................9

5.1[软件框图]......................................................................................9

5.2[程序代码]................................................................................................10

参考文献..............................................................................................................17

总结体会.................................................................................................................18

前言

随着物联网时代的到来,芯片越来越显示其重要的价值,而如何将物联网引入普通家庭,让普通老百姓感受到他们的实惠,针对这个问题我设计了一个简易的电风扇程序其概况如下:

一.课程设计的题目是家用风扇控制器,用微机中硬件与软件相结合的方法设计出一个电风扇的控制器.

二.控制器有四个按钮,分别为风速,类型,转头和停止键;三个LED指示灯用于指示风速强、中、弱;另外三个LED指示灯用于指示类型为睡眠、自然和正常,还有一个直流电机控制是否转头.功能如下:

1.电扇处于停转状态时,所有指示灯不亮,只有按下“风速”键时电扇才会旋转。

电扇在任何状态,只要按下“停止”键,则进入停转状态。

2.风速的强、中、弱分别对应于电扇转动的快速、中速和慢速.

3.初始状态为:

风速“弱”,类型“正常”.

4.按“风速”键,状态由“弱”“中”“强”“弱”……往复循环改变,每按一下按键改变一次状态;

5.按“类型”键,其状态由“正常”“睡眠”“自然”“正常”……往复循环改变;

1)正常电扇连续运转;

2)自然电扇模拟自然风,即转2s,停4s;

3)睡眠电扇慢转,产生轻柔的微风,运转2s,停转6s.

6.当按下K3摇头键的时候会摇头,再按会停止摇头,可以手动选择是否摇头.

1注释说明清单

下文中所表示的字母的意思如下:

K1:

风速键,用来控制风速,风速包括弱风,中风,强风三种.每按一次K1键风速就循环改变一次.

K2:

类型键,用来控制风的类型,类型包括正常风,睡眠风,自然风,每按一次K2键风种将会循环改变一次.

K3:

转头键,只要系统启动后按此键,风扇就会在转头与不转头之间切换.

K4:

停止键,一旦风扇运行按停止键就会关闭.

L1:

弱风指示灯

L2:

中风指示灯

L3:

强风指示灯

L5:

正常风指示灯

L6:

睡眠风指示灯

L7:

自然风指示灯

2芯片介绍

2.18253芯片

8253是Intel公司生产的可编程间隔定时器。

8253具有以下基本功能:

(1)有3个独立的16位计数器;

(2)每个计数器可按二进制或十进制(BCD)计数;

(3)每个计数器可编程工作于6种不同工作方式;

(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz);

(5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。

图14-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。

8254的工作方式如下述:

(1)方式0:

计数到0结束输出正跃变信号方式。

(2)方式1:

硬件可重触发单稳方式。

(3)方式2:

频率发生器方式。

(4)方式3:

方波发生器。

(5)方式4:

软件触发选通方式。

(6)方式5:

硬件触发选通方式。

图14-18254的内部接口和引脚

8253的控制字有两个:

一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。

这两个控制字共用一个地址,由标识位来区分。

控制字格式如表14-1所示。

读回控制字格式如表14-2所示。

当读回控制字的D4位为0时,由该读回控制字D1~D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。

状态字格式如表14-3所示。

表14-18253的方式控制字格式

D7

D6

D5

D4

D3

D2

D1

D0

计数器选择

读写格式选择

工作方式选择

计数码制选择

00-计数器0

01-计数器1

10-计数器2

11-读出控制字标志

00-锁存计数值

01-读写低8位

10-读写高8位

11-先读写低8位,再读写高8位

000-方式0

001-方式1

010-方式2

011-方式3

100-方式4

101-方式5

0-二进制数

1-十进制数

表14-28253读出控制字格式

D7

D6

D5

D4

D3

D2

D1

D0

1

1

0-锁存计数值

0-锁存状态信息

计数器选择(同方式控制字)

0

表14-38253状态字格式

D7

D6

D5

D4

D3

D2

D1

D0

OUT引脚现行状态

1-高电平2-低电平

计数初值是否装入

1-无效2-计数有效

计数器方式(同方式控制字)

2.28255芯片

8255可编程外围接口芯片是Intel公司生产的通用并行IO接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:

方式0—基本输入出方式;

方式1—选通输入出方式;

方式2—双向选通工作方式。

8255的内部结构及引脚如图12-1所示,8255工作方式控制字和C口按位置位复位控制字格式如图12-2所示。

图12-18255的内部结构及引脚

图12-28255控制字格式

3设计过程

3.1总体设计:

根据题目要求,其基本功能是用四个按键来控制风速、类型,转头以及停止这四个状态的变换。

当风速键按下时实现风速强、中、弱三种状态依次循环切换,由于电机控制芯片没找好,所以用三个LED指示灯来显示;当类型键按下时实现类型正常、睡眠、自然三种状态的依次循环切换,并用三个LED指示灯来显示。

题目中类型键要求自然状态转2秒,停4秒;睡眠状态转2秒,停转6秒,这个涉及到时间问题,可以通过硬件或者软件来实现,我们选择通过软件来实现。

综上所述,可以采用硬件与软件结合的设计方法来实现基本功能。

3.2硬件设计:

本次实验除利用了PC机本身资源外(如中断资源),还利用了平台上的8255并行接口单元,8253计数器,LED指示灯电路,直流电机,便构成家用风扇控制电路.

本次实验硬件部分主要是用可编程并行通信接口8255A来实现的。

四个按键是输入,用8255A的其中一个端口作为输入,这里选择用端口A作为输入;六个LED指示灯用作输出,这里选择用端口B和端口C作为输出。

8255A是有多种功能的可编程并行接口电路芯片,8255A分3个端口:

端口A、端口B和端口C,每个端口都是8位,共24个外设引脚,共三种输入输出工作方式。

1)方式0—基本输入输出方式,适用于无条件传送和查询方式的接口电路。

2)方式1—选通输入输出方式,适用于查询和中断方式的接口电路。

3)方式2—双向选通传送方式,适用于与双向传送数据的外设;适用于查询和中断方式的接口电路。

本次实验我们选择方式0,只实现基本的输入、输出即可。

8253A有3个计数器,这里我们选择计数器0进行计数,CLK0链接系统时钟信号,计数器0选择工作方式3工作,GATE0接PC0端口,然后将两路接入直流电机的正负极。

3.3软件设计:

本设计通过编程对8255A的端口A读入的键值进行判断,再转入到相应的子程序进行状态改变。

最后通过端口B进行输出显示。

控制系统分四个功能模块,主要包含风速设置、类型设置、默认状态显示和退出系统。

3.3.1风速设置

这个模块中风速的三个状态强、中、弱之间的循环切换是通过将端口A的键值逐次加1(初始值为0,每按下一次风速键寄存器值加1),然后对3求余,取其余数分别代表这三个状态来实现的。

由于对3求余的余数只有0、1、2三个值,分别代表强、中、弱,将其余数保存到寄存器中,根据寄存器中是0、1、2来判断强、中、弱风三个状态。

3.3.2类型设置

风的类型有:

正常、自然、睡眠三种。

a)正常电扇连续运转。

b)自然电扇模拟自然风,即转2s,停4s。

c)睡眠电扇慢转,产生轻柔的微风,运转2s,停转6s。

自然状态和睡眠状态时间的控制是通过调用延时子程序来实现的,由于一个机器周期是10-6秒,延时程序是通过循环来实现的,让指令执行106次来实现1秒。

不是很精确。

3.3.3转头设置

这个模块利用8255和8253来完成,该模块有两种状态即转头和不转头,8255的PC2端口实现状态的输入,PC0端口输出到8253的GATE0端口来控制8253工作,然后通过8253来控制直流电机工作。

用按的次数除以2取余数来判断是转头还是停止。

4硬件系统框图及说明

系统总线

5软件模块主要流程图及说明

由于要写出具体的试验程序逻辑复杂,就简要的写出了汇编程序的设计流程。

5.1软件框图

5.2程序代码

DATASSEGMENT

;此处输入数据段代码

T8255AEQU200H

T8255BEQU201H

T8255CEQU202H

COUNT0EQU204H

CONTROLEQU207H

T8255MODEEQU203H

TEMPK1DB0F8H

KEY1DB00H

KEY2DB00H

KEY3DB00H

KEY1_YUSHUDB00H

KEY2_YUSHUDB00H

KEY3_YUSHUDB00H

THREEDB03H

TWODB00H

FREE_STARTDB00H

SHANGCI_STARTDB00H

DANGQIAN_STARTDB00H

DATASENDS

STACKSSEGMENT

;此处输入堆栈段代码

DW100HDUO(0)

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX;此处输入代码段代码

;8253芯片初始化

MOVDX,CONTROL

OUTDX,AL

MOVDX,COUNT0;置初值1000H

MOVAL,00H

OUTDX,AL

MOVAH,10H;

OUTDX,AL

MOVDX,T8255MODE;模式字输入

MOVAL,90H;端口A作为输入,端口B作为输出

OUTDX,AL

MOVDX,T8255B;对灯清零

MOVAL,0FFH

OUTDX,AL

MOVDX,T8255C;对电机进行清零;

MOVAL,OFFH

OUTDX,AL

JMPL1

READ:

MOVDX,T8255A;读取端口A的键值

INAL,DX

MOVBX,00H

MOVBL,TEMPK1

MOVTEMPK1,AL

XORBL,AL

CMPBL,01H;判断风速键是否按下

JZADD_K1

CMPBL,02H;判断类型键是否按下

JZADD_K2

CMPBL,03H

JZADD_K3

CMPBL,04H;判断停止键是否按下

JZL10

MOVBL,SHANGCI_START;如果没有按键按下,判断上次状态

CMPBL,01H

JZL1

CMPBL,02H

JZL2

CMPBL,03H

JZL3

CMPBL,04H

JZL4

CMPBL,05H

JZL5

CMPBL,06H

JZL6

CMPBL,07H

JZL7

CMPBL,08H

JZL8

CMPBL,09H

JZL9

CMPBL,0AH

JZL10

ADD_K1:

INCKEY1

MOVAL,KEY1

MOVAH,00H

DIVTHREE

MOVKEY1_YUSHU,AH

JMPCONNEC

ADD_K2:

INCKEY2

MOVAL,KEY2

MOVAH,00H

DIVTHREE

MOVKEY2_YUSHU,AH

JMPCONNECT

ADD_K3:

INCKEY3

MOVAL,KEY3

MOVAH,00H

DIVTWO

MOVKEY3_YUSHU,AH

JMPCONNECT

CONNECT:

MOVCL,FREE_START

MOVAH,KEY1_YUSHU

MOVAL,KEY2_YUSHU

MOVBL,KEY3_YUSHU

CMPBL,00H

JZSTOP

CMPBL,01H

JZSTART

A1:

CMPAX,0000H

JZL1

CMPAX,0001H

JZL2

CMPAX,0002H

JZL3

CMPAX,0100H

JZL4

CMPAX,0101H

JZL5

CMPAX,0102H

JZL6

CMPAX,0200H

JZL7

CMPAX,0201H

JZL8

CMPAX,0202H

JZL9

STOP:

PUSHDX

PUSHAX

MOVDX,T8255C

MOVAL,00H

OUTDX,AL

POPAX

POPDX

JMPA1

START:

PUSHDX

PUSHAX

MOVDX,T8255C

MOVAL,01H

OUTDX,AL

POPAX

POPDX

JMPA1

L1:

MOVSHANGCI_START,01H

MOVAL,36H;弱风正常

JMPSHOW

L2:

MOVSHANGCI_START,02H

MOVAL,2EH;弱风睡眠

MOVFREE_START,CL

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

MOVAL,3EH

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

JMPREAD

L3:

MOVSHANGCI_START,03H

MOVAL,1EH;弱风自然

MOVFREE_START,CL

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

MOVAL,3EH

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

JMPREAD

L4:

MOVSHANGCI_START,04H

MOVAL,35H;中风正常

JMPSHOW

L5:

MOVSHANGCI_START,05H

MOVAL,2DH;中风睡眠

MOVFREE_START,CL

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

MOVAL,3DH

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

JMPREAD

L6:

MOVSHANGCI_START,06H

MOVAL,1DH;中风自然

MOVFREE_START,CL

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

MOVAL,3DH

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

JMPREAD

L7:

MOVSHANGCI_START,07H

MOVAL,33H;强风正常

JMPSHOW

L8:

MOVSHANGCI_START,08H

MOVAL,2BH;强风睡眠

MOVFREE_START,CL

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

MOVAL,3BH

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

JMPREAD

L9:

MOVSHANGCI_START,09H

MOVAL,1BH;强风自然

MOVFREE_START,CL

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

MOVAL,3BH

MOVDX,T8255B

OUTDX,AL

CALLDELAY

CALLDELAY

CALLDELAY

CALLDELAY

JMPREAD

L10:

MOVSHANGCI_START,0AH

MOVAL,0FFH;停止

MOVDX,T8255B

OUTDX,AL

JMPREAD

SHOW:

MOVFREE_START,CL

CALLDELAY

MOVDX,T8255B

OUTDX,AL

JMPREAD

QUIT:

MOVAX,4CH

INT21H

DELAYPROC

PUSHBX

PUSHCX

MOVCX,07FFH

D1:

MOVBX,0FFFFH

D2:

DECBX

JNZD2

LOOPD1

POPBX

POPCX

RET

DELAYENDP

DELAY6PROC

PUSHCX

PUSHAX

MOVCX,06H

D3:

CALLDELAY

LOOPD3

POPAX

POPCX

RET

DELAY6ENDP

CODESENDS

ENDSTART

参考文献

[1]权《微型计算机技术及应用(第四版)》清华大学出版社

[2]汪志宏江敏《微机原理与接口技术课程设计》机械工业出版社

[3]《微机原理与接口技术实验及课程设计》西南交通大学出版社

[4]王忠民,王钰,王小睫.《微型计算机原理》(第二版)西安电子科技大学出版社

设计总结

通过本次课程设计使我对实验的理解和汇编能力得到增强。

开始的时候遇到很多困难,在老师和同学的帮助下问题得到解决。

这次课程设计使我对理论和实践充分结合的重要性认识更加深刻。

这次课程设计中也可以反映出许多问题:

1、当停止键按下时只能让灯亮一会就又显示上一次状态,这时我们在程序里又多加了一次判断,即当按下停止键后不再按下其他键时,通过判断跳转又跳到全灭的状态(上一次状态),这个问题得到解决。

2、对风速键和类型键的状态组合,用一个16位的寄存

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1