微机系统综合课程设计.docx

上传人:b****8 文档编号:30279463 上传时间:2023-08-13 格式:DOCX 页数:25 大小:154.55KB
下载 相关 举报
微机系统综合课程设计.docx_第1页
第1页 / 共25页
微机系统综合课程设计.docx_第2页
第2页 / 共25页
微机系统综合课程设计.docx_第3页
第3页 / 共25页
微机系统综合课程设计.docx_第4页
第4页 / 共25页
微机系统综合课程设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

微机系统综合课程设计.docx

《微机系统综合课程设计.docx》由会员分享,可在线阅读,更多相关《微机系统综合课程设计.docx(25页珍藏版)》请在冰豆网上搜索。

微机系统综合课程设计.docx

微机系统综合课程设计

 

课程设计报告

 

课程设计名称:

微机系统综合课程设计

课程设计题目:

模拟洗衣机动作

 

院(系):

计算机学院

专业:

计算机科学与技术

班级:

14010101

学号:

姓名:

指导教师:

紫学博

完成日期:

2014.7.4

目录

第1章总体设计方案1

1.1课程设计的内容和要求1

1.1.1课程设计的内容1

1.1.2课程设计要求1

1.2设计原理1

1.3设计思路1

1.3.1提出方案2

1.3.2方案论证2

1.4实验环境2

第2章详细设计方案3

2.1硬件电路设计3

2.2主程序设计3

2.3功能模块的设计与实现5

2.3.1初始化8255和8279模块5

2.3.2进水子程序模块的设计与实现6

2.3.3正转子程序模块的设计与实现7

2.3.4延时函数delay8

第3章结果测试及分析9

3.1结果测试9

3.2结果分析9

参考文献10

附录12

第1章总体设计方案

1.1课程设计的内容和要求

此次课程设计的题目为模拟洗衣机动作。

包括模拟洗衣机的进水过程,模拟洗衣机滚筒的滚动过程,以及实现提示用户洗衣的开始和结束的功能。

1.1.1课程设计的内容

利用8255A及8279芯片模拟洗衣机动作。

在数码管上应该能够显示如下信息:

洗衣机的正转,反转,进水,出水,洗衣,清洗以及脱水等,洗衣工作结束给出明确提示,比如,8个数码管全部显示为8。

运行程序模拟以下过程:

1)进水-正转-延时-反转-延时-正转,循环3次以上出水;

2)正转-延时-结束;

1.1.2课程设计要求

1)独立完成课程设计任务;

2)通过老师当场验收;

3)交出完整的课程设计报告。

1.2设计原理

利用8255A及8279芯片,实现模拟洗衣机洗衣的运动过程。

用汇编语言编写模拟洗衣机程序,并结合AEDK实验箱控制并显示洗衣机的运行过程:

按0表示开始运行洗衣过程并开始进水,同时四个单色灯顺序点亮最后全部点亮,然后8个数码管全部显示为0表示进水结束;然后再按1表示洗衣过程开始进行,首先双色灯正转三次,然后反转三次,至此一个循环结束,再按照这个过程再进行三次,洗衣过程结束;接着四个单色灯顺序熄灭,最后全部熄灭表示洗衣机出水结束,此时双色灯正转三次表示对衣物进行脱水;最后8个数码管全部显示为8表示整个洗衣模拟过程结束。

1.3设计思路

利用LCA88ET应用软件编写汇编语言程序,并结合AEDK实验箱上的8255和8279芯片设计电路,实现模拟洗衣机运动过程(进水-正转-延时-反转-延时-正转等功能)。

1.3.1提出方案

利用8279芯片设置0为进水键,1为开始键;利用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.1硬件电路设计

硬件电路包括8086与8255和8279两芯片连接构成,硬件电路连线图如图2.1所示。

图2.1硬件电路连线图

2.2主程序设计

程序首先要对8255和8279进行初始化,然后按下开始键0,洗衣机开始进水,接着按下开始洗衣键1,此时依次调用正转子程序、反转子程序、出水子程序、正转子程序,最后模拟洗衣机工作结束。

主程序流程图如图2.2所示。

图2.2主程序流程图

2.3功能模块的设计与实现

对8255A和8279芯片进行初始化后,利用8279芯片的键盘输入功能输入开始,利用8255A控制单色灯、双色灯分别显示洗衣机进水、正反转,利用数码管显示洗衣工作的开始和结束。

2.3.1初始化8255和8279模块

1、8255芯片是一种可编程的并行接口芯片,它有3个8位数据端口,既A口、B口、C口。

首先初始化8255,设置其工作方式,其A口、B口,C口的端口地址分别为200H、201H、202H,控制端口地址为203H。

从控制口203H输入控制字80H,表示A、B、C三个端口均可作为输出端口,本程序中采用A口和B口作为输出端口,利用8255A的B口作为输出来模拟洗衣机的进水过程(四个单色灯依次点亮,最后全部置亮),实现过程为:

首先将1000取反输出,点亮第一个灯,然后依次调用逻辑右移语句实现单色灯依次点亮,表示进水结束。

然后,利用8255A的A口作为输出来模拟洗衣机的正反转过程,同理首先置亮第一个灯然后依次调用逻辑右移语句,实现双色灯顺时针依次点亮。

2、8279芯片是一种通用的可编程序的键盘、显示接口器件,单片器件就能够实现键盘输入和显示控制两种功能。

首先初始化8279,设置其工作方式,奇地端口(212H):

输入的信息是命令,输出的信息是状态字;偶地址端口(210H):

输入和输出的信息是数据。

从奇地址端口212H输入控制字,00H表示8位字符显示,左端输入,编码扫描键盘,双键锁定。

38H表示时钟分频为24分频,0C2H用来置空FIFO存储器,0D0H用来清空显示RAM。

从奇地址端口212H读入状态字,与80H相测试检测显示RAM是否可用,与0FH相测试检测是否有键按下。

从偶地址端口210H读出数据,经查表便可将数据在LED数码管上显示出来。

LED数码管是共阴极的,使哪段亮加高电平即可。

本程序中采用8279A的LED显示来实现告知用户洗衣机洗衣的开始和结束(显示八个0表示洗衣的开始,显示八个8表示洗衣的结束),利用其键盘输入功能来实现洗衣机的进水、正反转(0键为开始进水,1键为滚筒开始旋转)。

2.3.2进水子程序模块的设计与实现

关于进水子程序,首先对CX赋值为4,AL中置入01111111B,对AL取非以后输出到201端口,此时第一个单色灯被置亮。

然后让CX自减,若不为0,则对AL取非后循环右移,再取非输出到201端口。

对AL重复这样的操作直至CX减为0,然后再将AL中置为00001111B,输出。

这样就实现了用单色灯模拟进水过程。

流程图如图2.3所示。

 

 

 

图2.3进水子程序流程图

2.3.3正转子程序模块的设计与实现

对于正转子程序,首先对CX赋值为3,接着对CX进行入栈保护,然后再对CX赋值为4,AL中置入01111111B,将AL赋值到CX,再让CX自减,若不为0,则对AL取非后循环右移,对AL重复这样的操作直至CX减为0;最后再对CX进行出栈保护,表示此过程循环执行3次。

正转子程序完成后继续调用反转子程序。

正转子程序功能实现如图2.4所示。

图2.4正转子程序流程图

注释:

出水子程序功能实现与入水子程序实现基本相仿。

反转子程序功能实现与正转子程序实现过程基本相仿,在报告中就不单列为一个程序模块。

2.3.4延时函数delay

延时函数的主要用途是在程序运行过程中相应地产生延时,增加程序的可读性,提高程序的执行性。

进入延时函数DELAY后,用寄存器CX来存储用来循环的值(十六进制)0FFFFH,因为在此之前,在寄存器CX中已经分别在低八位和高八位送入了用来存储当前饮料瓶的空瓶数量和满瓶数量,所以需要对此加以存储保护,即将寄存器CX压入栈中。

将CX进行自减,然后判断CX是否为0,如果不为0,则继续自减,直到为0。

因为在运行的过程中发现延时的时间比较短,不方便检查,达不到好的效果,所以在执行上述的语句后,接着执行几条NOP空指令语句,起到了延时的作用。

完成延时以后,要把栈中存储的当前空瓶数量值和满瓶数量值出栈。

延时函数DELAY的流程图如图2.5所示。

第3章结果测试及分析

3.1结果测试

程序编译成功后开始执行,按下开始键(0键)之后,洗衣机开始进水,四个单色灯依次点亮最后全部置亮表示进水结束,同时八个数码管全部显示为0,表示洗衣机开始工作。

此时按开始转动按键(1键),洗衣机滚筒开始正转,在试验箱上的现象是四个双色灯顺时针依次点亮,然后是依次逆时针依次点亮,如此循环三次,表示洗衣过程结束。

此时调用出水程序,现象为单色灯依次置灭,最后全部置灭,表示出水结束,随后执行正转程序,表示对衣物进行甩干,现象为双色灯顺时针依次点亮。

最后八个数码管全部显示为8,表示洗衣过程全部结束。

所得结果与预期的相一致。

3.2结果分析

对于上述的运行结果和操作过程,达到了课程设计任务书中的要求。

即本课设要求根据洗衣机原理模拟洗衣机洗衣过程,按下0键,程序执行开始功能。

数码管显示8个0,表示开始,进水灯亮。

当单色灯全亮,表示进水完毕。

按下1号键,洗衣机开始转动,正转3次,反转3次,循环3次自动出水;单色灯全灭,表示出水完毕;接着调用脱水程序,最后数码管显示8个8,洗衣机结束工作。

所得现象与预期的相一致,达到了课程设计的要求,实现了对洗衣机运作过程的模拟。

参考文献

[1]龚尚福.微机原理与接口技术[M].西安:

西安电子科技大学出版社,2003

[2]王中民.微型计算机原理[M].西安:

西安电子科技大学出版社,2003

[3]葛桂平.微机原理学习与实践指导[M].北京:

清华大学出版社,2010

[4]周杰英.微机原理、汇编语言与接口技术[M].北京:

人民邮电出版社,2011

[5]沈美明,温冬婵.IBM-PC汇编语言程序设计[M]北京:

清华大学出版社,2001

[6]张雪兰.汇编语言程序设计[M]北京:

清华大学出版社,2006

[7]马春燕.微机原理与接口技术:

基于32位机[M].北京:

电子工业出版社,2007

[8]马瑞芳.微机原理与接口技术要点[M].西安:

西安交通大学出版社,2006

[9]龚义建等.微机原理与接口技术导学[M].北京:

科学出版社,2006

[10]方立友.微机原理与汇编语言实用教程[M].北京:

清华大学出版社,2006

[11]朱定华.微机原理、汇编与接口学习指导[M].北京:

清华大学出版社,2006

[12]徐建平.微机原理与接口技术[M].北京:

航空工业出版社,2010

[13]郑初华.汇编语言、微机原理及接口技术[M].北京:

电子工业出版社,2006

附录

dsegsegment

Z8279EQU212H

D8279EQU210H

LEDMODEQU00;左边输入,八位显示外部译码八位显示

LEDFEQEQU38H;扫描频率

tabledb3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

dsegends

csegsegment

assumeds:

dseg,cs:

cseg

mainproc

movax,dseg

movds,ax

movdx,203h

moval,80h

outdx,al

movdx,200h

moval,0ffh

outdx,al;初始化8255

movdx,201h

moval,0ffh

outdx,al

movdx,212h

moval,00h

outdx,al

moval,38h

outdx,al;初始化8279

wait1:

movdx,212h

inal,dx

testal,80h

jnzwait1;8279是否忙

bb:

movdx,212h

inal,dx

testal,0fh

jzbb;是否有按键

movdx,210h

inal,dx

movah,al

cmpah,0

jnzbb;按键是否为零

calljjs

moval,0ffh

movdx,200h

outdx,al

PUSHCS

POPDS

MOVDX,Z8279

MOVAL,LEDMOD

OUTDX,AL

MOVAL,LEDFEQ

OUTDX,AL

MOVDX,D8279

MOVAL,3FH

OUTDX,AL

MOVDX,D8279

MOVAL,3FH

OUTDX,AL

MOVDX,D8279

MOVAL,3fH

OUTDX,AL

MOVDX,D8279

MOVAL,3FH

OUTDX,AL

MOVDX,D8279

MOVAL,3fH

OUTDX,AL

MOVDX,D8279

MOVAL,3fH

OUTDX,AL

MOVDX,D8279

MOVAL,3fH

OUTDX,AL

MOVDX,D8279

MOVAL,3fH

OUTDX,AL

movdx,201h

moval,00h

outdx,al

bb1:

movdx,212h

inal,dx

testal,0fh

jzbb1;是否有按键

movdx,210h

inal,dx

movah,al

cmpah,1;按1键开始转

jnzbb1

callzxh

ret

mainendp

zxhproc

movcx,3

aa:

pushax

pushbx

pushcx

pushdx

movcx,3

tt1:

moval,8

notal

calldelay

movdx,200h

outdx,al

pushcx

movcx,4

tl:

notal

shral,1

notal

calldelay

movdx,200h

outdx,al

looptl

popcx

looptt1

exit1:

movdx,200h

moval,0ffh

outdx,al

popdx

popcx

popbx

popax

callyxh

ret

zxhendp

yxhproc

pushax

pushbx

pushcx

pushdx

movcx,3

tt2:

moval,10h

notal

calldelay

movdx,200h

outdx,al

pushcx

movcx,4

tr:

shlal,1

calldelay

movdx,200h

outdx,al

looptr

popcx

looptt2

exit2:

movdx,200h

moval,0ffh

outdx,al

popdx

popcx

popbx

popax

deccx

jnzaa

calljjs

movcx,3

zz:

pushax

pushbx

pushcx

pushdx

movcx,3

ww1:

moval,8

notal

calldelay

movdx,200h

outdx,al

pushcx

movcx,4

yl:

notal

shral,1

notal

calldelay

movdx,200h

outdx,al

loopyl

popcx

loopww1

exit3:

movdx,200h

moval,0ffh

outdx,al

popdx

popcx

popbx

popax

PUSHCS

POPDS

MOVDX,Z8279

MOVAL,LEDMOD

OUTDX,AL

MOVAL,LEDFEQ

OUTDX,AL

MOVDX,D8279

MOVAL,7FH

OUTDX,AL

MOVDX,D8279

MOVAL,7FH;显示88888888

OUTDX,AL

MOVDX,D8279

MOVAL,7fH

OUTDX,AL

MOVDX,D8279

MOVAL,7FH

OUTDX,AL

MOVDX,D8279

MOVAL,7fH

OUTDX,AL

MOVDX,D8279

MOVAL,7fH

OUTDX,AL

MOVDX,D8279

MOVAL,7fH

OUTDX,AL

MOVDX,D8279

MOVAL,7fH

OUTDX,AL

ret

yxhendp;反转子程序

ee:

pushax

pushbx

pushcx

pushdx

movcx,1

rr1:

moval,8

notal

calldelay

movdx,201h

outdx,al

pushcx

movcx,4

ul:

notal

shral,1

notal

calldelayl

loopul

popcx

looprr1

exit4:

movdx,201h

moval,0ffh

outdx,al

popdx

popcx

popbx

popax

ret

jjsendp;进出水程序

delay:

pushcx

movcx,0ffefh

t1:

loopt1

popcx

ret

csegends

endmain

课程设计总结:

经过这次课程设计,通过自己动手操作,我对8255A、8279等芯片有了更进一步的认识,这种认识是区别于书本上的认识,让我能把书本上学到的东西运用的实际应用上。

在本次课程设计的设计过程中,由于我对8279比较陌生,之前都没接触过,所以刚开始时不知如何下手。

通过去图书馆查阅资料、网上参考了一些资料以及请教同学后,我对8255A和8279有了进一步的了解,对整个题目也有了更深刻的理解,本次程序的设计基本完成了任务书的要求。

这次课设遇到了不少问题,在解决问题的过程中,自己处理问题的能力得到很大的提高,同时也认识到自己的基础知识还不够扎实,所以我以后要更加努力的学习专业知识技能。

最后,还要感谢老师和同学们在课设过程中对我的指导和帮助,如果没有他们的帮助,也许我的这次课设并不会这么顺利的完成。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

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

当前位置:首页 > 高等教育 > 文学

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

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