微原硬件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北邮微机原理硬件
实验报告
班级:
学号:
班内序号:
姓名:
实验一 I/O地址译码
一、实验目的
掌握I/O地址译码电路的工作原理。

二、实验原理及内容
实验电路如图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O 地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令
MOV DX,2A0H
OUT DX,AL(或IN AL,DX)
Y4输出一个负脉冲,执行下面两条指令
MOV DX,2A8H
OUT DX,AL(或IN AL,DX)
Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

三、硬件接线图
接线: Y4/IO地址接 CLK/D触发器
Y5/IO地址接 CD/D触发器
D/D触发器接 SD/D角发器接 +5V
Q/D触发器接 L7(LED灯)或逻辑笔
电路连接图:
四、实验程序框图:
五.实验说明:
本实验主要是通过地址译码器将端口地址找到,通过汇编指令来实现二极管的亮灭。

译码器的低电平使能端接了A6、A7、A8、A9,用的使与非门。

所以A6为0 ,A7 为1,A8 为0 ,A9为1。

A3 、A4、A5是数据选择端,译码器的输出要通过Y4 或Y5,所以A3A4A5分别为100和101,分别对应地址02A0H和02A8H。

译码器的输出端使用了D触发器,Y4是时钟脉冲,每输出一个负脉冲,L7就为高电平,二极管发光。

Y5连接的是使能端,输出负脉冲,L7为低电平,二极管不发光。

汇编语言中有IN和OUT 指令,刚好可以实现端口输出,不需要更为复杂的指令即可以完成。

六、实验源代码加注释:
DATA SEGMENT
DATA ENDS
;………………………………………………………………………
STACK SEGMENT STACK'STACK'
STACK ENDS
;…………………………………………………………………….
CODE SEGMENT
ASSUME CS:CODE ,DS:DATA, SS:STACK
;延时子程序
DELAY PROC
PUSH CX
MOV BX,0FFFFH
LOOP1:MOV CX,0FFH ;循环次数设定
LOOP2:LOOP LOOP2
DEC BX
JNZ LOOP1
POP CX
RET
DELAY ENDP
;……………………………………………………………………….
START: MOV AX,DATA
MOV DS,AX ;初始化DS
MOV CX,5H ;循环次数
BEGIN:MOV DX,2A0H
OUT DX,AL ;Y4输出负脉冲
CALL DELAY ;延时
MOV DX,2A8H
OUT DX,AL ;Y5输出负脉冲
CALL DELAY ;延时
LOOP BEGIN
MOV AX, 4C00H
INT 21H ;返回
CODE ENDS
END START
七、实验结果:
在实验箱上可以看到LD7闪烁五次,每次的亮灭都有一定的间隔。

改变延时和循环次数,可以看到二极管亮灭的变化情况。

八、实验总结:
这次实验是第一次使用实验箱,相比之前使用的实验箱来说更为复杂。

老师也有提醒实验注意事项,但还是因为粗心和不熟悉使实验箱发出了短路提醒的声音。

连接的电路也相对简单,编写的程序也是微机原理中最基本的代码,所以编写程序和连接电路的过程还是很轻松的。

通过这次实验主要是熟悉了实验箱的使用方法。

也回顾了D触发器和74LS138译码器的工作原理。

实验二简单并行接口
一、实验目的
掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容
1、按下图简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,
74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

三、硬件接线图
四、实验程序框图:
五、实验说明:
本次实验是在第一次实验的基础上进行的。

还是对端口的操作,译码器的译码结果也和实验一中的相同。

只不过是使用了读取键盘的功能。

只不过是电路的连接相对较为复杂而已。

六、实验代码加注释:
DATA SEGMENT
DATA ENDS ;........................................
STACK SEGMENT STACK'STACK'
STACK ENDS ;........................................
CODE SEGMENT
ASSUME CS:CODE ,DS:DATA, SS:STACK
;主程序
START: MOV AX,DATA
MOV DS,AX ;初始化段地址
PUSH DX
AGAIN: MOV AH,1
INT 21H ;从键盘读取输入
CMP DL,1BH
JZ EXIT ;和判断是否是退出键,是则退出
MOV DX,2A8H
OUT DX,AL ;否则在Y4端口输出对应的ASCII码
JMP AGAIN ;重复检测
EXIT: POP DX
MOV AX,4C00H
INT 21H ;返回
CODE ENDS
END START
七、实验结果:
从键盘上输入一个非(ESC)的按键,就可在LED灯处看到相应的二极管灯的发光情况,例如输入1,会看到LED7~LED0为灭、灭、亮、亮、灭、灭、灭、亮。

刚好对应0的ASCII码。

输入字母也可以看到正确的结果。

如果输入的是ESC键,就直接结束,无法急促输入。

八、实验总结:
这次实验的实验代码的编写也是相对简单的,只用到了汇编程序中的基本指令,有了实验一中的地址译码器的经验,对端口的理解也变得简单了。

较为复杂的还是电路的连接,需要将LED灯连接到相应的端口,还需要把芯片管脚对应的端口和数据输入端相连。

需要认真的看清端口,整洁的排好线也是必须的。

这次实验的主要经验就是实验电路的连接,需要认真、仔细地连接。

还有就是对硬件实验箱和HQFC程序之间的互通有了认识,软件控制硬件,这对于测试某些程序很有用处的。

实验四七段数码管
一、实验目的
通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。

二、实验原理和内容
实验原理:
1.8255的工作方式
一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。

方式0是基本型输入/输出。

这种方式和外设交换数据时,8255端口与外设之间不使用联络线。

方式1为选通型输入/输出。

用这种方式和外界交换数据时,端口和外设之间要有联络信号。

方式2是双向数据传送,仅A口有这项功能。

当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。

2. 工作方式选择字
8255工作方式选择字共8位(如图),存放在8255控制寄存器中。

最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。

3.C口置/复位控制字
8255的C口可进行位操作,即:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)
4.命令字与初始化编程
8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:
①向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。

②当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。

这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。

注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。

③向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据”
实验内容:静态显示:按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。

三、硬件接线图
四、实验说明:
本次实验主要使用到了8255芯片。

需要了解8255芯片的工作原理。

由于没有学习到这一部分,所以就自己看着课本和老师的附录了解了一下。

相关文档
最新文档