




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术 硬件实验报告31目录实验一基本的IO实验2A.I/O地址译码2一、实验目的2二、实验原理和内容2三、硬件接线图与软件流程图3四、源程序4五、实验结果5实验总结5六、实验收获与心得体会5B.简单并行接口5一、实验目的5二、实验原理和内容6三、硬件接线图与软件流程图6四、源程序7五、实验结果8六、实验总结8七、实验收获与心得体会8实验二可编程并行接口8255实验8一、实验目的8二、实验原理和内容8三、硬件接线图与软件流程图10四、源程序12五、实验结果15六、实验总结15七、实验收获与心得体会15实验三可编程定时器/计数器(8253)实验15一、实验目的15二、实验原理和内容15三、硬件接线图与软件流程图17四、源程序17五、实验结果24六、实验总结24七、实验收获与心得体会24八、思考题24实验四串行通讯接口8251实验25一、实验目的25二、实验原理和内容25三、硬件接线图与软件流程图25四、源程序26五、实验结果31实验总结31六、实验收获与心得体会31七、思考题31实验一基本的IO实验A. I/O地址译码一、 实验目的掌握I/O地址译码电路的工作原理。二、 实验原理和内容1. 实验电路硬件接线图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H287H,Y1:288H28FH, 当CPU执行I/O指令且地址在280H2BFH范围内,译码器选中,必有一根译码线输出负脉冲。例如:执行下面两条指令MOV DX,2A0H OUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8H OUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。2. 接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D角发器接 +5V Q/D触发器接 L7(LED灯)或逻辑笔三、 硬件接线图与软件流程图a) 硬件接线图:b) 软件流程图四、 源程序CODE SEGMENT ASSUME CS:CODE yych PROC FSR START: CMP AL,27 JE yych_exit MOV DX,2A8H OUT DX,AL MOV AH,1 INT 21H JMP START yych_exit: MOV AH,4CH INT 21H yych ENDP CODE ENDS END START 五、 实验结果二极管闪烁显示实验总结本次实验遇到的主要问题是延时程序的调节,及二极管的显示,通过调整程序问题都得到了解决。六、 实验收获与心得体会本次实验是微原硬件实验的第一次,主要是熟悉了将要使用的实验系统,学习了最基本的硬件测试的方法,对接口的地址、LED灯的控制等有了测试和记录,为后续实验作好准备。B. 简单并行接口一、 实验目的掌握简单并行接口的工作原理及使用方法。二、 实验原理和内容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个数据输出端分别接数据总线D0D7。4. 用逻辑电平开关预置某个字母的ASC码,编程输入这个ASC码,并将其对应字母在屏幕上显示出来。5. 接线:1) 输出按硬件连接图接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)2) 输入按硬件连接图接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)三、 硬件接线图与软件流程图a) 硬件接线图:b) 软件流程图四、 源程序CODE SEGMENT ASSUME CS: CODESTART:MOV DX, 28BHMOV AL, 89H ;设8255为A口输出,C口输入OUT DX, ALINPUT:MOV DX, 28AH ;从C口输入一数据IN AL, DXMOV DX, 288HOUT DX, AL ;从A口输出刚才自C口输入的数据MOV AH,1 ;判断是否有键按下INT 16HJZ INPUT ;若无,则继续从C口输入,A口输出MOV AH,4CH ;若有,返回DOS INT 21HCODE ENDSEND START五、 实验结果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口PA0PA7分别与七段数码管的段码驱动输入端adp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。)7. 接线: PA7PA0/8255接dpa/LED数码管PC3PC0/8255接S3S0/LED数码管CS/8255接Y1/IO地址三、 硬件接线图与软件流程图a) 硬件接线图:b) 软件流程图四、 源程序CODESEGMENTASSUME CS:CODESTART:MOV DX,28BHMOV AL,80HOUT DX,ALMAIN:MOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,7FHOUT DX,AL;输出 8MOV DX,28AHMOV AL,01HOUT DX,AL;第四个数码管亮CALL DELAYMOV DX,288HMOV AL,4FHOUT DX,AL;输出 3MOV DX,28AHMOV AL,02HOUT DX,AL;第三个数码管亮CALL DELAYMOV DX,288HMOV AL,3FHOUT DX,AL;输出 0MOV DX,28AHMOV AL,04HOUT DX,AL;第二个数码管亮 CALL DELAY MOV DX,288HMOV AL,06HOUT DX,AL;输出 1 MOV DX,28AHMOV AL,08HOUT DX,AL;第一个数码管亮CALL DELAYMOV AH,1INT 16HJZ MAIN;无键盘输入MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV CX,05FFFHYY: LOOP YYPOP CXRETDELAY ENDPCODEENDSEND START 五、 实验结果4个7段数码管稳定显示学号后4位0145六、 实验总结实验中主要遇到了下面的问题:1. 数码管显示总是有阴影,不清晰。主要原因是数码管循环扫描的速度太快,以及视觉的停留效应。解决办法发是显示下一个字符之前先对数码管进行初始化,使之不显示;2. 在单个数码管显示时间、状态间转换的等待时间控制方面时间的控制,由于循环较多,容易造成的问题是,外层循环次数设置过大,导致整个程序的循环过大,单次大循环时间太长,显示出现问题。经过多次的调整才对时间的控制和配合找到了感觉。七、 实验收获与心得体会本次实验中,我们使用8255A并行接口芯片和数码管实现显示字符的程序。为了实现同时显示不同字符,就要通过扫描(依次点亮数码管)的方式来实现,这就要给CAT信号依次赋值,并且在扫描的过程中要用到延时。实验三可编程定时器/计数器(8253)实验一、 实验目的学习掌握8253用作定时器的编程原理。二、 实验原理和内容8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。8254是8253的改进型。1. 8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是:向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。向使用的计数器端口写入计数初值。2. 8253控制字D7D600:使用0号计数器,D7D601:使用1号计数器D7D610:使用2号计数器,D7D611:无效D5D400:锁存当前计数值D5D401:只写低8位(高8位为0),读出时只读低8位D5D410:只写高8位(低8位为0),读出时只读高8位D5D411:先读/写低8位,后读/写高8位计数值D3D2D1000:选择方式0,D3D2D1001:选择方式1D3D2D1X10:选择方式2,D3D2D1X11:选择方式3D3D2D1100:选择方式4,D3D2D1101:选择方式5D00:计数初值为二进制,D01:计数初值为BCD码数3. 实验电路图:4. 接线:CS /8253接Y0 /IO 地址GATE0 /8253接+5VCLK0 /8253接1M时钟OUT0 /8253接喇叭或蜂鸣器三、 硬件接线图与软件流程图a) 硬件接线图:b) 软件流程图四、 源程序CODESEGMENTASSUME CS:CODESTART:MOV DX,283HMOV AL,37HOUT DX,AL MOV DX,28BHMOV AL,80HOUT DX,AL MOV DX,28AHMOV AL,01HOUT DX,AL CALL YY CALL EXIT EXIT:MOV DX,283HMOV AL,30HOUT DX,ALMOV AH,4CHINT 21HDOPROC NEARMOV DX,280HMOV AL,06HOUT DX,ALMOV AL,39HOUT DX,AL MOV DX,288H ;数码管显示MOV AL,06H OUT DX,AL CALL DELAYRETDOENDPREPROC NEARMOV DX,280HMOV AL,72HOUT DX,ALMOV AL,34HOUT DX,AL MOV DX,288HMOV AL,5BHOUT DX,AL CALL DELAYRETREENDPMIPROC NEARMOV DX,280HMOV AL,25HOUT DX,ALMOV AL,31HOUT DX,ALMOV DX,288HMOV AL,4FHOUT DX,ALCALL DELAYRETMIENDPFAPROC NEARMOV DX,280HMOV AL,32HOUT DX,ALMOV AL,29HOUT DX,ALMOV DX,288HMOV AL,66HOUT DX,ALCALL DELAYRETFAENDPSOPROC NEARMOV DX,280HMOV AL,04HOUT DX,ALMOV AL,26HOUT DX,ALMOV DX,288HMOV AL,6DHOUT DX,ALCALL DELAYRETSOENDPLAPROC NEARMOV DX,280HMOV AL,44HOUT DX,ALMOV AL,23HOUT DX,ALMOV DX,288HMOV AL,7DHOUT DX,ALCALL DELAYRETLAENDPXIPROC NEARMOV DX,280HMOV AL,83HOUT DX,ALMOV AL,20HOUT DX,ALMOV DX,288HMOV AL,07HOUT DX,ALCALL DELAYRETXIENDPDO2PROC NEARMOV DX,280HMOV AL,53HOUT DX,ALMOV AL,19HOUT DX,ALMOV DX,288HMOV AL,7FHOUT DX,ALCALL DELAYRETDO2ENDPDELAY PROC NEARMOV CX,40HLOP:MOV BX,0FFFFHLOP2:DEC BXJNZ LOP2LOOP LOPRETDELAY ENDPYY PROC NEAR CALL DO CALL RE CALL MI CALL FA CALL SO CALL LA CALL XI CALL DO2 RETYY ENDPCODEENDSEND START五、 实验结果 依次播放八个音符,每个音符大概持续一秒时间,播放的同时数码管显示对应的简谱数字。六、 实验总结音符频率对照通过公式:(输出频率 = 输入频率 / 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接+5V0UT0 /8254接TX/RXCLK /8251CS /8254接Y0 /IO地址CS /8251接Y7 /IO地址RXD /8251接TXD /8251三、 硬件接线图与软件流程图a) 硬件接线图:b) 软件流程图四、 源程序DATA SEGMENTDATA ENDS STACK SEGMENT STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODEXIANSHI MACRO T MOV DX,289H MOV AL,T OUT DX,AL JMP GOON ENDM START :MOV AX,DATA MOV DS,AX MOV DX,28BH ;8255 初始化MOV AL,80H OUT DX,AL MOV DX,288H ;8255 数码管选位 MOV AL,08H OUT DX,AL MOV DX,283H ;8254 计数器控制字写入 MOV AL,16H OUT DX,AL MOV DX,280H ;8254 计数初值写入 MOV AL,52 OUT DX,AL MOV DX,2B9H ;8251 内部复位 MOV AL,40H OUT DX,AL MOV CX,0FFFFHDELAY1: LOOP DELAY1 MOV AL,5EH ;方式控制字 OUT DX,AL MOV CX,0FFFFHDELAY2: LOOP DELAY2 MOV AL,37H ;命令控制字 OUT DX,AL MOV CX,0FFFFHDELAY3: LOOP DELAY3 GOON: MOV DX,2B9H IN AL,DX TEST AL,02H JNZ RECEIVE TEST AL,01H JZ GOON MOV AH,01H INT 21H MOV DX,2B8H OUT DX,AL RECEIVE: MOV DX,2B8H IN AL,DX MOV DL,AL MOV AH,02H INT 21H CMP AL,30H ;若输入字符为0 JNZ X1 XIANSHI 3FH ;数码管显示0X1: CMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论