ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:675.57KB ,
资源ID:14627546      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14627546.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮微机原理硬件实验报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

北邮微机原理硬件实验报告.docx

1、北邮微机原理硬件实验报告北京邮电大学微机原理与接口技术硬件实验报告 学院:信息与通信工程学院班级: 学号:班内序号:姓名:实验一 I/O地址译码 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验原理和内容 1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。 译码输出端Y0Y7在实验台上 “I/O地址 “输出端引出,每个输出端包含8个地址,Y0:280H287H,Y1:288H28FH, 当CPU执行I/O指令且地址在280H2BFH范围内,译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令 MO

2、V DX,2A0H OUT DX,AL(或IN AL,DX) Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX) Y5输出一个负脉冲。图1-1利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。 2、接线: Y4/IO地址 接 CLK/D触发器 Y5/IO地址 接 CD/D触发器 D/D触发器 接 SD/D角发器 接 +5V Q/D触发器 接 L7(LED灯)或 逻辑笔三、硬件接线图和软件程序流程图 1、硬件连线图如图1-1; 2、软件程序流程图图1-2四、源程序DATA1 EQU 2A0H ;定义数据变量代表地址2

3、A0HDATA2 EQU 2A8H ;定义数据变量代表地址2A8HCODE SEGMENT ASSUME CS:CODEBEGIN: MOV DX,DATA1 OUT DX,AL ;向地址DATA1输出信号 CALL DELAY ;调用延时子程序 MOV DX,DATA2 OUT DX,AL CALL DELAY MOV AH,1 ;检测是否有键盘输入 INT 16H JE BEGIN ;如果没有输入,则循环 MOV AX,4C00H ;返回DOS INT 21HDELAY PROC NEAR ;延时子程序 MOV CX,0FFFFHLP1: MOV BX,200LP2: DEC BX JNZ

4、 LP2 LOOP LP1 RETDELAY ENDPCODE ENDS END BEGIN 五、实验结果运行程序后可以看到LED灯亮灭交替,改变延时时间,灭的持续时间增加。六、实验总结由于这个实验是第一次接触,虽然比较简单,但是还是出现了很多的问题。刚开始忘记写延时子程序,后来发现后加上,发现LED灯还是一直亮,到最后才发现原来是延时的时间太短,所以延时采用了两层循环以增加延时长度。七、实验收获与心得体会通过这个实验,首先让我对汇编程序的要素有了更加清晰的认识,就是汇编程序便需要有代码段;其次,当汇编程序出现问题时,掌握了一定的解决方法。实验二 简单并行接口 一、实验目的 掌握简单并行接口的

5、工作原理及使用方法。 二、实验原理和内容 1、 按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座, 74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0D7,8个Q输出端接LED显示电路L0L7。 2、编程从键盘输入一个字符或数字,将其ASC码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 3、 按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座, 74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0K7,8个数据输出端分别接数据总线D0D

6、7。 4、用逻辑电平开关预置某个字母的ASC码,编程输入这个ASC码,并将其对应字母在屏幕上显示出来。5、接线:1)输出 按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门) 2)输入 按图4-2-2接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)三、硬件接线图和软件程序流程图1、硬件接线图图2-1 2、软件程序流程图图2-2 四、源代码CODE SEGMENT ASSUME CS:CODEBEGIN: XOR AX,AX MOV AH,1 INT 21H CMP AL,1BH JZ ED MOV DX,2A8H OUT DX,AL LOOP BEGINED:

7、 MOV AX,4C00H INT 21HCODE ENDS END BEGIN五、实验结果连接好电路后,运行程序,然后用键盘输入任意一个字母或者数字,然后发现LED灯的亮灭情况正好表示了所输入字符的ASC码。六、实验总结此次实验代码比较简单,看好输出端基本上就不会有什么大的代码问题,这个实验关键的一点我觉得是连接电路,由于实验所需电路要连接的线比较多,所以在连接线的时候一定要认真仔细,一旦连错很难检查出来,那样的话就只能重新连接了。七、实验收获与心得体会这个实验主演还是让我们进一步接触这种软硬结合的方式,以便不断地了解熟悉它,通过这次实验,除实验本身外,由于要检测键盘的输入,我还对理论课上讲

8、的中断号01H有了更加深刻的印象。实验三 可编程并行接口8255 一、实验目的 1、通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。 二、实验原理及内容 18255的工作方式 一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。 方式0是基本型输入/输出。这种方式和外设交换数据时,8255端口与外设之间不使用联络线。 方式1为选通型输入/输出。用这种方式和外界交换数据时,端口和外设之间要有联络信号。 方式2是双向数据传送,仅A口有这项功能。当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B

9、口方式1只能用查询方式与CPU交换信息。 2. 工作方式选择字 8255工作方式选择字共8位(如图) ,存放在8255控制寄存器中。最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。3C口置/复位控制字 8255的C口可进行位操作,即:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)。C口置/复位字共8位,各位含义如下:48255A的控制信号与传输动作的对应关系5命令字与初始化编程 8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是: 1 向825

10、5控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。 2 当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。 注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。 向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据”实验内容:1)、实验电路如图4-3-1,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。 2)、编程从8255C口输入数据

11、,再从A口输出。3)、接线:PC7PC0/8255 接 K7K0/逻辑电平开关 PA7PA0/8255 接 L7L0/LED显示 CS/8255 接 Y1/IO地址三、硬件连线图和软件程序流程图1、硬件连线图图3-12、软件程序流程图 四、源程序CODE SEGMENT ASSUME CS:CODEBEGIN: MOV DX,28BH MOV AL,10001001B OUT DX,AL MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL INT 21H MOV AX,4C00HCODE ENDS END BEGIN五、实验结果连接好电路,运行程序后,可以发现

12、根据开关闭合的不同,LED灯亮灭的情况也随之而改变,实现了实验中的要求。六、实验总结由于此实验比较简单,实验过程中没有出现什么大的问题。只是一开始的时候发现在我运行完后,发现改变开关的闭合情况,LED灯的亮灭情况不变,后来发现每次程序运行时只读取一次数据,而在程序运行的过程中并不读取数据,所以就出现了那样的情况。七、实验收获与心得体会通过这次试验,让我对8255这个元器件有了一定的认识,进一步熟悉了汇编语言编程,为将来更加困难的实验做了准备。实验四 七段数码管 一、实验目的 掌握数码管显示数字的原理 二、实验原理和内容 、静态显示:按4-4-1连接好电路,将8255的A口PA0PA7分别与七段

13、数码管的段码驱动输入端adp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。 (或编程在数码管上循环显示 “00-99” , 位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。)2、接线: PA7PA0/8255 接 dpa/LED数码管 PC3PC0/8255 接 S3S0/LED数码管 CS/8255 接 Y1/IO地址三、硬件连接图和软件程序流程图1、硬件连接图图4-12、软件程序流程图图4-2 四、源代码DATA SEGMENTDATA0 EQU 3FHDATA3 EQU 4FHDATA4 EQU 66HDAT

14、A6 EQU 7DHDATA ENDSSTACK SEGMENT STACK STACKDB 100 dup(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FAR MOV AX, DATA MOV DS, AX MOV AL,80H MOV DX,28BH OUT DX,ALLOOP1: MOV DX,28AH MOV AL,08H OUT DX,AL MOV DX,288H MOV AL,DATA0 OUT DX,AL CALL DELAY MOV DX,28AH MOV AL,04H OUT DX,AL

15、MOV DX,288H MOV AL,DATA3 OUT DX,AL CALL DELAY MOV DX,28AH MOV AL,02H OUT DX,AL MOV DX,288H MOV AL,DATA4 OUT DX,AL CALL DELAY MOV DX,28AH MOV AL,01H OUT DX,AL MOV DX,288H MOV AL,DATA6 OUT DX,AL CALL DELAY MOV AH,1 INT 16H JZ LOOP1 RETSTART ENDPDELAY PROC NEAR MOV CX,00FFHLP1: MOV BX,200LP2: DEC BX JN

16、Z LP2 LOOP LP1 RETDELAY ENDPCODE ENDSEND START五、实验结果连接好电路图,然后运行程序,在数码管上显示我的学号0346四个数字。六、实验总结最开始的时候实验确实出现了一些问题,跟我想的不一样。由于实验要求是在4个数码管上同时显示四个数字,所以刚开始我认为如果要延时程序,延时时间应该很短,因此我认为不用延时程序,而结果没有延时程序出不来结果,显示一群乱码。之后我加上延时程序后,数码管显示就变得正常了。这个程序的关键应该就是控制字的确定,然后数码管方面一定要有一组选通信号。七、实验收获与心得体会这个实验告诉我在做这类实验时千万不要想当然,一定要按照实际的

17、要求一步一步来,不要想着“偷工减料”图省事,关键是要踏实。其次是通过这个实验让我对8255这个芯片有了更加深刻的认识,对于控制字的理解更加深刻。实验八 可编程定时器计数器(8253/8254) 一、实验目的: 学习掌握8253用作定时器的编程原理; 二、实验原理和内容 8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。8254是8253的改进型。 18253初始化 使用8253前,要进行初始化编程。初始化编程的步骤是: 1 向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 2 向使用的计数器端口写入计数初值。 28253控制字 D7D600:使用0号计数器,D7

18、D601:使用1号计数器 D7D610:使用2号计数器,D7D611:无效 D5D400:锁存当前计数值 D5D401:只写低8位(高8位为0),读出时只读低8位 D5D410:只写高8位(低8位为0),读出时只读高8位 D5D411:先读/写低8位,后读/写高8位计数值 D3D2D1000:选择方式0,D3D2D1001:选择方式1 D3D2D1X10:选择方式2,D3D2D1X11:选择方式3 D3D2D1100:选择方式4,D3D2D1101:选择方式5 D00:计数初值为二进制,D01:计数初值为BCD码数3、接线: CS /8253 接 Y0 /IO 地址 GATE0 /8253 接

19、 +5V CLK0 /8253 接 1M时钟 OUT0 /8253 接 喇叭或蜂鸣器4、完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。 音符频率对照三、硬件接线图和软件程序连接图1、硬件接线图 2、软件程序连接图 四、源程序DATA SEGMENTBUF1 DB 06H 5BH 4FH 66H 6DH 7DH 07H 7FHBUF2 DW 3906,3472,3125,2933,2604,2344,2083,1953DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODEBEGIN: MOV CX,08H LEA SI,BUF1 MOV B

20、X,OFFSET BUF2 MOV DX,283H MOV AL,37H OUT DX,AL MOV DX,28BH MOV AL,80H OUT DX,AL L1: MOV DX,280H MOV AX,BX OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,28AH MOV AL,01H OUT DX,AL MOV DX,288H MOV AL,SI OUT DX,AL CALL DELAY INC SI INC BX INC BX LOOP L1 MOV AH,1 INT 16H JE BEGIN MOV AX,4C00H INT 21HDELAY PROC NE

21、AR PUSH CX PUSH BX MOV CX,0FFFFHLP1: MOV BX,100LP2: DEC BX JNZ LP2 LOOP LP1 POP BX POP CX RETDELAY ENDPCODE ENDS END BEGIN五、实验结果连接好电路后,运行程序,然后会听见蜂鸣器按照do/re/mi/fa/so/la/si/do依次响,当有键盘输入时,声音中止。六、实验总结 这个实验思路比较简单,所以在写好代码后就基本上没有什么问题,只是个人觉得我写的原来的代码有点冗杂(原来是每一个音符都单独写一段汇编程序),其实有很多都可以用一个循环实现的,并且后来我也做了很多的尝试,但是多

22、次的尝试都失败了,失败基本上都是由于寄存器不够用了。后来突然想到了理论课上讲的推入堆栈保护,一下子恍然大悟,这就是现在代码的由来,个人觉得这个实验我还是下了一番苦心的。七、实验收获与心得体会 这个实验毋庸置疑地让我学会了很多东西,更加熟悉了汇编程序,之前老师上课讲的什么推入堆栈保护,当时根本不理解,不知道为什么要这样做,这次实验让我彻底明白了这样做的意义:就是有时候要多次用到一个寄存器时一定要先推入堆栈保护,这样的话就不会影响在别的地方用相同的寄存器了。此外,又学习了一种元器件,即8253计数器,对于微机的原理有了更加上课的理解。实验十六 串行通讯8251 一、实验目的 1、了解串行通讯的基本

23、原理。 2、掌握串行接口芯片8251的工作原理和编程方法。 二、实验原理和内容 1、 按图4-16-1连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。 2、编程: 从键盘输入一个字符,将其ASCII码加 1 后发送出去,再接收回来在屏幕上显示,(或将内存制定区域内存放的一批数据通过8251A的TXD发送出去,然后从RXD接收回来,并在屏幕上或数码管上显示出来。)实现自发自收。3、接线: CLK0 /8254 接 1M时钟 GATE0 /8254 接 +5V 0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接

24、 Y0 /IO地址 CS /8251 接 Y7 /IO地址 RXD /8251 接 TXD /82514、图示电路8251的控制口地址为2B9H,数据口地址为2B8H。 5、8254计数器的计数初值=时钟频率/(波特率波特率因子),这里的时钟频率接 1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。 6、收发采用查询方式。三、硬件接线图与软件程序流程图1、硬件接线图图16-12、软件程序流程图四、源程序CODE SEGMENT ASSUME CS:CODEBEGIN: MOV DX,283H MOV AL,16H OUT DX,AL MOV DX,280H MOV AL,5

25、2 OUT DX,AL MOV DX,2B9H MOV AL,40H OUT DX,AL NOP MOV AL,0EH OUT DX,AL MOV AL,37H OUT DX,ALGOON: MOV DX,2B9H IN AL,DX TEST AL,01H JZ GOON MOV AH,01H INT 21H CMP AL,1BH JE ED ADD AL,01H MOV DX,2B8H OUT DX,ALRECIEVE: MOV DX,2B9H IN AL,DX TEST AL,02H JZ RECIEVE MOV DX,2B8H IN AL,DX MOV AH,02H MOV DL,AL

26、INT 21H JMP GOONED: MOV AX,4C00H INT 21HCODE ENDS END BEGIN五、实验结果连接好硬件电路后,运行程序,然后会提示用键盘输入一个字符,结果发现当输入一个字符后,在屏幕上紧接着会显示出来在ASC码表中排在该字符后的字符,比如输入1,紧接着在屏幕上会显示2.六、实验总结这次实验过程中一度出现了“超出我能力范围“的问题,怎么做都解决不了,问了很多人,都没有办法,后来经过我反复的看书上讲的关于8251的那部分内容终于弄懂了。实验过程中出现的问题是,每次在我输入一个字符时,屏幕上显示的不是该字符后面的字符,而是上次输入字符后面的字符。经过我反复对书上

27、的内容进行了研究后,发现当接收字符时,不能仅仅判断一次状态字,要一直判断状态字直到它有效,这样就可以解决上述问题了。七、实验收获与心得体会这次实验真正让我体会到了,当我们遇到问题时,不要“病急乱投医”,一定要静下心来自己找一下问题的所在,想不出来就回去重新研究一下元器件的工作原理,因为万变不离其宗,只要你对它的原理了解的一清二楚后,什么样的问题都可以解决了。然后就是深刻的明白了8251的工作原理,以及在对它写控制字时命令控制字和状态控制字的顺序。实验总结通过几次的微原硬件实验,虽然不能说对汇编语言编程完全掌握了,但是确实汇编能力增长了不少,不得不肯定微原实验的意义。此外对课上讲的一些元器件起到了巩固的作用,个人觉得微机原理硬件实验很有必要,理论实践相结合。最后感谢王老师在实验过程中对我的指导和帮助。欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2