北邮微机原理TPC-ZK课后实验指导书附答案.pdf_第1页
北邮微机原理TPC-ZK课后实验指导书附答案.pdf_第2页
北邮微机原理TPC-ZK课后实验指导书附答案.pdf_第3页
北邮微机原理TPC-ZK课后实验指导书附答案.pdf_第4页
北邮微机原理TPC-ZK课后实验指导书附答案.pdf_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机硬件实验 第一次实验 实验一实验一 I/O 地址译码地址译码 一、一、 实验目的实验目的 掌握 I/O 地址译码电路的工作原理。 二、二、 实验原理及内容实验原理及内容 实验电路如图所示,其中74LS74为D触发器,可直接使用实验台上数字电路 实验区的D触发器,74LS138为地址译码器。译码输出端Y0Y7在实验台上“I/O 地址“输出端引出,每个输出端包含8个地址,Y0:280H287H,Y1:288H 28FH, 当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闪烁发光(亮、灭、亮、灭、) ,时间间隔通过 软件延时实现。 三、硬件接线图与程序流程图 接线: Y4/IO地址 接 CLK/D触发器 Y5/IO地址 接 CD/D触发器 D/D触发器 接 SD/D角发器 接 +5V Q/D触发器 接 L7(LED灯)或 逻辑笔 连接图: 流程图: 四、实验源程序:四、实验源程序: DATA SEGMENT DATA ENDS STACK SEGMENT STACK STACK STACK ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA, SS:STACK DELAY PROC NEAR PUSH CX 开始 在 Y4 端口输出一个负脉冲 延时 在 Y5 端口输出一个负脉冲 延时 键盘输入? 否 是 结束 MOV BX,0FFFFH LOOP1:MOV CX,0100H LOOP2:LOOP LOOP2 DEC BX JNZ LOOP1 POP CX RET DELAY ENDP START:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV CX,200H AGAIN:MOV DX,2A0H ;时钟 OUT DX,AL CALL DELAY MOV DX,2A8H ;复位 OUT DX,AL CALL DELAY LOOP AGAIN MOV AX,4C00H INT 21H CODE ENDS END START 五、实验结果五、实验结果 运行程序后 led 灯 L7 不断闪烁,达到实验预期要求。 六、六、 实验总结实验总结 本次实验编程和连接都相对简单, 主要是对D触发器的一些更加深入的理解。 本次试验第一次使用实验箱,实验过程中熟悉了对实验箱的使用。 实验二实验二 简单并行接口简单并行接口 一、一、 实验目的实验目的 掌握简单并行接口的工作原理及使用方法。 二、二、 实验原理及内容实验原理及内容 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码,并将其对 应字母在屏幕上显示出来。 三、三、硬件接线图与硬件接线图与程序流程图程序流程图 四、四、 实验实验源程序源程序 DATA SEGMENT ;数据段 BB DB 0FFH ; DATA ENDS STACK SEGMENT PARA STACK STACK ;堆栈段 DB 100 DUP(?) STACK ENDS CODE SEGMENT ;代码段 开始 键盘输入 输入 ESC? 否 从端口 2A8H 输出 其安 asc 码值 结束 是 ASSUME CS:CODE, SS:STACK ,DS:DATA START:MOV AH,01H INT 21H CMP AL,1BH ;与ESC的ascii码值比较 JZ EXIT MOV DX,2A8H OUT DX,AL JMP START EXIT: MOV AH,4CH INT 21H CODE ENDS END START 五、五、 实验结果实验结果 运行程序后与实验要求一致,8个LED灯可以显示输入的字符对应的ASC码。 例如,键盘输入1的时候,对应的ASC码为00110001,对应为L1、L4,L5发光二 极管亮而其他的LED灯不亮。 六、六、 实验总结实验总结 本次试验的原理比较简单,74LS273 是一个 8D 触发器,原理上与实验一是一 样的。就是 273 的所有连线都要自己连接,要细心才能不出错。 第二次实验第二次实验 实验四实验四 七段数码管七段数码管 一、实验目的一、实验目的 通过实验,掌握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口方式1只能用查询方式与CPU交换信息。 2. 工作方式选择字 8255工作方式选择字共8位(如图),存放在8255控制寄存器中。最高位D7为 标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存 器中存放的是C口置位/复位控制字。 3C口置/复位控制字 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口PA0PA7分别与七段数 码管的段码驱动输入端adp相连, 位码驱动输入端S0、 S1 、 S2、 S3接PC0、 PC1、 PC2、PC3,编程在数码管显示自己的学号的后四位。 三、三、 硬件接线图与硬件接线图与程序流程图程序流程图 流程图: 开始 设置 8255 为 A、C 口输出 选定第四位数码管 送 0 的段码 选定第三位数码管 键盘输入? 否 是 结束 送 5 的段码 选定第二位数码管 送 1 的段码 选定第一位数码管 送 7 的段码 四、四、 程序程序源代码源代码 DATA SEGMENT PORTA EQU 288H PORTC EQU 28AH PORTCON EQU 28BH DATA ENDS STACK SEGMENT STACK STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AL,80H ;初始化控制字 MOV DX,PORTCON OUT DX,AL START1: MOV AL,08H ;第四位有效 MOV DX,PORTC OUT DX,AL MOV AL,3FH ;0 MOV DX,PORTA OUT DX,AL CALL DELAY MOV AL,04H ;第三位有效 MOV DX,PORTC OUT DX,AL MOV AL,6dH ;5 MOV DX,PORTA OUT DX,AL CALL DELAY MOV AL,02H ;第二位有效 MOV DX,PORTC OUT DX,AL MOV AL,06H ;1 MOV DX,PORTA OUT DX,AL CALL DELAY MOV AL,01H ;第一位有效 MOV DX,PORTC OUT DX,AL MOV AL,07H ;7 MOV DX,PORTA OUT DX,AL CALL DELAY MOV AH,1 INT 16H JZ START1 ;若无按键,ZF=1 MOV AL,00H MOV DX,PORTC OUT DX,AL MOV AX,4C00H INT 21H DELAY PROC NEAR MOV BX,0 DELAY1: MOV CX,1 WAIT1: LOOP WAIT1 DEC BX JNE DELAY1 RET DELAY ENDP CODE ENDS END START 五、五、 实验结果实验结果 运行程序, 完成实验要求的内容, 在七段数码管上显示自己学号的后4位0517。 六、六、 实验总结实验总结 这次实验重点在于掌握了8255的编程。通过这次实验,我比较清晰的掌握了 8255的编程方法,尤其是控制字的写入和数据的读写。由于使用4跟根数码管, 需要位选和段选信号。 故用A口和C口的低4位作为输出, 将写好的控制字送到8255 的控制口。然后需要将数据送到A口和C口即可实现所要求的内容。 第三次:可编程定时器第三次:可编程定时器/ /计数器(计数器(82538253)实验)实验 一、实验目的:一、实验目的: 学习掌握 8253 用作定时器的编程原理 二、二、 实验原理及内容实验原理及内容 实验原理:8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方 法相同。8254是8253的改进型。 18253初始化 使用8253前,要进行初始化编程。初始化编程的步骤是: 1 向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 2 向使用的计数器端口写入计数初值。 28253 控制字 D7D600:使用0号计数器,D7D601:使用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 码数 实验内容:完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐。 三、硬件接线图与程序流程图三、硬件接线图与程序流程图 流程图: 开始 8253 初始化 8255A 初始化 设置数码管选通信号 按照乐谱,调用发音子程序 键盘输入? 否 是 数码管显示当前的音节 延时 否 四、四、 实验实验源程序源程序 DATA SEGMENT 8255A EQU 288H 8253A EQU 280H 8255C EQU 28AH 8255CON EQU 28BH 8253CON EQU 283H STT DB 0 BUF DB 0 LIGT DB ? TABLEF DW 524,588,660,698,784,880,988 DW 262,294,330,347,392,440,494 SONGF DB 1,2,3,1,1,2,3,1,3,4,5,3,4,5 DB 5,6,5,4,3,1,5,6,5,4,3,1,1,12,1,1,12,1,0FFH SONGT DB 2,2,2,2,2,2,2,2,2,2,4,2,2,4,1,1,1,1,2,2 DB 1,1,1,1,2,2,2,2,4,2,2,4 MSG DB PRESS 1,2,3,4,5,6,7,8,ESC,SPACE:0DH,0AH,$ LED DB 01H,02H,04H,08H,10H,20H,40H,80H,0,0,0,80H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,8253CON MOV AL,36H OUT DX,AL MOV DX,8255CON MOV AL,80H OUT DX,AL MOV DX,OFFSET MSG MOV AH,09H INT 21H SING: MOV BUF,00H MOV AH,07H INT 21H CMP AL,1BH 结束 JE FINISH CMP AL,20H JE EEE CMP AL,1 JL SING CMP AL,8 JG SING MOV BUF,1 SUB AL,31H SHL AL,1 MOV BL,AL MOV LIGH,BL MOV BH,0 EEA: MOV AX,4240H MOV DX,0FH MOV DI,WORD PTRTABLE+BX DIV DI MOV BX,AX MOV DX,8253A MOV AX,BX OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,8255C MOV AL,03H OUT DX,AL CALL DELAY MOV AL,00H OUT DX,AL TEST BUF,1 JNZ SING SSS: ADD STT,01H ADD SI,01H JMP EEB JUDGE: MOV STT,0 MOV AH,06 MOV DL,0FFH INT 21H JE EEE JMP SING FINISH:MOV AX,4C00H INT 21H EEE: MOV SI,OFFSET SONGF EEB: MOV CL,SI CMP CL,0FFH JE JUDGE DEC CL MOV LIGT,CL MOV AL,2 MUL CL MOV BX,AX JMP EEA DELAY PROC NEAR PUSH DX PUSH BX PUSH CX PUSH AX MOV BL,LIGT MOV BH,0 MOV AL,LED+BX MOV DX,8255A OUT DX,AL MOV AL,15 MOV BL,STT MOV BH,0 MOV DL,SONGT+BX MUL DL X1: MOV CX,0FFFFH X2: DEC CX JNZ X2 DEC AX JNZ X1 POP AX POP CX POP BX POP DX RET DELAY ENDP CODE ENDS END START 五、五、 实验结果实验结果 运行程序,喇叭能正确播放出预先设定好的乐谱。 六、六、 实验总结实验总结 这次实验中我们学习使用了 8253 定时器,8253 共有 3 个工作通道,每个通 道有 5 种工作方式, 在程序一开始应该将控制字送入控制寄存器以确定工作的通 道和方式,在这次实验里主要是驱动蜂鸣器所以选择方式 2.通过技术初值,输 入频率和输出频率的关系计算出每个音符应该给工作通道送的计数初值, 将计数 初值送到工作通道的地址以实现蜂鸣器响。 再通过改变不同的计数初值实现音乐 播放。 通过本次实验, 我学习了 8253 定时器的使用, 并进一步提升了编程能力。 实验四实验四 串行串行 8251A 实验实验 一、一、实验目的实验目的 1.了解串行通信的一般原理和 8251A 的工作原理 2.初步了解 RS232 串行口标准及与 TTL 电路的连接方法; 3.学会扩充 8251A 的方法,并设计实现用 8251A 进行数据传输; 4.掌握 8251A 的编程方法。 二、二、实验实验原理及原理及内容内容 1、 按图4-16-1连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发 送和接收时钟,TXD和RXD连在一起。 2、 编程: 从键盘输入一个字符,将其 ASCII 码加 1 后发送出去,再接收回来在屏 幕上显示,(或将内存制定区域内存放的一批数据通过 8251A 的 TXD 发送出去, 然后从 RXD 接收回来,并在屏幕上或数码管上显示出来。)实现自发自收。 三、硬件接线图与程序流程图三、硬件接线图与程序流程图 硬件连接图: 流程图: 流程图: 开始 8253 初始化 8251 初始化 显示提示 从 8251 控制口读状态字 TxRDY 为 1? 否 是 结束 从键盘接收字符 是 是 ESC? 否 将键入的 ASC 码值加一 通过 8251 端口发送数据 从 8251 控制口读状态字 四、四、 实验实验源程序源程序 DATA SEGMENT STRING DB PLEASE INPUT A CHARACTER:,0DH,0AH,$ DATA ENDS STACK SEGMENT STACK STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV DX,0283H MOV AL,16H ;00010110 OUT DX,AL MOV DX,0280H; 设置8253A计数器0的初值 MOV AL,34H; OUT DX,AL MOV DX,02B9H;初始化8251 MOV AL,40H CALL OUT1 MOV AL,4EH;01001110方式控制字 CALL OUT1 MOV AL,27H;00100111向8251命令控制字,允许其发送和接收 CALL OUT1 MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论