课 程 设 计 报 告
课程设计名称:微机系统综合课程设计
课程设计题目:模拟洗衣机动作
院(系):计算机学院
专
班
学
姓
业:计算机科学与技术
级:
号:
名:
指导教师:
完成日期:
课程设计报告
目
录
第 1 章 总体设计方案...................................................................................................1
1.1 课程设计的内容和要求......................................................................................1
1.1.1 课程设计的内容.............................................................................................1
1.1.2 课程设计要求.................................................................................................1
1.2 设计原理..............................................................................................................1
1.3 设计思路..............................................................................................................2
1.3.1 提出方案.........................................................................................................2
1.3.2 方案论证.........................................................................................................2
1.4 实验环境..............................................................................................................2
第 2 章 详细设计方案...................................................................................................3
2.1 硬件电路设计......................................................................................................3
2.2 主程序设计..........................................................................................................4
2.3 功能模块的设计与实现......................................................................................5
2.3.1 进水子程序模块的设计与实现.....................................................................5
2.3.2 正转子程序模块的设计与实现.....................................................................6
2.3.3 延时函数 delay..............................................................................................7
第 3 章 结果测试及分析...............................................................................................8
3.1 结果测试..............................................................................................................8
3.2 结果分析..............................................................................................................8
参考文献...........................................................................................................................9
附 录...........................................................................................................................10
-I-
课程设计报告
第 1 章 总体设计方案
第 1 章 总体设计方案
1.1 课程设计的内容和要求
此次课程设计的题目为模拟洗衣机动作。包括模拟洗衣机的进水过程,模拟
洗衣机滚筒的滚动过程,以及实现提示用户洗衣的开始和结束的功能。
1.1.1 课程设计的内容
利用 8255A 及 8279 芯片模拟洗衣机动作。在数码管上应该能够显示如下信息:
洗衣机的正转,反转,进水,出水,洗衣,清洗以及脱水等,洗衣工作结束给出
明确提示,比如,8 个数码管全部显示为 8.运行程序模拟以下过程:
1) 进水-正转-延时-反转-延时-正转,循环 3 次以上出水;
2) 正转-延时-结束;
1.1.2 课程设计要求
1)独立完成课程设计任务;
2)通过老师当场验收;
3)交出完整的课程设计报告。
1.2 设计原理
根据课程设计任务书的内容与要求,要实现模拟洗衣机洗衣的运动过程。模
拟洗衣机程序运行时,按 0 表示已经开始运行洗衣过程并开始进水,同时 8 个数
码管全部显示为 0。然后四个单色灯顺序点亮最后全部点亮表示进水结束。然后
再按 1 表示洗衣过程开始进行,首先双色灯正转三次,然后反转三次,至此一个
循环结束,按照这个过程再进行三次,洗衣过程结束。然后四个单色灯顺序熄灭,
最后全部熄灭表示洗衣机出水结束,此时双色灯正转三次表示对衣物进行脱水。
最后 8 个数码管全部显示为 8 表示洗衣过程结束。
-1-
课程设计报告
第 1 章 总体设计方案
1.3 设计思路
编写汇编语言程序,并结合 AEDK 实验箱上的相关芯片设计电路,实现模拟洗
衣机运动过程(进水,正转,延时,反转,延时,正转等功能)。
1.3.1 提出方案
运用 8279 完成进水键和开始键的设置;运用 8255 来输出控制双色灯的输出
来完成题目要求的各项要求即:洗衣机的正转和反转,单色灯的输出来实现进水
脱水的过程。数码管显示八个 0 或者 8 表示洗衣工作的开始和结束。
1.3.2 方案论证
利用 8279A 芯片的键盘输入来实现洗衣机的进水、正反转(0 键为开始进水,
1 键为滚筒开始旋转),用 8279A 的 LED 显示来实现告知用户洗衣机洗衣的开始和
结束(显示八个 0 表示洗衣的开始,显示八个 8 表示洗衣的结束)。利用 8255A
的 B 口作为输出来模拟洗衣机的进水过程(四个单色灯依次点亮,最后全部置亮),
实现过程为首先将 1000 取反输出,点亮第一个灯,然后依次调用逻辑右移语句实
现单色灯依次点亮,表示进水结束。然后按 1 键,表示开始进行洗衣,利用 8255A
的 A 口作为输出来模拟洗衣机的正反转过程,同理首先置亮第一个灯然后依次调
用逻辑右移语句,实现双色灯顺时针依次点亮。调用 loop 语句使其循环三次,然
后正转子程序调用反转子程序同理实现双色灯的三次逆时针循环点亮。此时再调
用 loop 语句使整个正反转过程执行三次,表示洗衣过程结束。然后调用出水程序,
与进水子程序同理。最后调用正转子程序表示对衣物进行甩干。最后八个数码管
全部显示为 8 表示整个洗衣过程结束。经实际连线操作,所得现象与预期的相一
致,方案成功。
1.4 实验环境
·硬件环境:AEDK 实验箱,PC 机。
·软件环境:LCA88ET 应用软件。
-2-
课程设计报告
第 2 章 详细设计方案
第 2 章 详细设计方案
2.1 硬件电路设计
硬件电路由以下两部分构成,如图 2.1 所示。
200h-208h
CS
8255
CSCC
210h -218h
CS
8279
接键盘
PA0-PA3 接双色灯
Pb0-Pb3 接单色灯
输出显示
图 2.1 硬件电路连线图
1)芯片 8255 是一种可编程的并行接口芯片,它有 3 个 8 位数据端口,既
A 口、B 口、C 口。首先初始化 8255 设置其工作方式,其 A 口、B 口 , C 口的
端口地址分别为 200H、201H、202H,控制端口地址为 203H。从控制口 203H 输
入控制字 80H,表示 A、B、C 三个端口均可作为输出端口,本程序中采用 A 口
和 B 口作为输出端口。
2)8279 是一种通用的可编程序的键盘、显示接口器件,单片器件就能够
实现键盘输入和显示控制两种功能。 首先初始化 8279,设置其工作方式,奇
地端口(212H):输入的信息是命令;输出的信息是状态字,偶地址端口(210H):
输入和输出的信息是数据。从奇地址端口 212H 输入控制字,00H 表示 8 位字符
显示,左端输入,编码扫描键盘,双键锁定。38H 表示时钟分频为 24 分频。0C2H
用来置空 FIFO 存储器。0D0H 用来清空显示 RAM。从奇地址端口 212H 读入状态
字,与 80H 相测试检测显示 RAM 是否可用,与 0FH 相测试检测是否有键按下。
从偶地址端口 210H 读出数据,经查表便可将数据在 LED 数码管上显示出来。LED
数码管是共阴极的,使哪段亮加高电平即可。
-3-
课程设计报告
第 2 章 详细设计方案
2.2 主程序设计
主程序流程图如图 2.2 所示。
N
N
N
开始
初始化 8255,8279
是否有按键
Y
按键是否为 0
Y
调用进水子程序
按键是否为 1
Y
调用正转子程序
调用反转子程序
调用出水子程序
调用正转子程序
结束
图 2.2 主程序流程图
-4-
课程设计报告
第 2 章 详细设计方案
如图 2.2 所示,按下开始键 0,洗衣机开始进水,然后按下开始洗衣键 1,
此时依次调用正转子程序、反转子程序、出水子程序、正转子程序。最后模拟
洗衣机工作结束。
2.3 功能模块的设计与实现
对 8255A,8279A 芯片进行初始化,利用 8279A 的键盘输入功能输入开始,利
用 8255A 控制单色灯、双色灯显示进水、正反转,利用数码管显示洗衣工作的开
始和结束。
2.3.1 进水子程序模块的设计与实现
对 CX 赋值为 4,AL 中置入 01111111B,对 AL 取非以后输出到 201 端口,此
时第一个单色灯被置亮。然后让 CX 自减,若不为 0,则对 AL 取非后循环右移,
再取非输出到 201 端口。对 AL 重复这样的操作直至 CX 减为 0,然后再将 AL 中置
为 00001111,输出。这样就实现了用单色灯模拟进水过程。流程图如图 2.3 所示。
AL 循环右移 1 位
N
开始
CX 中赋值为 4
AL 中置入 011111111B
将 AL 输出到 DX
CX 减 1
CX=0
Y
AL 中置入 00001111B
将 AL 输出
结束
图 2.3 进水子程序流程图
-5-
课程设计报告
第 2 章 详细设计方案
2.3.2 正转子程序模块的设计与实现
正转子程序功能实现如图 2.4
AL 循环右移 1 位
N
开始
CX 中赋值为 3
对 CX 进行入栈保护
CX 中赋值为 4
AL 中置入 011111111B
将 AL 输出到 DX
CX 减 1
CX=0
Y
对 CX 进行出栈操作
CX 减 1
CX=0
Y
调用反转子程序
结束
图 2.4 正转子程序流程图
N
注释:出水子程序功能实现与入水子程序实现基本相仿。反转子程序功能实
现与正转子程序实现过程基本相仿,在报告中就不单列为一个程序模块。
-6-