资源描述:
《北京邮电大学微原硬件实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微原硬件实验报告班级:学号:班内序号:姓名:实验一、二基本的I/O实验一、实验目的1、掌握I/O地址译码电路的工作原理。2、掌握简单并行接口的工作原理及使用方法。二、实验原理及内容1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出
2、负脉冲。例如:执行下面两条指令MOVDX,2A0HOUTDX,AL(或INAL,DX)Y4输出一个负脉冲,执行下面两条指令MOVDX,2A8HOUTDX,AL(或INAL,DX)Y5输出一个负脉冲。利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。2、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。3、编程从键盘输入一个字符或
3、数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。4、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。5、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。三、硬件接线图与软件程序流程图图1:实验一的硬件接线图图2:实验二的硬件接线图图3:实验二的程序流程图四、源程序1、实验
4、一源程序DATASEGMENTDATAENDSSTACKSEGMENTSTACK'STACK'DB100HDUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK;延时子程序DELAYPROCNEARMOVBX,500PUSHCXLOOP2:MOVCX,0FFFHWAIT:LOOPWAITDECBXJNZLOOP2POPCXRETDELAYENDPSTART:MOVCX,0FFFFH;二极管闪烁部分LOOP1:MOVDX,2A0H;灯亮MOVAL,0FFHOUTDX,A
5、LCALLDELAYMOVDX,2A8H;灯灭MOVAL,0OUTDX,ALCALLDELAYLOOPLOOP1CODEENDSENDSTART2、实验二的源程序DATASEGMENTDATAENDSSTACKSEGMENTSTACK'STACK'DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAH,1;键盘输入INT21HCMPAL,27;检测是否为ESC键JZEXITMOVDX,2A8H;输出OUTDX,ALJMPSTART;返回
6、DOSEXIT:MOVAX,4C00HINT21HCODEENDSENDSTART五、实验结果1、实验一:二极管闪烁显示2、实验二:键盘输入,然后二极管显示键盘输入的ASCⅡ码六、实验总结本实验遇到的问题主要是:1、二极管显示不正常,主要是延时的问题,调整一下就好了。七、实验收获与心得体会这次实验的要点是对I/O接口译码电路的理解以及使用。我们测试了外设功能,这使我们了解了地址与端口的对应情况,从而明确了程序编写的流程和注意事项。通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的
7、认识。这次实验也为以后的实验打下了基础,特别是,应先理解了译码电路的工作原理,然后才能进行编程。实验三、四、五可编程并行接口8255实验一、实验目的1、通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。2、掌握数码管显示数字的原理。3、掌握8255控制键盘及显示电路的基本功能及编程方法。4、掌握一般键盘和显示电路的工作原理。二、实验原理及内容实验三:1、实验电路如图4-3-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。2、编程从8255C口输入数据,再从A口输出。实验四:
8、1、静态显示:按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1接P