微机原理与接口技术课程设计.doc

上传人:仙人指路1688 文档编号:2881934 上传时间:2023-03-01 格式:DOC 页数:19 大小:197.50KB
返回 下载 相关 举报
微机原理与接口技术课程设计.doc_第1页
第1页 / 共19页
微机原理与接口技术课程设计.doc_第2页
第2页 / 共19页
微机原理与接口技术课程设计.doc_第3页
第3页 / 共19页
微机原理与接口技术课程设计.doc_第4页
第4页 / 共19页
微机原理与接口技术课程设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《微机原理与接口技术课程设计.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计.doc(19页珍藏版)》请在三一办公上搜索。

1、 微机原理与接口技术课程设计报告书 班 级: 通信 班 学 号: 姓 名: 指导教师: 二一 年 十二 月目 录实验目的 3实验过程1) 软件实验 3软件实验(一)软件实验(二)软件实验(三)2) 硬件实验 10硬件实验(一)硬件实验(二)心得体会 16参考文献 19实验目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。随着科学技术的发展,微机原理与接口技术使我们

2、今后必不可少的一项技术,微机原理同时也是让我们掌握微型计算机的硬件组成及使用;学会运用指令系统和汇编语言进行程序设计;熟悉各种类型的接口及其应用,树立起微型计算机体系结构的基本概念。 微机与接口包含了: 存储系统:存储器的分类(原理、存取方式)、半导体存储器工作原理、存储器的扩展、校验码、虚拟存储系统、Cache系统、地址映像、存储系统的组织。 中央处理器:CPU组成、主机与外设间的数据传送方式、同步和异步的概念、时序划分、组合及微程序控制方式的微操作命令产生部件的工作原理;输入/出设备:掌握I/O设备的分类,键盘、显示器、打印机的工作原理;输入/出系统:掌握总线的功能及分类、接口的功能及分类

3、、直接程序传送方式接口的工作原理、程序中断方式接口的工作原理、DMA接口的工作原理。软件实验(一)两个数相乘的实验:实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,算式结果在屏幕上显示出来。实验流程:实验程序:DATA SEGMENTDATA1 DB 32H,39H,30H,35H,34HDATA2 DB 34HMES1 DB *,$MES2 DB =,$RESULT DB 6 DUP (00H)DATA ENDSSTACK SEGMENTSTA DB 20 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CO

4、DE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV SP,TOP LEA SI,DATA1 MOV BX,05H L1: MOV AH,02H MOV DL,SI+BX-1 INT 21H DEC BX JNZ L1 MOV AH,09H LEA DX,MES1 INT 21H LEA SI,DATA2 MOV AH,02H MOV DL,SI INT 21H MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA2 ;显示算式 MOV

5、BL,SI ;乘数DATA2BL AND BL,00001111B ;屏蔽高4位,ASCII码转化为十六进制数 MOV SI,OFFSET DATA1 MOV DI,OFFSET RESULT MOV CX,05LOOP1: MOV AL,SI AND AL,00001111B ;取被乘数DATA1,ASCII变十六进制数 INC SI ;指向被乘数1的下一字符单元 MUL BL ;相乘 AAM ;AAM调整 ADD AL,DI ;结果低位与前次计算的进位相加 AAA ;AAA调整 MOV DI,AL INC DI ;结果送存到下一单元 MOV DI,AH LOOP LOOP1 ;计算结果高位

6、进位送存 MOV CX,06 MOV SI,DI DISPL: MOV AH,02 MOV DL,SI ADD DL,30H INT 21H DEC SI LOOP DISPL ;显示结果 MOV AX,4C00H INT 21H ;结束CODE ENDSEND START软件实验(二)十进制的BCD码减法运算计算XYZ,其中X、Y、Z为BCD 码。实验程序参考例程。实验程序SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSPUBLIC X, Y, Z ;定义全局变量DATA SEGMENTX DW ?Y DW ?Z DW ?DATA ENDSCODE SE

7、GMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AH, 00HSAHFMOV CX, 0002HMOV SI, OFFSET XMOV DI, OFFSET ZA1: MOV AL, SISBB AL, SI+02HDASPUSHFAND AL, 0FHPOPFMOV DI, ALINC DIINC SILOOP A1JMP START ;设置断点,以方便观察变量。CODE ENDSEND START实验步骤(1)输入程序,编译、链接无误后装入系统;(2)点击将变量X,Y,Z 添加到变量监视窗中,并为X,Y 赋值,假定存

8、入40 与12 的BCD 码,即X 为0400,Y 为0102;(3)在JMP START语句行设置断点,然后运行程序;(4)程序遇到断点后停止运行,观察变量监视窗,Z应为0208;(5)重新修改X 与Y 的值,运行程序,观察结果,反复测试几次,验证程序正确性。软件实验(三)要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图所示。图:源数据块与目的数据块在存储中的位置情况对于两个数据块分离的情况,如图数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到

9、破坏,可有如下结论:当源数据块首地址目的块首地址时,从数据块末地址开始传送数据,如图所示。当源数据块首地址目的块首地址时,从数据块首地址开始传送数据,如图所示。实验程序流程图如图所示。实验程序SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX, 0010HMOV SI, 3100HMOV DI, 3200HCMP SI, DIJA A2ADD SI, CXADD DI, CXDEC SIDEC DIA1: MOV AL, SIMOV DI, ALDEC SIDEC DIDEC CX

10、JNE A1JMP A3A2: MOV AL, SIMOV DI, ALINC SIINC DIDEC CXJNE A2A3: JMP A3CODE ENDSEND START实验步骤1. 按流程图编写实验程序,经编译、链接无误后装入系统;2. 用E 命令在以SI为起始地址的单元中填入16 个数;3. 运行程序,然后再停止运行;4. 通过D 命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同;5. 通过改变SI、DI 的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。硬件实验(一)实验要求编写程序,以8255为输出口,控制四个双色灯按要求发光。实验目的1学习单板方式

11、下扩展简单I/O接口的方法以双色灯的使用。2进一步学习微处理器的编程技术。实验电路连线8255的CS片选接至适配板上138译码处的200H207H插孔。实验说明1、因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态,东西绿灯通车,南北灯灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。2、双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红

12、色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验流程:实验程序D1 EQU 10HD2 EQU 200HDATA SEGMENTPB DB ?DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH CS POP DS MOV DX,203H ;设置为全输出 MOV AL,80H OUT DX,AL MOV DX,200H MOV AL,00 OU

13、T DX,AL ;清LED MOV DX,200H ;全红 MOV AL,0F0H OUT DX,AL MOV BX,7fH CALL DLYBG: MOV AL,01011010B ;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03HXH1: AND AL,0F5H ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY OR AL,0aH ;绿亮 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH1 OR AL,0a0H ;南北黄 OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CAL

14、L DLY MOV AL,10100101B ;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03XH2: AND AL,0FaH OUT DX,AL MOV BX,D1 CALL DLY OR AL,05H OUT DX,AL MOV BX,D1 CALL DLY LOOP XH2 OR AL,50H OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY JMP BGDLY PROC NEAR PUSH CXDDD: MOV CX,2fffHCCC: LOOP CCC DEC BX CMP BX,0 JNE

15、DDD POP CX RET DLY ENDP CODE ENDSEND START硬件实验(二)实验要求编程将8253定时器0设定为方式3,定时器1设定在方式2,定时器0输出作为定时器1的输入,定时器1的输出接在一个LED上,运行后可观察到该LED在不停闪烁。实验目的了解8253定时器的硬件连接方法及时序关系。掌握8253的各种模式编程及原理。实验电路连线GATE0GATE1连至电源+5V,CLK0接OUT1,OUT1用线连至一个发光管(L0), CLK1接1MHZ,CS53片选孔用线连至译码处20820F这个孔。实验说明8253的工作频率为02MHZ,所以输入的CLK频率必须在2MHZ以下

16、。程序流程图实验程序:CONTROL equ 20bhCOUNT0 equ 208hCOUNT1 equ 209h COUNT2 equ 20ahcode segment assume cs:codestart proc near mov al, 36h; 00110110B ; 计数器0,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 10000 mov dx, COUNT0 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 mov al, 76h; 01110110B ; 计数器1,16位,方

17、式3,二进制 mov dx, CONTROL out dx, al mov ax, 100 mov dx, COUNT1 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 jmp $start endpcode ends end start心得体会在大三接触汇编语言之前,我们在计算机组成原理课程中就已经有所了解了,但也只是略微明白一些如jmp,mov这样的指令,极度缺乏系统性的学习。在接触这门课程后,感到微机原理与接口、汇编语言并不是很容易就可以弄懂的。相比较以前学过的高级语言如C语言,电脑等于在迁就人的思维方式,但学汇编,人却必须要去迁就电

18、脑的思维方式,要设身处地地用电脑的角度去思考问题,这就是我们运用汇编语言时遇到的最大的障碍。通过这次的是上机实践,让我们更加了解计算机内部的组织结构,对学习汇编也是提升综合能力的关键环节。汇编的学习不仅仅是学习其语法,而更多的是学习计算机基本的体系结构。其中遇到很多新的概念,名字。如寄存器、中断、寻址方式等。这些概念在刚接触汇编这门课的时候难以理解,但在之后的学习中通过老师的讲解,自己亲手编程的方式也就渐渐清晰明了。我们在学习之前都需要明确什么是汇编语言。计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。为了克服机

19、器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。经过一个学期的学习,我也慢慢摸出了汇编学习的规律。首先,学习这门语言时如果能联系上以前学过的其他高级语言的知识,则会起到良好的效果。例如C语言程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF.THEN.ELSE.),循环结构(FOR.NEXT)三种结构,也通过C语言了解并掌握了什么是子程序,什么是调用。事实上,汇编语言中有关程序结构,子程序等等的知识都是跟C语言十分相似的,只是在编程时用到的语言不同:汇编语言完全面向机器,需要指明数据在寄存器、内存中的流向。第二,学习汇编语言,首要问

20、题是学习80X86指令系统。如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。指令的种类十分繁杂,但其格式却是统一的。指令格式如下:指令助记符 操作数1 ,操作数2 ;注释其中方括号中的内容为可选项。指令助记符决定了指令的功能,对应一条二进制编码的机器指令。指令的操作数个数由该指令确定,可以没有操作数,也可以有一个或多个操作数,大多数指令要显示写出来,还有些操作数是隐含的。当指令包含操作数的时候,书写时必须遵守:1、指令

21、助记符和操作数之间有分隔符,比如几个空格;2、如果含有多个操作数,操作数之间用逗号分隔。现在简单总结汇编语言指令的分类:1、数据传送指令;2、标志位操作指令;3 、算术运算指令;4、逻辑运算指令;5、移位运算指令;6、位操作指令;7、比较运算指令;8、循环指令;9、转移指令;10、条件设置字节指令;11、字符串操作指令;12、BCD码运算调整指令;13、处理器指令。在编写汇编程序时,应该注意特别容易出现的错误,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS不能作为目的操作数,offset后只能跟简单地址符号,等等。汇编语言的寻址方式有直接寻址,寄存器寻址,基址变址寻址,相

22、对基址变址寻址等等,掌握这些都是编写汇编程序很重要的环节。汇编语言中的程序结构,子程序等知识也会帮助我们编写出一个更加完善的汇编程序。另外,我们还应该掌握DOS系统功能调用,宏汇编等知识。这里要对子程序和宏汇编加以区分,我的理解是:子程序是调用,而宏是替换,比如一个MAX宏,所有出现MAX的地方,都用宏代码代替。在学习汇编语言时,指令的功能是学习和掌握的重点,要准确有效并合理的使用这些指令,必须了解一些使用的规则。现对汇编语言编程时的规则进行总结,归纳起来有三点:1、要求指令操作数的寻址方式;2、指令对标志位的影响和标志位对指令的影响;3、指令的执行时间,对可完成同样功能的指令,要选用执行时间

23、短的指令。还有一点十分重要。和所有的程序设计语言一样,要学好汇编语言,实验是必不可少的环节。我们深有体会:书上的程序都能看懂,基本原理也都明白,但是在自己亲手编写程序时,却无从下手,甚至连第一句该怎么写都不知道。通过实验,可以在很大程度上加深印象。在书上看程序,一切都是理所当然,十分顺利,而自己动手,才会真正发现自己的不足之处。程序的编写在记事本中进行即可,掌握debug的使用对实验是有很大帮助的。现在课程学习已经告一段落了,学习过程中遇到的所有困难以及遗留的难点都需要我们在其余时间里逐步攻克,在打好基础的前提下,学习更加专业的知识。以上便是我在微机原理与接口上机实验过程中所有的心得体会,我们会在不断的学习与实践中向着更深入的层面迈进。参考文献1. 微机原理与接口技术/梁建武.中国水利水电出版社,2010.92. 汇编语言与微机原理教程/顾元刚,韩燕主编.北京:电子工业出版社,20003. 微机原理与接口技术/周明德主编;蒋本珊著.2版.北京:人民邮电出版社,2007.4(2009.5重印)

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号