




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学微机原理与接口技术硬件实验报告 学院:信息与通信工程学院班级:学号:班内序号:姓名:实验一 I/O地址译码 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验原理和内容 1、实验电路如图1-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输出一个负脉冲。图1-1利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。 2、接线: Y4/IO地址 接 CLK/D触发器 Y5/IO地址 接 CD/D触发器 D/D触发器 接 SD/D角发器 接 +5V Q/D触发器 接 L7(LED灯)或 逻辑笔三、硬件接线图和软件程序流程图1、硬件连线图如图1-1;2、软件程序流程图开始自端口2A0H输出自端口2A8H输出延时有输入吗结束NY图1-2四、源程序DATA1 EQU 2A0H;定义数据变量代表地址2A0HDATA2 EQU 2A8H;定义数据变量代表地址2A8HCODE SEGMENT ASSUME CS:CODEBEGIN: MOV DX,DATA1 OUT DX,AL;向地址DATA1输出信号 CALL DELAY;调用延时子程序 MOV DX,DATA2 OUT DX,AL CALL DELAY MOV AH,1;检测是否有键盘输入 INT 16H JE BEGIN;如果没有输入,则循环 MOV AX,4C00H;返回DOS INT 21HDELAY PROC NEAR;延时子程序MOV CX,0FFFFHLP1: MOV BX,200LP2:DEC BXJNZ LP2LOOP LP1RETDELAY ENDPCODE ENDS END BEGIN 五、实验结果运行程序后可以看到LED灯亮灭交替,改变延时时间,灭的持续时间增加。六、实验总结由于这个实验是第一次接触,虽然比较简单,但是还是出现了很多的问题。刚开始忘记写延时子程序,后来发现后加上,发现LED灯还是一直亮,到最后才发现原来是延时的时间太短,所以延时采用了两层循环以增加延时长度。七、实验收获与心得体会通过这个实验,首先让我对汇编程序的要素有了更加清晰的认识,就是汇编程序便需要有代码段;其次,当汇编程序出现问题时,掌握了一定的解决方法。实验二 简单并行接口 一、实验目的 掌握简单并行接口的工作原理及使用方法。 二、实验原理和内容 1、 按下面图4-2-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)输出 按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门) 2)输入 按图4-2-2接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)三、硬件接线图和软件程序流程图1、硬件接线图图2-12、软件程序流程图图2-2四、源代码CODESEGMENTASSUME CS:CODEBEGIN:XOR AX,AXMOV AH,1INT 21HCMP AL,1BHJZ EDMOV DX,2A8HOUT DX,ALLOOP BEGINED:MOV AX,4C00HINT 21HCODEENDSEND BEGIN五、实验结果连接好电路后,运行程序,然后用键盘输入任意一个字母或者数字,然后发现LED灯的亮灭情况正好表示了所输入字符的ASC码。六、实验总结此次实验代码比较简单,看好输出端基本上就不会有什么大的代码问题,这个实验关键的一点我觉得是连接电路,由于实验所需电路要连接的线比较多,所以在连接线的时候一定要认真仔细,一旦连错很难检查出来,那样的话就只能重新连接了。七、实验收获与心得体会这个实验主演还是让我们进一步接触这种软硬结合的方式,以便不断地了解熟悉它,通过这次实验,除实验本身外,由于要检测键盘的输入,我还对理论课上讲的中断号01H有了更加深刻的印象。实验三 可编程并行接口8255 一、实验目的 1、通过实验,掌握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)。C口置/复位字共8位,各位含义如下:48255A的控制信号与传输动作的对应关系5命令字与初始化编程 8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是: 向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。 当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。 注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。 向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据”实验内容:1)、实验电路如图4-3-1,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。 2)、编程从8255C口输入数据,再从A口输出。3)、接线:PC7PC0/8255 接 K7K0/逻辑电平开关 PA7PA0/8255 接 L7L0/LED显示 CS/8255 接 Y1/IO地址三、硬件连线图和软件程序流程图1、硬件连线图图3-12、软件程序流程图 四、源程序CODESEGMENTASSUME CS:CODEBEGIN:MOV DX,28BHMOV AL,BOUT DX,ALMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALINT 21HMOV AX,4C00HCODE ENDSEND BEGIN五、实验结果连接好电路,运行程序后,可以发现根据开关闭合的不同,LED灯亮灭的情况也随之而改变,实现了实验中的要求。六、实验总结由于此实验比较简单,实验过程中没有出现什么大的问题。只是一开始的时候发现在我运行完后,发现改变开关的闭合情况,LED灯的亮灭情况不变,后来发现每次程序运行时只读取一次数据,而在程序运行的过程中并不读取数据,所以就出现了那样的情况。七、实验收获与心得体会通过这次试验,让我对8255这个元器件有了一定的认识,进一步熟悉了汇编语言编程,为将来更加困难的实验做了准备。实验四 七段数码管 一、实验目的 掌握数码管显示数字的原理 二、实验原理和内容 、静态显示:按4-4-1连接好电路,将8255的A口PA0PA7分别与七段数码管的段码驱动输入端adp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。 (或编程在数码管上循环显示 “00-99” , 位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。)2、接线: PA7PA0/8255 接 dpa/LED数码管 PC3PC0/8255 接 S3S0/LED数码管 CS/8255 接 Y1/IO地址三、硬件连接图和软件程序流程图1、硬件连接图图4-12、软件程序流程图图4-2 四、源代码DATA SEGMENTDATA0EQU 3FHDATA3EQU 4FHDATA4EQU 66HDATA6EQU 7DHDATA ENDSSTACK SEGMENT STACK STACKDB 100 dup(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FAR MOV AX, DATAMOV DS, AXMOV AL,80HMOV DX,28BHOUT DX,ALLOOP1:MOV DX,28AHMOV AL,08HOUT DX,ALMOV DX,288HMOV AL,DATA0OUT DX,ALCALL DELAYMOV DX,28AHMOV AL,04HOUT DX,ALMOV DX,288HMOV AL,DATA3OUT DX,ALCALL DELAYMOV DX,28AHMOV AL,02HOUT DX,ALMOV DX,288HMOV AL,DATA4OUT DX,ALCALL DELAYMOV DX,28AHMOV AL,01HOUT DX,ALMOV DX,288HMOV AL,DATA6OUT DX,ALCALL DELAYMOV AH,1INT 16HJZ LOOP1RETSTART ENDPDELAY PROC NEARMOV CX,00FFHLP1: MOV BX,200LP2:DEC BXJNZ LP2LOOP LP1RETDELAY ENDPCODE ENDSEND START五、实验结果连接好电路图,然后运行程序,在数码管上显示我的学号0346四个数字。六、实验总结最开始的时候实验确实出现了一些问题,跟我想的不一样。由于实验要求是在4个数码管上同时显示四个数字,所以刚开始我认为如果要延时程序,延时时间应该很短,因此我认为不用延时程序,而结果没有延时程序出不来结果,显示一群乱码。之后我加上延时程序后,数码管显示就变得正常了。这个程序的关键应该就是控制字的确定,然后数码管方面一定要有一组选通信号。七、实验收获与心得体会这个实验告诉我在做这类实验时千万不要想当然,一定要按照实际的要求一步一步来,不要想着“偷工减料”图省事,关键是要踏实。其次是通过这个实验让我对8255这个芯片有了更加深刻的认识,对于控制字的理解更加深刻。实验八 可编程定时器计数器(8253/8254) 一、实验目的: 学习掌握8253用作定时器的编程原理; 二、实验原理和内容 8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。8254是8253的改进型。 18253初始化 使用8253前,要进行初始化编程。初始化编程的步骤是: 向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 向使用的计数器端口写入计数初值。 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码数3、接线: CS /8253 接 Y0 /IO 地址 GATE0 /8253 接 +5V CLK0 /8253 接 1M时钟 OUT0 /8253 接 喇叭或蜂鸣器4、完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。 音符频率对照三、硬件接线图和软件程序连接图1、硬件接线图 2、软件程序连接图四、源程序DATASEGMENTBUF1DB 06H 5BH 4FH 66H 6DH 7DH 07H 7FHBUF2DW 3906,3472,3125,2933,2604,2344,2083,1953DATAENDSCODESEGMENTASSUME DS:DATA,CS:CODEBEGIN:MOV CX,08HLEA SI,BUF1MOV BX,OFFSET BUF2MOV DX,283HMOV AL,37HOUT DX,AL MOV DX,28BHMOV AL,80HOUT DX,ALL1:MOV DX,280HMOV AX,BXOUT DX,ALMOV AL,AHOUT DX,ALMOV DX,28AHMOV AL,01HOUT DX,ALMOV DX,288HMOV AL,SIOUT DX,ALCALL DELAYINC SIINC BXINC BXLOOP L1MOV AH,1 INT 16H JE BEGIN MOV AX,4C00H INT 21HDELAY PROC NEARPUSH CXPUSH BXMOV CX,0FFFFHLP1: MOV BX,100LP2:DEC BXJNZ LP2LOOP LP1POP BXPOP CXRETDELAY ENDPCODEENDSEND BEGIN五、实验结果连接好电路后,运行程序,然后会听见蜂鸣器按照do/re/mi/fa/so/la/si/do依次响,当有键盘输入时,声音中止。六、实验总结这个实验思路比较简单,所以在写好代码后就基本上没有什么问题,只是个人觉得我写的原来的代码有点冗杂(原来是每一个音符都单独写一段汇编程序),其实有很多都可以用一个循环实现的,并且后来我也做了很多的尝试,但是多次的尝试都失败了,失败基本上都是由于寄存器不够用了。后来突然想到了理论课上讲的推入堆栈保护,一下子恍然大悟,这就是现在代码的由来,个人觉得这个实验我还是下了一番苦心的。七、实验收获与心得体会这个实验毋庸置疑地让我学会了很多东西,更加熟悉了汇编程序,之前老师上课讲的什么推入堆栈保护,当时根本不理解,不知道为什么要这样做,这次实验让我彻底明白了这样做的意义:就是有时候要多次用到一个寄存器时一定要先推入堆栈保护,这样的话就不会影响在别的地方用相同的寄存器了。此外,又学习了一种元器件,即8253计数器,对于微机的原理有了更加上课的理解。实验十六 串行通讯8251 一、实验目的 1、了解串行通讯的基本原理。 2、掌握串行接口芯片8251的工作原理和编程方法。 二、实验原理和内容 1、 按图4-16-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 /82514、图示电路8251的控制口地址为2B9H,数据口地址为2B8H。 5、8254计数器的计数初值=时钟频率/(波特率波特率因子),这里的时钟频率接 1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。 6、收发采用查询方式。三、硬件接线图与软件程序流程图1、硬件接线图图16-12、软件程序流程图四、源程序CODESEGMENTASSUME CS:CODEBEGIN:MOV DX,283HMOV AL,16HOUT DX,ALMOV DX,280HMOV AL,52OUT DX,ALMOV DX,2B9HMOV AL,40HOUT DX,ALNOPMOV AL,0EHOUT DX,ALMOV AL,37HOUT DX,ALGOON:MOV DX,2B9HIN AL,DXTEST AL,01HJZ GOONMOV AH,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CACEM 31.6-2023高速公路经营管理第6部分:车辆救援服务要求
- 新生儿黄疸健康教育
- 腰椎间盘突出术后的护理
- 髓母细胞瘤术后的护理
- 社区开展健康教育知识讲座
- 车工工艺与技能课件:加工螺纹
- 正常临产期产妇护理
- 2025年乡村文化旅游与乡村旅游产业投资机会分析与评估研究报告
- 2025年工业互联网数据加密技术效能评估与行业应用前景研究报告
- 2025年数字文化产业商业模式创新与虚拟现实教育平台研究报告
- 2024年中国智慧港口行业市场全景评估及未来投资趋势预测报告(智研咨询)
- 围产期奶牛的饲养管理(内训)
- 部编版小学一至六年级词语表汇总
- 音视频系统培训资料-(内部)
- 常州市北郊初级中学英语新初一分班试卷含答案
- 隧道截水沟施工
- 锚杆施工方案
- 专业方向证明
- 十万个为什么问题大全及答案
- 骨痿临床路径及表单
- 六年级下册美术(岭南版)期末测试题
评论
0/150
提交评论