上海工程技术大学Shanghai University of Engineering Science《微机原理与接口技术》课程设计姓名:郭扬学院:电子电气工程学院专业:自动化授课教师:戎自强班级: 0 2 1 2 1 0 2学号: 0 2 1 2 1 0 2 2 2学年:2012—2013学期:第一学期20 12 年12月15日目录一、课程设计的目的 (3)二、设计题目1的分析 (3)三、设计题目2的分析 (9)四、附加内容的分析 (17)五、设计总结 (27)六、参考文献 (28)一、课程设计的目的:1.通过《微机原理与接口》课程设计,使我们能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。
2.要求我们根据接口电路的硬件要求进行计算机的汇编语言程序设计,使我们的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
3. 课程设计有利于基础知识的理解和逻辑思维的锻炼。
本课程设计是培养和锻炼我们综合应用所学理论知识解决实际问题能力、进行工程实训的重要教学环节,也能培养我们理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力。
4. 微机原理与接口技术是一门实践性较强的课程,我们在学完该课程之后,进行一次课程设计,是非常必要的。
这能使我们将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。
通过设计实践,培养我们查阅专业资料、工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
在设计中不但要培养和提高学生解决工程具体问题、动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。
二、设计题目1的分析:⑴.设计目的:1.熟练掌握8088汇编语言程序各种结构的设计及编程方法;2.熟练掌握DOS中断功能调用的方法。
⑵.设计要求:编制一个完整的程序,计算100个正整数(字数据)之和,如果不超过机器数的范围(65535),则计算其平均值并存于RESULT中,否则显示“overflow”。
⑶.设计思想:本设计要求100个正整数之和再按设计要求显示,但是在将源程DOS 时,输入100数要溢出时用cup代码表示不明显,直观,所以我将100个该写成10个数,手动输入10个数,使程序简单明了。
虽然变成了10个数,其他源代码都与100个数时意义相同,能满足设计的要求及目的。
程序开始时定义10个正整数以及存放结果的变量,然后10个数相加,在期间如果超出“65535”,则通过DOS输出“overflow”,如果没有则继续相加,直至相加完成,完成后再通过DOS求平均值,再通过DOS输出结果至目标地址,程序结束。
⑷.程序源代码:①.没有溢出时:DATA SEGMENTSTR DB 'overflow!',0DH,0AH,'$'RESULT DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV SI,AXMOV CX,100SUM:ADD AX,MEM[SI]JC NEXTADD SI,2LOOP SUMMOV BX,100MOV DX,0DIV BXMOV RESULT,AXJMP SHORT E XITNEXT:LEA DX,STRMOV AH,09HINT 21HEXIT:MOV AH,4CHINT 21HCODE ENDSEND START①.溢出时:DATA SEGMENTSTR DB 'overflow!',0DH,0AH,'$' RESULT DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXXOR AX,AXMOV SI,AXMOV CX,100SUM:ADD AX,MEM[SI]JC NEXTADD SI,2LOOP SUMMOV BX,100MOV DX,0DIV BXMOV RESULT,AXJMP SHORT E XIT NEXT:LEA DX,STRMOV AH,09HINT 21HEXIT:MOV AH,4CHINT 21HCODE ENDSEND START⑸.程序流程图:⑹.调试结果和程序结果分析:①.没有溢出时:118F:0000 B88C11 MOV AX,118C118F:0003 8ED8 MOV DS,AX118F:0005 33CO XOR AX AX118F:0007 8BFO MOV SI,AX118F:0009 B9OAOO MOV CX OOOA118F:0010 7212 JB 0024118F:0012 83C602 ADD SI,+02118F:0015 E2F5 LOOP OOOC118F:0017 BB0A00 MOV BX,000A118F:001A BA0000 MOV DX,0000118F:001D F7F3 DIV BX118F:001F A31F00 MOV [OO1F],AX118F:0022 EB08 JMP 002C118F:0024 8D161400 LEA DX,[0014]118F:0028 B409 MOV AH,09118F:002A CD21 INT 21118F:002C B44C MOV AH,4C-G 002CAX=0005 BX=000A CX=0000 DX=0000 SP=0000 BP=OOOO SI=0014 DI=0000 DS=118C ES=117C SS=118C CS=118F IP=002C MV UP EI PL NZ NA PE NC118F:002C B44C MOV AH,4C-D 0000118C:0000 05 00 05 00 05 00 05 00-05 00 05 00 05 00 05 00118C:0010 05 00 05 00 6F 76 65 72-66 6C 6F 77 0D 0A 24 05118C:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00118C:0030 B8 8C 11 8E D8 33 C0 8B-F0 B9 0A 00 03 84 00 00 118C:0040 72 12 83 C6 02 E2 F5 BB-0A 00 BA 00 00 F7 F3 A3 118C:0050 1F 00 EB 08 8D 16 14 00-B4 09 CD 21 B4 4C CD 21 118C:0060 04 89 87 C4 03 89 97 C6-03 FF 36 26 21 EB CC 7F 118C:0070 83 C4 02 2B C0 50 FF 36-64 27 FF 36 62 27 8B 1E ②.溢出时:118F:0000 B88C11 MOV AX,118C118F:0003 8ED8 MOV DS,AX118F:0005 33CO XOR AX AX118F:0007 8BFO MOV SI,AX118F:0009 B9OAOO MOV CX OOOA118F:0010 7212 JB 0024118F:0012 83C602 ADD SI,+02118F:0015 E2F5 LOOP OOOC118F:0017 BB0A00 MOV BX,000A118F:001A BA0000 MOV DX,0000118F:001D F7F3 DIV BX118F:001F A31F00 MOV [OO1F],AX118F:0022 EB08 JMP 002C118F:0024 8D161400 LEA DX,[0014]118F:0028 B409 MOV AH,09118F:002A CD21 INT 21118F:002C B44C MOV AH,4C-G 002CoverflowAX=0924 BX=0000 CX=0001 DX=0014 SP=0000 BP=OOOO SI=0012 DI=0000 DS=118C ES=117C SS=118C CS=118F IP=002C MV UP EI PL NZ AC PO CY118F:002C B44C MOV AH,4C三、设计题目2的分析:⑴.设计目的:1.掌握8088CPU及存储器硬件接口电路的设计连接;2.掌握相关硬件驱动软件设计及信息处理软件的设计调试的方法。
⑵.设计要求:设计十字路口交通灯控制系统。
基本要求:完成双向红绿黄灯的配合控制。
附加内容:在基本的电路中加入必要的灯光闪灯,人行定时显示等。
⑶.设计思想:把实验箱中的8255的8个C口按我规定的顺序接到实验箱红绿灯模块的接口处。
实验中,8255的C口作为输出口,通过编写程序来控制C口输出的信号,信号从C口输出后以二进制数的形式被输出到实验箱的红绿灯模块的接口。
再以8255 8个C口所输出的高低电平来控制实验箱的红绿灯模块的灯的情况。
实验时,通过高低电平测试,灯亮是低电平有效,且DG是指灯亮绿色,DR是指灯亮红色,若同时驱动则灯亮黄色。
我所设计的红绿灯双向亮灯情况如下,假使开始时,北南方向亮红灯,东西方向亮绿灯。
调用延时子程序后,北南方向还为红灯,东西两方向灯熄灭,再调用延时子程序后,北南两方向不变,东西两方向亮绿灯,通过这样反复几次,以造成东西方向灯闪烁的效果,此后,东西两方向变黄灯,北南两方向还为红灯,调用延时子程序后,东西两方向变为红灯,北南两方向变为绿灯,后面东西方亮灯情况与北南方亮灯情况在前面的状态下交换。
东西方和南北方亮灯情况交换完成后再返回到开始东西方亮绿灯,北南方向亮红灯,最后进行跳转,重新开始输入信号。
这样就可以完成双向红绿黄灯的配合控制。
⑷.实验电路及接线:实验箱上控制红绿灯的接口线路如下图所示:⑸.程序源代码:DSEG SEGMENTDSEG ENDSSSEG SEGMENT SSEGSTA DW 50 DUP(?)TOP EQU LENGTH STASSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DATA,SS:SSEG BEGIN: MOV AL,80HMOV DX,203HOUT DX,ALMOV DX,202HOVF: MOV AL,069HOUT DX,ALCALL DELAYMOV AL,07DHOUT DX,ALCALL DELAYMOV AL,069HOUT DX,ALCALL DELAYMOV AL,07DH OUT DX,AL CALL DELAY MOV AL,069H OUT DX,AL CALL DELAY MOV AL,07DH OUT DX,AL CALL DELAY MOV AL,069H OUT DX,AL CALL DELAY MOV AL,07DH OUT DX,AL CALL DELAY MOV AL,069H OUT DX,AL CALL DELAY MOV AL,041H OUT DX,AL CALL DELAY MOV AL,096H OUT DX,AL CALL DELAY MOV AL,0D7HOUT DX,AL CALL DELAY MOV AL,096H OUT DX,AL CALL DELAY MOV AL,0D7H OUT DX,AL CALL DELAY MOV AL,096H OUT DX,AL CALL DELAY MOV AL,0D7H OUT DX,AL CALL DELAY MOV AL,096H OUT DX,AL CALL DELAY MOV AL,0D7H OUT DX,AL CALL DELAY MOV AL,096H OUT DX,AL CALL DELAY MOV AL,014H OUT DX,ALCALL DELAYJMP OVFDELAY P ROC NEARMOV BX,1AAHNEXT1: MOV CX,0DFHNEXT2: LOOP NEXT2DEC BXJNZ NEXT1RETDELAY E NDPCSEG ENDSEND BEGIN⑹.程序结果分析:将实验箱与电脑连接,打开电脑编程软件,将所编译的程序打入其中,完成后将程序捎入实验箱中,程序开始后,8255输出信号69H,及为二进制数在其对应的8个红绿灯接口中,DG1为1,DR1为0,DG4为1,DR4为0,即左右两方向灯亮红灯;DG2为0,DR2为1,DG3为0,DR3为1,即上下两方向灯亮绿灯。