毕业设计论文微机原理与接口技术.docx
《毕业设计论文微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《毕业设计论文微机原理与接口技术.docx(27页珍藏版)》请在冰点文库上搜索。
毕业设计论文微机原理与接口技术
上海工程技术大学
ShanghaiUniversityofEngineeringScience
一、课程设计的目的:
1.通过《微机原理与接口》课程设计,使我们能够进一步了解微型计算机工作原理,微型计算机的硬件结构及微型计算机软件编程。
2.要求我们根据接口电路的硬件要求进行计算机的汇编语言程序设计,使我们的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
3.课程设计有利于基础知识的理解和逻辑思维的锻炼。
本课程设计是培养和锻炼我们综合应用所学理论知识解决实际问题能力、进行工程实训的重要教学环节,也能培养我们理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力。
4.微机原理与接口技术是一门实践性较强的课程,我们在学完该课程之后,进行一次课程设计,是非常必要的。
这能使我们将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。
通过设计实践,培养我们查阅专业资料、工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
在设计中不但要培养和提高学生解决工程具体问题、动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。
二、设计题目1的分析:
1.设计目的:
1.熟练掌握8088汇编语言程序各种结构的设计及编程方法;
2.熟练掌握DOS中断功能调用的方法。
2.设计要求:
编制一个完整的程序,计算100个正整数(字数据)之和,如果不超过机器数的范围(65535),则计算其平均值并存于RESULT中,否则显示“overflow”。
3.设计思想:
本设计要求100个正整数之和再按设计要求显示,但是在将源程DOS时,
输入100数要溢出时用cup代码表示不明显,直观,所以我将100个该写成10个数,手动输入10个数,使程序简单明了。
虽然变成了10个数,其他源代码都与100个数时意义相同,能满足设计的要求及目的。
程序开始时定义10个正整数以及存放结果的变量,然后10个数相加,在期间如果超出“65535”,则通过DOS输出“overflow”,如果没有则继续相加,直至相加完成,完成后再通过DOS求平均值,再通过DOS输出结果至目标地址,程序结束。
4.程序源代码:
①.没有溢出时:
DATASEGMENT
MEMDW5,5,5,5,5,5,5,5,5,5
STRDB'overflow!
',0DH,0AH,'$'
RESULTDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
XORAX,AX
MOVSI,AX
MOVCX,100
SUM:
ADDAX,MEM[SI]
JCNEXT
ADDSI,2
LOOPSUM
MOVBX,100
MOVDX,0
DIVBX
MOVRESULT,AX
JMPSHORTEXIT
NEXT:
LEADX,STR
MOVAH,09H
INT21H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
1.溢出时:
DATASEGMENT
MEMDW5,5,5,5,5,5,5,5,5,65532
STRDB'overflow!
',0DH,0AH,'$'
RESULTDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
XORAX,AX
MOVSI,AX
MOVCX,100
SUM:
ADDAX,MEM[SI]
JCNEXT
ADDSI,2
LOOPSUM
MOVBX,100
MOVDX,0
DIVBX
MOVRESULT,AX
通过DOS输出overflow
是否超出机器数范围
开始
结束
定义10个正整数以及存放结果的变量
10个正整数相加
10个数是否加完
通过DOS输出10个数的和的平均值
Y
N
Y
N
JMPSHORTEXIT
NEXT:
LEADX,STR
MOVAH,09H
INT21H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5.程序流程图:
6.调试结果和程序结果分析:
1.没有溢出时:
118F:
0000B88C11MOVAX,118C
118F:
00038ED8MOVDS,AX
118F:
000533COXORAXAX
118F:
00078BFOMOVSI,AX
118F:
0009B9OAOOMOVCXOOOA
118F:
000C03840000ADDAX,[SI+0000]
118F:
00107212JB0024
118F:
001283C602ADDSI,+02
118F:
0015E2F5LOOPOOOC
118F:
0017BB0A00MOVBX,000A
118F:
001ABA0000MOVDX,0000
118F:
001DF7F3DIVBX
118F:
001FA31F00MOV[OO1F],AX
118F:
0022EB08JMP002C
118F:
00248D161400LEADX,[0014]
118F:
0028B409MOVAH,09
118F:
002ACD21INT21
118F:
002CB44CMOVAH,4C
-G002C
AX=0005BX=000ACX=0000DX=0000SP=0000BP=OOOOSI=0014DI=0000DS=118CES=117CSS=118CCS=118FIP=002CMVUPEIPLNZNAPENC
118F:
002CB44CMOVAH,4C
-D0000
118C:
00000500050005000500-0500050005000500
118C:
0010050005006F766572-666C6F770D0A2405
118C:
00200000000000000000-0000000000000000
118C:
0030B88C118ED833C08B-F0B90A0003840000
118C:
0040721283C602E2F5BB-0A00BA0000F7F3A3
118C:
00501F00EB088D161400-B409CD21B44CCD21
118C:
0060048987C4038997C6-03FF362621EBCC7F
118C:
007083C4022BC050FF36-6427FF3662278B1E
2.溢出时:
118F:
0000B88C11MOVAX,118C
118F:
00038ED8MOVDS,AX
118F:
000533COXORAXAX
118F:
00078BFOMOVSI,AX
118F:
0009B9OAOOMOVCXOOOA
118F:
000C03840000ADDAX,[SI+0000]
118F:
00107212JB0024
118F:
001283C602ADDSI,+02
118F:
0015E2F5LOOPOOOC
118F:
0017BB0A00MOVBX,000A
118F:
001ABA0000MOVDX,0000
118F:
001DF7F3DIVBX
118F:
001FA31F00MOV[OO1F],AX
118F:
0022EB08JMP002C
118F:
00248D161400LEADX,[0014]
118F:
0028B409MOVAH,09
118F:
002ACD21INT21
118F:
002CB44CMOVAH,4C
-G002C
overflow
AX=0924BX=0000CX=0001DX=0014SP=0000BP=OOOOSI=0012DI=0000DS=118CES=117CSS=118CCS=118FIP=002CMVUPEIPLNZACPOCY
118F:
002CB44CMOVAH,4C
三、设计题目2的分析:
1.设计目的:
1.掌握8088CPU及存储器硬件接口电路的设计连接;
2.掌握相关硬件驱动软件设计及信息处理软件的设计调试的方法。
2.设计要求:
设计十字路口交通灯控制系统。
基本要求:
完成双向红绿黄灯的配合控制。
附加内容:
在基本的电路中加入必要的灯光闪灯,人行定时显示等。
3.设计思想:
把实验箱中的8255的8个C口按我规定的顺序接到实验箱红绿灯模块的接口处。
实验中,8255的C口作为输出口,通过编写程序来控制C口输出的信号,信号从C口输出后以二进制数的形式被输出到实验箱的红绿灯模块的接口。
再以82558个C口所输出的高低电平来控制实验箱的红绿灯模块的灯的情况。
实验时,通过高低电平测试,灯亮是低电平有效,且DG是指灯亮绿色,DR是指灯亮红色,若同时驱动则灯亮黄色。
我所设计的红绿灯双向亮灯情况如下,假使开始时,北南方向亮红灯,东西方向亮绿灯。
调用延时子程序后,北南方向还为红灯,东西两方向灯熄灭,再调用延时子程序后,北南两方向不变,东西两方向亮绿灯,通过这样反复几次,以造成东西方向灯闪烁的效果,此后,东西两方向变黄灯,北南两方向还为红灯,调用延时子程序后,东西两方向变为红灯,北南两方向变为绿灯,后面东西方亮灯情况与北南方亮灯情况在前面的状态下交换。
东西方和南北方亮灯情况交换完成后再返回到开始东西方亮绿灯,北南方向亮红灯,最后进行跳转,重新开始输入信号。
这样就可以完成双向红绿黄灯的配合控制。
4.实验电路及接线:
实验箱上控制红绿灯的接口线路如下图所示:
DG1DG2DG3DG4
DR1DR2DR3DR4
实验箱红绿灯排列示意图图
被控制的灯的位置
(相对于上图)
8255输出接口
接入灯的接口
灯的颜色变化
附加变化
左方灯
PC0
DG1
绿灯
同时亮起,变为黄灯
PC1
DR1
红灯
上边灯
PC2
DG2
绿灯
PC3
DR2
红灯
下边灯
PC4
DG3
绿灯
PC5
DR3
红灯
右方灯
PC6
DG4
绿灯
PC7
DR4
红灯
5.程序源代码:
DSEGSEGMENT
DSEGENDS
SSEGSEGMENTSSEG
STADW50DUP(?
)
TOPEQULENGTHSTA
SSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG,ES:
DATA,SS:
SSEG
BEGIN:
MOVAL,80H
MOVDX,203H
OUTDX,AL
MOVDX,202H
OVF:
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,041H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,014H
OUTDX,AL
CALLDELAY
JMPOVF
DELAYPROCNEAR
MOVBX,1AAH
NEXT1:
MOVCX,0DFH
NEXT2:
LOOPNEXT2
DECBX
JNZNEXT1
RET
DELAYENDP
CSEGENDS
ENDBEGIN
6.程序结果分析:
将实验箱与电脑连接,打开电脑编程软件,将所编译的程序打入其中,完成后将程序捎入实验箱中,程序开始后,8255输出信号69H,及为二进制数01101001B,其从C口输出对应顺序为:
PC7PC6PC5PC4PC3PC2PC1PC0,在其对应的8个红绿灯接口中,DG1为1,DR1为0,DG4为1,DR4为0,即左右两方向灯亮红灯;DG2为0,DR2为1,DG3为0,DR3为1,即上下两方向灯亮绿灯。
调用延时子程序后,8255输出信号7DH,及为二进制数01111101B,在其对应的8个红绿灯接口中,DG1为1,DR1为0,DG4为1,DR4为0,即左右两方向灯亮红灯;DG2为1,DR2为1,DG3为1,DR3为1,即上下两方向灯熄灭。
调用延时子程序后,8255输出信号69H,及为二进制数01101001B,在其对应的8个红绿灯接口中,DG1为1,DR1为0,DG4为1,DR4为0,即左右两方向灯亮红灯;DG2为0,DR2为1,DG3为0,DR3为1,即上下两方向灯亮绿灯。
左右两边的灯保持红灯不变,上下两灯由绿灯变为熄灭,再由熄灭变为绿灯,以造成上下两灯闪烁的效果,这样重复四次后,8255输出信号69H,及为二进制数01101001B,在其对应的8个红绿灯接口中,DG1为1,DR1为0,DG4为1,DR4为0,即左右两方向灯亮红灯;DG2为0,DR2为1,DG3为0,DR3为1,即上下两方向灯亮绿灯。
调用延时子程序后,8255输出信号41H,及为二进制数01000001B,在其对应的8个红绿灯接口中,DG1为1,DR1为0,DG4为1,DR4为0,即左右两方向灯亮红灯;DG2为0,DR2为0,DG3为0,DR3为0,即上下两方向灯亮黄灯。
调用子程序后,8255输出信号96H,及为二进制数10010110B,在其对应的8个红绿灯接口中,DG1为0,DR1为1,DG4为0,DR4为1,即左右两方向灯亮绿灯;DG2为1,DR2为0,DG3为1,DR3为0,即上下两方向灯亮红灯。
调用子程序后,8255输出信号D7H,及为二进制数11010111B,在其对应的8个红绿灯接口中,DG1为1,DR1为1,DG4为1,DR4为1,即左右两方向灯熄灭;DG2为1,DR2为0,DG3为1,DR3为0,即上下两方向灯亮红灯。
上下两灯保持红灯不变,左右两边的灯由绿灯变为熄灭,再由熄灭变为绿灯,以造成上下两灯闪烁的效果,这样重复四次后,8255输出信号96H,及为二进制数10010110B,在其对应的8个红绿灯接口中,DG1为0,DR1为1,DG4为0,DR4为1,即左右两方向灯亮绿灯;DG2为1,DR2为0,DG3为1,DR3为0,即上下两方向灯亮红灯。
调用延时子程序后,8255输出信号14H,及为二进制数00010100B,在其对应的8个红绿灯接口中,DG1为0,DR1为0,DG4为0,DR4为0,即左右两方向灯亮黄灯;DG2为1,DR2为0,DG3为1,DR3为0,即上下两方向灯亮红灯。
之后通过无条件指令JMP跳转到程序开始,重新开始输入信号。
7.程序流程图:
开始
段定义及端口初始化
端口输出69H
延时子程序
端口输出7DH
延时子程序
端口输出41H
延时子程序
端口输出96H
延时子程序
端口输出D7H
延时子程序
端口输出41H
重复前面两状态3次
重复前面两状态3次
结束
8.硬件电路原理图:
8255
PCo
PC1
PC2
PC3
PC4
PC5
PC6
PC7
74LS138
DG1
DG2
DG3
DG4
DR1
DR2
DR3
DR4
Yo
CS8255
9.硬件电路设计说明:
把实验箱中的8255的8个C口按我规定的顺序接到实验箱红绿灯模块的接口处。
实验中,8255的C口作为输出口,通过编写程序来控制C口输出的信号,信号从C口输出后以二进制数的形式被输出到实验箱的红绿灯模块的接口。
再以82558个C口所输出的高低电平来控制实验箱的红绿灯模块的灯的情况。
四、附加内容的分析:
1.设计思想:
设计中的主程序与题目二主程序相同,在其中加入了利用实验箱上的8个小灯的红绿灯倒计时系统。
将8255的B口作为8个小灯信号的输出口,当红绿灯某两方向灯进入绿灯闪烁后,进入8个小灯的倒计时系统,8个小灯将按以下顺序熄灭:
首先是最右侧HL0灯熄灭,再是最左侧HL7灯熄灭,接下来是灯HL1熄灭,再是灯HL6熄灭,再按HL2HL5HL3HL4的顺序熄灭。
当8个灯都熄灭后,刚绿灯闪烁的灯变为黄灯。
当绿灯再次进入闪烁时,再次进入倒计时系统。
2.实验箱上控制八个小灯的接口电路:
HL7
HL6
HL5
HL4
HL3
HL2
HL1
HL0
L7
L6
L5
L4
L3
L2
L0
L1
3.程序源代码:
DSEGSEGMENT
DSEGENDS
SSEGSEGMENTSSEG
SSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG,ES:
DATA,SS:
SSEG
BEGIN:
MOVAL,80H
MOVDX,203H
OUTDX,AL
MOVDX,202H
OVF:
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY
MOVAL,07DH
OUTDX,AL
CALLDELAY
MOVAL,069H
OUTDX,AL
CALLDELAY2
MOVAL,041H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY
MOVAL,0D7H
OUTDX,AL
CALLDELAY
MOVAL,096H
OUTDX,AL
CALLDELAY2
MOVAL,014H
OUTDX,AL
CALLDELAY
JMPOVF
DELAYPROCNEAR
MOVBX,1CAH
CNT1:
MOVCX,0DFH
CNT2:
LOOPCNT2
DECBX
JNZCNT1
RET
DELAYENDP
DELAY2PROCNEAR
OUTDX,AL
MOVDX,201H
MOVAL,00H
OUTDX,AL
CALLDELAY
MOVAL,01H
OUTDX,AL
CALLDELAY
MOVAL,081H
OUTDX,AL
CALLDELAY
MOVAL,083H
OUTDX,AL
CALLDELAY
MOVAL,0C3H
OUTDX,AL
CALLDELAY
MOVAL,0C7H
OUTDX,AL
CALLDELAY
MOVAL,0E7H
OUTDX,AL
CALLDELAY
MOVAL,0EFH
OUTDX,AL
CALLDELAY
MOVAL,0FFH
OUTDX,AL
CALLDELAY
MOVDX,202H
RET
DELAY2ENDP
CSEGENDS
ENDBEGIN
4.程序结果分析:
将实验箱上的红绿灯模块和八个小灯倒计时模块按要求接入8255的B口和C口,再将实验箱与电脑连接,打开电脑编程软件,将所编译的程序打入其中,完成后将程序捎入实验箱中,程序开始后,8255