北邮微机原理硬件实验报告_第1页
北邮微机原理硬件实验报告_第2页
北邮微机原理硬件实验报告_第3页
北邮微机原理硬件实验报告_第4页
北邮微机原理硬件实验报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档北京邮电大学微机原理与接口技术硬件实验报告学院:信息与通信工程学院班级:学号:班内序号:姓名:实验一 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 , 2A0HOU

2、T DX , AL (或 IN AL , DX)Y4输出一个负脉冲,执行下面两条指令MOV DX , 2A8HOUT DX , AL (或 IN AL , DX)Y5输出一个负脉冲。I A 741 SUHU10 12AS A7 -M A9 *',心网口74Li74513 , LOL 图1-1利用这个负脉冲控制L7闪烁发光2 、接线:Y5/IOD/DQ/DY4/IO 地址地址 触发器 触发器接接接接(亮、灭、亮、灭、CLK/D触发器 CD/D触发器SD/D角发器L7),时间间隔通过软件延时实现。接 +5V(LED灯)或逻辑笔、硬件接线图和软件程序流程图1、硬件连线图如图1-1 ;2、软件

3、程序流程图精品文档9欢迎下载图1-2 四、源程序 DATA1 EQU 2A0H DATA2 EQU 2A8H CODE SEGMENTASSUME CS:CODE BEGIN:MOV DX,DATA1 OUT DX,AL CALL DELAY MOV DX,DATA2 OUT DX,AL CALL DELAYMOV AH,1 INT 16H JE BEGIN MOV AX,4C00H INT 21H DELAY PROC NEARMOV CX,0FFFFH LP1: MOV BX,200 LP2:DEC BX JNZ LP2 LOOP LP1 RET DELAY ENDP CODE ENDS

4、END BEGIN 五、实验结果运行程序后可以看到 六、实验总结;定义数据变量代表地址 2A0H;定义数据变量代表地址 2A8H;向地址DATA1输出信号;调用延时子程序;检测是否有键盘输入;如果没有输入,则循环;返回DOS;延时子程序LED灯亮灭交替,改变延时时间,灭的持续时间增加。由于这个实验是第一次接触,虽然比较简单,但是还是出现了很多的问题。刚开始忘记写延时子程序,后来发现后加上,发现LED灯还是一直亮,到最后才发现原来是延时的时间 太短,所以延时采用了两层循环以增加延时长度。七、实验收获与心得体会通过这个实验,首先让我对汇编程序的要素有了更加清晰的认识,就是汇编程序便需要有代码段;其

5、次,当汇编程序出现问题时,掌握了一定的解决方法。实验二 简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。二、实验原理和内容1、按下面图4-2-1简单并行输出接口电路图连接线路 (74LS273插通用插座,74LS32 用实验台上的“或门” )。74LS273为八D触发器,8个D输入端分别接数据总线 D D7, 8 个Q输出端接LED显示电路L0L7。2、编程从键盘输入一个字符或数字,将其ASCH码通过这个输出接口输出,根据 8个发光二极管发光情况验证正确性。3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS

6、244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0K7, 8个数据输出端分别接数据总线D0D7。4、用逻辑电平开关预置某个字母的ASCH码,编程输入这个 ASCH码,并将其对应字母在屏幕上显示出来。5、接线:1)输出 按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)2)输入 按图4-2-2接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)三、硬件接线图和软件程序流程图1、硬件接线图C LR2A8H- 4 i roU01234567DDDDDDDDoo> K 12345678L DDDDDDDDC12345678QQQQQQQQ 0=0Z,UH-

7、LLLLLLLLWsi * * ,0123456774LS图2-12、软件程序流程图Lxlzf( 结束 四、源代码图2-2CODE SEGMENTASSUME CS:CODEBEGIN:XOR AX,AXMOV AH,1INT 21HCMP AL,1BHJZ EDMOV DX,2A8HOUT DX,ALLOOP BEGINED: MOV AX,4C00HINT 21HCODE ENDSEND BEGIN五、实验结果连接好电路后,运行程序,然后用键盘输入任意一个字母或者数字,然后发现LED灯的亮灭情况正好表示了所输入字符的ASC码。六、实验总结此次实验代码比较简单,看好输出端基本上就不会有什么大

8、的代码问题,这个实验关键的一点我觉得是连接电路,由于实验所需电路要连接的线比较多,所以在连接线的时候一定要认真仔细,一旦连错很难检查出来,那样的话就只能重新连接了。七、实验收获与心得体会这个实验主演还是让我们进一步接触这种软硬结合的方式, 以便不断地了解熟悉它,通 过这次实验,除实验本身外,由于要检测键盘的输入, 我还对理论课上讲的中断号 01H有了 更加深刻的印象。实验三可编程并行接口8255一、实验目的1、通过实验,掌握 8255工作于方式0以及设置A 口为输出口, C 口为输入口的方法。 二、实验原理及内容1 . 8255的工作方式一片8255内部有3个端口,A 口可以工作在方式 0、方

9、式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口置位

10、/复位控制字。D7 D6 D5 D4 D3 D2 DI DO。心方式06-方式11*方式2AD1:崎入口:第出C|_l悬四位L:入0:出Q方式。b方式1B 口1:入0:出C 口低四位L:入0:出Jyd/标志位A组E组3 . C口置/复位控制字8255的C 口可进行位操作,即:可对 8255c 口的每一位进行置位或清零操作,该操作 是通过设置C 口置/复位字实现的(图 8-10)。C口置/复位字共8位,各位含义如下:D? ED5D4 D3D2D1DO0标志位XXX000 : PCO001 : PCI111 :PC71:置位0:复位4 . 8255A的控制信号与传输动作的对应关系AIA0/RD/W

11、R/CS工作状态00010A口数据f数据总线000R口数据f数据总统10010CU数据f数据总线00100数据总线r A 口数据01100数据总线一 B 口数据10100数据总纹一CLJ数据111。0数据总统一控制寄存器XXXX1数据总线一三态11010非法状态XX110数据总统一三态5 .命令字与初始化编程8255有两个命令字,即方式选择控制字和 C 口置0/置1控制字,初始化编程的步骤是: 向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。 当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。 这一操作的主要目的是使相应端口的中断允许触发器置0,从而

12、禁止中断,或者使相应端口的中断允许触发器置 1,从而允许端口提出中断请求。注意:“C 口置0/置1控制字”虽然是对 C 口进行操作,但是该控制字是命令字,所以 要写入控制寄存器,而不是写入C口控制寄存器。向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据”实验内容:1)、实验电路如图 4-3-1 , 8255c 口接逻辑电平开关 K0K7, A 口接LED显示电路L0- L7。2)、编程从8255c 口输入数据,再从 A 口输出。3)、接线:PC7PC0/8255 接 K7K0/ 逻辑电平开关 PA7PA0/8255接 L7L0/LED 显示CS/8255接 Y1/IO 地址三、

13、硬件连线图和软件程序流程图1、硬件连线图U18 8255L0L1L2L3L415L6L7图3-1KO ,PCOPAOKIPCIPAIK2一PC2PA2K3TPC3PA3K4一PC4PA4K5 PC 5 PA5K6PC6PA6K7 PC7 PA7288H-CS2、软件程序流程图精品文档四、源程序CODE SEGMENTASSUME CS:CODEBEGIN:MOV DX,28BHMOV AL,10001001BOUT DX,ALMOV DX,28AHIN AL,DXMOV DX,288HOUT DX,ALINT 21HMOV AX,4C00HCODE ENDSEND BEGIN五、实验结果连接好

14、电路,运行程序后,可以发现根据开关闭合的不同,LED灯亮灭的情况也随之而改变,实现了实验中的要求。六、实验总结由于此实验比较简单, 实验过程中没有出现什么大的问题。 只是一开始的时候发现在我运行完后,发现改变开关的闭合情况,LED灯的亮灭情况不变,后来发现每次程序运行时只读取一次数据,而在程序运行的过程中并不读取数据,所以就出现了那样的情况。七、实验收获与心得体会通过这次试验, 让我对 8255 这个元器件有了一定的认识, 进一步熟悉了汇编语言编程,为将来更加困难的实验做了准备。实验四 七段数码管一、实验目的掌握数码管显示数字的原理二、实验原理和内容1、静态显示:按4-4-1连接好电路,将82

15、55的A 口 PA0PA7分别与七段数码管的段 码驱动输入端 adp相连,位码驱动输入端S0、S1、S2、S3接PCQ PC1、PC2 PC3编程在数码管显示自己的学号的后四位。 (或编程在数码管上循环显示“ 00-99 ”, 位码驱动输入端 S0、S1接PCQ PC1; S2、S3接地。)2、接线:PA7PA0/8255 接 dpa/LED 数码管PC3PC0/8255接 S3S0/LED 数码管CS/8255接 Y1/IO 地址三、硬件连接图和软件程序流程图1、硬件连接图11 欢迎下载 。精品文档#欢迎下载s s ST288H-28FHY1图4-12、软件程序流程图精品文档曾澳按按下吗?C

16、遍茴DOS )图4-2四、源代码DATA SEGMENTDATA0 EQU 3FHDATA3 EQU 4FHDATA4 EQU 66HDATA6 EQU 7DHDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100 dupSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK15欢迎下载START PROC FARMOV AX, DATAMOV DS, AXMOV AL,80HMOV DX,28BHOUT DX,ALLOOP1:MOV DX,28AHMOV AL,08HOUT DX,ALMOV D

17、X,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,AL CALL DELAYMOV DX,28AHMOV AL,01HOUT DX,ALMOV DX,288HMOV AL,DATA6OUT DX,ALCALL DELAYMOV AH,1INT 16HJZ LOOP1RETSTART ENDPDELAY PROC

18、 NEARMOV CX,00FFH LP1: MOV BX,200 LP2:DEC BXJNZ LP2LOOP LP1RETDELAY ENDPCODE ENDS END START 五、实验结果连接好电路图,然后运行程序,在数码管上显示我的学号0346四个数字。六、实验总结最开始的时候实验确实出现了一些问题,跟我想的不一样。由于实验要求是在 4个数码管上同时显示四个数字,所以刚开始我认为如果要延时程序,延时时间应该很短,因此我认为不用延时程序,而结果没有延时程序出不来结果,显示一群乱码。之后我加上延时程序后,数码管显示就变得正常了。这个程序的关键应该就是控制字的确定,然后数码管方面一定要有一

19、组选通信号。七、实验收获与心得体会这个实验告诉我在做这类实验时千万不要想当然,一定要按照实际的要求一步一步来,不要想着“偷工减料”图省事,关键是要踏实。其次是通过这个实验让我对8255这个芯片有了更加深刻的认识,对于控制字的理解更加深刻。实验八可编程定时器/计数器(8253/8254 )一、实验目的:学习掌握8253用作定时器的编程原理;二、实验原理和内容8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。8254是8253 的改进型。1. 8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是:向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 向使用

20、的计数器端口写入计数初值。2 . 8253控制字D7 D6 D5 M DS D3 DI DO计数器选择读写方式跣杼工作方式选择数制选择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位, D3D2Dh000:选择方式 0, D3D2DhX10:选择方式 2, D3D2Dh100:选择方式4, D0= 0:计数初值为二进制,3、接线

21、:CS /8253GATE0 /8253CLK0 /8253OUT0 /8253后读/写高8位计数值D3D2D4 001 :选择方式1D3D2D4X11:选择方式 3D3D2D4 101:选择方式 5D0= 1:计数初值为BC加数接 Y0 /IO 地址接 +5V接 1M 时钟接喇叭或蜂鸣器GAiro-T 1M时钟丁4、完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。 音符频率对照音符1 (da)-1W g )4 (fe)5 (so)6 (l a)7 (si) |i (do)频率 (Ik)256288320341384426 .6480512三、硬件接线图和软件程序连接图1、

22、硬件接线图一喇叭或蜂鸣器2、软件程序连接图(start)YFS四、源程序DATA SEGMENTBUF1 DB 06H 5BH 4FH 66H 6DH 7DH 07H 7FHBUF2 DW 3906,3472,3125,2933,2604,2344,2083,1953DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODEBEGIN:MOV CX,08HLEA SI,BUF1MOV BX,OFFSET BUF2MOV DX,283HMOV AL,37HOUT DX,ALMOV DX,28BH17欢迎下载精品文档MOV AL,80HOUT DX,ALL1: MOV

23、DX,280HMOV AX,BXOUT DX,ALMOV AL,AHOUT DX,ALMOV DX,28AHMOV AL,01HOUT DX,ALMOV DX,288HMOV AL,SIOUT DX,AL CALL DELAYINC SIINC BXINC BXLOOP L1MOV AH,1INT 16H JE BEGINMOV AX,4C00HINT 21HDELAY PROC NEARPUSH CXPUSH BXMOV CX,0FFFFHLP1:MOV BX,100LP2:DEC BXJNZ LP2LOOP LP1POP BXPOP CXRETDELAY ENDPCODE ENDSEND

24、BEGIN五、实验结果连接好电路后,运行程序,然后会听见蜂鸣器按照 do/re/mi/fa/so/la/si/do 依次响,当有键盘输入时,声音中止。六、实验总结这个实验思路比较简单, 所以在写好代码后就基本上没有什么问题, 只是个人觉得我写的原来的代码有点冗杂(原来是每一个音符都单独写一段汇编程序) ,其实有很多都可以用一个循环实现的, 并且后来我也做了很多的尝试, 但是多次的尝试都失败了, 失败基本上都是由于寄存器不够用了。 后来突然想到了理论课上讲的推入堆栈保护, 一下子恍然大悟, 这就是现在代码的由来,个人觉得这个实验我还是下了一番苦心的。七、实验收获与心得体会这个实验毋庸置疑地让我学

25、会了很多东西, 更加熟悉了汇编程序, 之前老师上课讲的什么推入堆栈保护, 当时根本不理解, 不知道为什么要这样做, 这次实验让我彻底明白了这样做的意义: 就是有时候要多次用到一个寄存器时一定要先推入堆栈保护, 这样的话就不会影响在别的地方用相同的寄存器了。此外,又学习了一种元器件,即 8253 计数器,对于微机的原理有了更加上课的理解。实验十六 串行通讯 8251、实验目的1 、了解串行通讯的基本原理。2、掌握串行接口芯片 8251 的工作原理和编程方法。、实验原理和内容1、 按图 4-16-1 连接好电路,(8251 插通用插座)其中 8254 计数器用于产生8251 的发送和接收时钟,TX

26、D和RXD!在一起。RX熊收2、 编程 : 从键盘输入一个字符, 将其 ASCII 码加 1 后发送出去, 再接收回来在屏幕上显示,(或将内存制定区域内存放的一批数据通过8251A的TXD发送出去,然后从回来,并在屏幕上或数码管上显示出来。 )实现自发自收。3、接线:CLK0 /8254接1M 时钟GATE0 /8254接+5V0UT0 /8254接TX/RXCLK /8251CS /8254接Y0 /IO 地址CS /8251接Y7 /IO 地址RXD /8251接TXD /82514、图示电路8251的控制口地址为 2B9H,数据口地址为2B8H5、8254计数器的计数初值二时钟频率/(波

27、特率X波特率因子),这里的时钟频率接 1MHZ波特率若选1200,波特率因子若选 16,则计数器初值为 52。6、收发采用查询方式。三、硬件接线图与软件程序流程图1、硬件接线图19 欢迎下载。精品文档21欢迎下载QUT0GATE©CLK04里口就1 2s T EID 5 01234S67 DR / E 口 PDBDDDD -C-RUCR>nuxdTxD(J53253CS2B0h-287hTkRDYRkRDV图 16-12、软件程序流程图开始|初始化K2E3初蛤化-显示提示I> I .| M8Z51拴即 BUfc蠡字|'为 1 呜? A¥从,<r 巫 E 即 uJ W独圈之蚂?)N二而犍人字卷-C也通过E2E1收据* 口发送字符 从【控制端口需人状态字VjhDY为1吗?¥从学25】就北f灯擦收数嫩将卞疔显示花屏总四、源程序CODE SEGMENT精品文档ASSUME 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

温馨提示

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

评论

0/150

提交评论