微机原理与接口技术硬件实验报告.docx
- 文档编号:7328884
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:25
- 大小:515.42KB
微机原理与接口技术硬件实验报告.docx
《微机原理与接口技术硬件实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术硬件实验报告.docx(25页珍藏版)》请在冰点文库上搜索。
微机原理与接口技术硬件实验报告
微机原理与接口技术硬件实验报告
实验一基本的IO实验
A.I/O地址译码
一、实验目的
掌握I/O地址译码电路的工作原理。
二、实验原理和内容
1.实验电路硬件接线图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:
280H~287H,Y1:
288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:
执行下面两条指令
MOVDX,2A0H
OUTDX,AL(或INAL,DX)
Y4输出一个负脉冲,执行下面两条指令
MOVDX,2A8H
OUTDX,AL(或INAL,DX)
Y5输出一个负脉冲。
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
2.接线:
Y4/IO地址接CLK/D触发器
Y5/IO地址接CD/D触发器
D/D触发器接SD/D角发器接+5V
Q/D触发器接L7(LED灯)或逻辑笔
三、硬件接线图与软件流程图
a)硬件接线图:
b)软件流程图
四、源程序
CODESEGMENT
ASSUMECS:
CODE
yychPROCFSR
START:
CMPAL,27
JEyych_exit
MOVDX,2A8H
OUTDX,AL
MOVAH,1
INT21H
JMPSTART
yych_exit:
MOVAH,4CH
INT21H
yychENDP
CODEENDS
ENDSTART
五、实验结果
二极管闪烁显示
实验总结
本次实验遇到的主要问题是延时程序的调节,及二极管的显示,通过调整程序问题都得到了解决。
六、实验收获与心得体会
本次实验是微原硬件实验的第一次,主要是熟悉了将要使用的实验系统,学习了最基本的硬件测试的方法,对接口的地址、LED灯的控制等有了测试和记录,为后续实验作好准备。
B.简单并行接口
一、实验目的
掌握简单并行接口的工作原理及使用方法。
二、实验原理和内容
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Ⅱ码,并将其对应字母在屏幕上显示出来。
5.接线:
1)输出
按硬件连接图接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)
2)输入
按硬件连接图接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)
三、硬件接线图与软件流程图
a)硬件接线图:
b)软件流程图
四、源程序
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,28BH
MOVAL,89H;设8255为A口输出,C口输入
OUTDX,AL
INPUT:
MOVDX,28AH;从C口输入一数据
INAL,DX
MOVDX,288H
OUTDX,AL;从A口输出刚才自C口输入的数据
MOVAH,1;判断是否有键按下
INT16H
JZINPUT;若无,则继续从C口输入,A口输出
MOVAH,4CH;若有,返回DOS
INT21H
CODEENDS
ENDSTART
五、实验结果
1.键盘输入,二极管显示输入的ASCII码
2.如果是ESC键,返回DOS环境下
六、实验总结
本次实验主要实现了用8位LED灯的亮暗,显示键盘输入字符的ASCII码,关键点是键盘输入内容的读取和控制端口的输出。
七、实验收获与心得体会
这次实验的要点是对I/O接口译码电路的理解以及使用。
我们测试了外设功能,这使我们了解了地址与端口的对应情况。
通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的认识。
实验二可编程并行接口8255实验
一、实验目的
1.通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。
2.掌握数码管显示数字的原理
二、实验原理和内容
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)。
C口置/复位字共8位,各位含义如下:
4.8255A的控制信号与传输动作的对应关系
5.命令字与初始化编程
8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:
①向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。
②当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。
这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。
注意:
“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。
③向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据”。
6.静态显示:
按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。
(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1接PC0、PC1;S2、S3接地。
)
7.接线:
PA7~PA0/8255接dp~a/LED数码管
PC3~PC0/8255接S3~S0/LED数码管
CS/8255接Y1/IO地址
三、硬件接线图与软件流程图
a)硬件接线图:
b)软件流程图
四、源程序
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,28BH
MOVAL,80H
OUTDX,AL
MAIN:
MOVDX,28AH
MOVAL,00H
OUTDX,AL
MOVDX,288H
MOVAL,7FH
OUTDX,AL;输出8
MOVDX,28AH
MOVAL,01H
OUTDX,AL;第四个数码管亮
CALLDELAY
MOVDX,288H
MOVAL,4FH
OUTDX,AL;输出3
MOVDX,28AH
MOVAL,02H
OUTDX,AL;第三个数码管亮
CALLDELAY
MOVDX,288H
MOVAL,3FH
OUTDX,AL;输出0
MOVDX,28AH
MOVAL,04H
OUTDX,AL;第二个数码管亮
CALLDELAY
MOVDX,288H
MOVAL,06H
OUTDX,AL;输出1
MOVDX,28AH
MOVAL,08H
OUTDX,AL;第一个数码管亮
CALLDELAY
MOVAH,1
INT16H
JZMAIN;无键盘输入
MOVAH,4CH
INT21H
DELAYPROCNEAR
PUSHCX
MOVCX,05FFFH
YY:
LOOPYY
POPCX
RET
DELAYENDP
CODEENDS
ENDSTART
五、实验结果
4个7段数码管稳定显示学号后4位0145
六、实验总结
实验中主要遇到了下面的问题:
1.数码管显示总是有阴影,不清晰。
主要原因是数码管循环扫描的速度太快,以及视觉的停留效应。
解决办法发是显示下一个字符之前先对数码管进行初始化,使之不显示;
2.在单个数码管显示时间、状态间转换的等待时间控制方面时间的控制,由于循环较多,容易造成的问题是,外层循环次数设置过大,导致整个程序的循环过大,单次大循环时间太长,显示出现问题。
经过多次的调整才对时间的控制和配合找到了感觉。
七、实验收获与心得体会
本次实验中,我们使用8255A并行接口芯片和数码管实现显示字符的程序。
为了实现同时显示不同字符,就要通过扫描(依次点亮数码管)的方式来实现,这就要给CAT信号依次赋值,并且在扫描的过程中要用到延时。
实验三可编程定时器/计数器(8253)实验
一、实验目的
学习掌握8253用作定时器的编程原理。
二、实验原理和内容
8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。
8254是8253的改进型。
1.8253初始化
使用8253前,要进行初始化编程。
初始化编程的步骤是:
①向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。
②向使用的计数器端口写入计数初值。
2.8253控制字
D7D6=00:
使用0号计数器,D7D6=01:
使用1号计数器
D7D6=10:
使用2号计数器,D7D6=11:
无效
D5D4=00:
锁存当前计数值
D5D4=01:
只写低8位(高8位为0),读出时只读低8位
D5D4=10:
只写高8位(低8位为0),读出时只读高8位
D5D4=11:
先读/写低8位,后读/写高8位计数值
D3D2D1=000:
选择方式0,D3D2D1=001:
选择方式1
D3D2D1=X10:
选择方式2,D3D2D1=X11:
选择方式3
D3D2D1=100:
选择方式4,D3D2D1=101:
选择方式5
D0=0:
计数初值为二进制,D0=1:
计数初值为BCD码数
3.实验电路图:
4.接线:
CS/8253接Y0/IO地址
GATE0/8253接+5V
CLK0/8253接1M时钟
OUT0/8253接喇叭或蜂鸣器
三、硬件接线图与软件流程图
a)硬件接线图:
b)软件流程图
四、源程序
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,283H
MOVAL,37H
OUTDX,AL
MOVDX,28BH
MOVAL,80H
OUTDX,AL
MOVDX,28AH
MOVAL,01H
OUTDX,AL
CALLYY
CALLEXIT
EXIT:
MOVDX,283H
MOVAL,30H
OUTDX,AL
MOVAH,4CH
INT21H
DOPROCNEAR
MOVDX,280H
MOVAL,06H
OUTDX,AL
MOVAL,39H
OUTDX,AL
MOVDX,288H;数码管显示
MOVAL,06H
OUTDX,AL
CALLDELAY
RET
DOENDP
REPROCNEAR
MOVDX,280H
MOVAL,72H
OUTDX,AL
MOVAL,34H
OUTDX,AL
MOVDX,288H
MOVAL,5BH
OUTDX,AL
CALLDELAY
RET
REENDP
MIPROCNEAR
MOVDX,280H
MOVAL,25H
OUTDX,AL
MOVAL,31H
OUTDX,AL
MOVDX,288H
MOVAL,4FH
OUTDX,AL
CALLDELAY
RET
MIENDP
FAPROCNEAR
MOVDX,280H
MOVAL,32H
OUTDX,AL
MOVAL,29H
OUTDX,AL
MOVDX,288H
MOVAL,66H
OUTDX,AL
CALLDELAY
RET
FAENDP
SOPROCNEAR
MOVDX,280H
MOVAL,04H
OUTDX,AL
MOVAL,26H
OUTDX,AL
MOVDX,288H
MOVAL,6DH
OUTDX,AL
CALLDELAY
RET
SOENDP
LAPROCNEAR
MOVDX,280H
MOVAL,44H
OUTDX,AL
MOVAL,23H
OUTDX,AL
MOVDX,288H
MOVAL,7DH
OUTDX,AL
CALLDELAY
RET
LAENDP
XIPROCNEAR
MOVDX,280H
MOVAL,83H
OUTDX,AL
MOVAL,20H
OUTDX,AL
MOVDX,288H
MOVAL,07H
OUTDX,AL
CALLDELAY
RET
XIENDP
DO2PROCNEAR
MOVDX,280H
MOVAL,53H
OUTDX,AL
MOVAL,19H
OUTDX,AL
MOVDX,288H
MOVAL,7FH
OUTDX,AL
CALLDELAY
RET
DO2ENDP
DELAYPROCNEAR
MOVCX,40H
LOP:
MOVBX,0FFFFH
LOP2:
DECBX
JNZLOP2
LOOPLOP
RET
DELAYENDP
YYPROCNEAR
CALLDO
CALLRE
CALLMI
CALLFA
CALLSO
CALLLA
CALLXI
CALLDO2
RET
YYENDP
CODEENDS
ENDSTART
五、实验结果
依次播放八个音符,每个音符大概持续一秒时间,播放的同时数码管显示对应的简谱数字。
六、实验总结
音符频率对照
通过公式:
(输出频率=输入频率/8253计数初值),我计算得到各个音阶对应的计数初值。
七、实验收获与心得体会
通过本次实验,我们学习了8253计数器的使用方法。
我们最先了解到的是8253的初始化,包括对于计数器的选择,计数初值的输入方式,计数初值的格式,基础器工作方式等等一些内容的设置。
之后通过加深对各种工作方式的理解,确定下来可以使用方式2或方式3来进行计数器的输出。
因为在这两个方式下8253可以充当分频器。
而在本实验中我选用了方式3,原因是方式2并非输出方波波形。
根据讲义上给出的各个音符的频率,以及8253计数器的输入频率,有了以上的准备,就可以进行实际的编程了。
对于乐曲的播放,选用的是逐个发出相应乐音并显示相应乐符的方法。
实验首先要对硬件设施有一个清楚的认识和了解,然后才能转化为软件的编程。
即要对不同的计数器计数方式,以及不同芯片的初始化方式都弄清楚,由于实现功能较多,在寄存器的使用过程中也要注意保护措施,以免不同子程序或实现不同功能的过程中互相影响。
八、思考题
写出8253计数初值、输入频率和输出频率的关系。
答:
8253计数初值=输入频率/输出频率,即
实验四串行通讯接口8251实验
一、实验目的
1.了解串行通讯的基本原理。
2.掌握串行接口芯片8251的工作原理和编程方法。
二、实验原理和内容
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接Y0/IO地址
CS/8251接Y7/IO地址
RXD/8251接TXD/8251
三、硬件接线图与软件流程图
a)硬件接线图:
b)软件流程图
四、源程序
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE
XIANSHIMACROT
MOVDX,289H
MOVAL,T
OUTDX,AL
JMPGOON
ENDM
START:
MOVAX,DATA
MOVDS,AX
MOVDX,28BH;8255初始化
MOVAL,80H
OUTDX,AL
MOVDX,288H;8255数码管选位
MOVAL,08H
OUTDX,AL
MOVDX,283H;8254计数器控制字写入
MOVAL,16H
OUTDX,AL
MOVDX,280H;8254计数初值写入
MOVAL,52
OUTDX,AL
MOVDX,2B9H;8251内部复位
MOVAL,40H
OUTDX,AL
MOVCX,0FFFFH
DELAY1:
LOOPDELAY1
MOVAL,5EH;方式控制字
OUTDX,AL
MOVCX,0FFFFH
DELAY2:
LOOPDELAY2
MOVAL,37H;命令控制字
OUTDX,AL
MOVCX,0FFFFH
DELAY3:
LOOPDELAY3
GOON:
MOVDX,2B9H
INAL,DX
TESTAL,02H
JNZRECEIVE
TESTAL,01H
JZGOON
MOVAH,01H
INT21H
MOVDX,2B8H
OUTDX,AL
RECEIVE:
MOVDX,2B8H
INAL,DX
MOVDL,AL
MOVAH,02H
INT21H
CMPAL,30H;若输入字符为0
JNZX1
XIANSHI3FH;数码管显示0
X1:
CMPAL,31H
JNZX2
XIANSHI06H;数码管显示1
X2:
CMPAL,32H
JNZX3
XIANSHI5BH
X3:
CMPAL,33H
JNZX4
XIANSHI4FH
X4:
CMPAL,34H
JNZX5
XIANSHI66H
X5:
CMPAL,35H
JNZX6
XIANSHI6DH
X6:
CMPAL,36H
JNZX7
XIANSHI7DH
X7:
CMPAL,37H
JNZX8
XIANSHI07H
X8:
CMPAL,38H
JNZX9
XIANSHI7FH
X9:
CMPAL,39H
JNZXL
XIANSHI6FH
XL:
XIANSHI0
CODEENDS
ENDSTART
五、实验结果
从键盘获取输入的ASCⅡ码,在屏幕上显示本次输入和上次输入的数字,在数码管上显示上次输入的数字。
故数码管现实的数值总是滞后一次。
实验总结
实验中主要遇到了下面两个问题:
1.部分传输正确,部分传输不正确。
主要原因是课本的程序是错误的,读状态字应该从控制端口读取,而不是从数据端口读取。
错误主要是由于地址写的不正确。
2.有时一开始运行,会出错。
原因是时钟太快,可以编写延时程序,在8251A初始化时插入延时,解决这个问题。
六、实验收获与心得体会
实验连接电路很重要,实验前一定要先检查电路是否完好。
否则,即使你程序编写正确也无法运行,而且很难找到错误。
事先可以使用演示实验测试一下电路是否正确,在测试自己的程序是否正确,这样可以节省时间提高效率。
8251A作为串行通信接口,时序是非常重要的,输入输出之间的时间差必须控制得合适,否则就不能正常收发,这可以通过软件编程实现,当时序不符合时,可插入等待时间,即软件延时。
通过这次实验对于8251的工作原理有了比较清楚的认识。
同时也加深了对于串并转换的实现和其作用的理解。
七、思考题
在实验中,你如何确定RXC、TXC的值,写出计算公式。
答:
RXC=TXC=8253输入时钟频率=8251的波特率×8251的波特因子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 硬件 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)