西安交大微机原理第二次实验报告_第1页
西安交大微机原理第二次实验报告_第2页
西安交大微机原理第二次实验报告_第3页
西安交大微机原理第二次实验报告_第4页
西安交大微机原理第二次实验报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、微型计算机原理与接口技术第二次实验报告实验者姓名: 实验者学号: 所在班级: 报告完成日期:20 年 月 日实验四 8255A并行接口实验一、 实验目的1. 学会通过PC总线、驱动器、译码器等在PC机外部扩充新的芯片。2. 了解8255A并行口的工作原理。3. 掌握8255A初始化的程序设计方法。4. 掌握8255A方式0的基本输入/输出和方式1的选通型输入/输出方式的使用方法。二、 实验内容1. 实验一使8255A工作于方式0,将由C口读入的开关状态从A口输出到LED上显示出来。接线方式:断开电源,将8255A的CS接I/O地址输出端288H28FH,C口接逻辑电平开关K0K7,A口接LED

2、显示电路L0L7。2. 实验二使8255工作于方式1,将由A口读入的状态从B口输出到LED上显示出来。接线方式:断开电源,将8255A的CS接I/O地址输出端288H28FH,A口接逻辑电平开关K0K5,B口接LED显示电路L0L5,C口相应位分别接开关或LED发光二极管。三、 程序及框图1. 实验一:8255A工作于方式0程序代码PPIA EQU 288HPPIB EQU 289HPPIC EQU 28AHPPICTL EQU 28BHDATA SEGMENTMESS1 DB '8255A IN MODE 0!',0DH,0AH,'$'MESS2 DB 

3、9;ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS1 ;数据段段寄存器结构 MOV AH,09H INT 21H ;显示提示信息1 MOV DX,OFFSET MESS2 MOV AH,09H INT 21H ;显示提示信息2 MOV AL,10001001B MOV DX,PPICTL OUT DX,ALCOUNT: MOV DX,PPIC ;8255A

4、的C口读入数据 IN AL,DX MOV DX,PPIA ;将数据送至8255A的A口输出 OUT DX,AL MOV AH,06H ;若有键按下,则退出 MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21HCODE ENDSEND START实验框图2. 实验二:8255A工作于方式1程序代码PPIA EQU 288HPPIB EQU 289HPPIC EQU 28AHPPICTL EQU 28BHDATA SEGMENTMESS1 DB '8255A IN MODE 0!',0DH,0AH,'$'MESS2 DB

5、 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS1 MOV AH,09H INT 21H MOV DX,OFFSET MESS2 MOV AH,09H INT 21H MOV AL,10111101B MOV DX,PPICTL OUT DX,AL COUNT: MOV DX,PPIC ;从C口读入IBF(PC5)状态信号 IN AL,DX AN

6、D AL,00100000B ;取PC5位来看 JZ COUNT ;IBF=0,YES则跳COUNT MOV DX,PPIA ;从A口读入数据 IN AL,DX PUSH AXRDC: MOV DX,PPIC ;从C口读入OBF(PC1)状态信号 IN AL,DX AND AL,0000010B ;取PC1位来看 JZ RDC ;IBF=0,YES则跳COUNT POP AX MOV DX,PPIB ;向B口输出数据 OUT DX,AL MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21HCODE ENDSEND START实

7、验框图四、 实验结果及分析1.实验一:8255A工作于模式0按照连线要求,在TPC-ZK实验板上连好线。将程序在HQFC环境下编译、链接成功后开始运行。初始时开关K0K7均置低,对应的LED全部熄灭,即全为低电平。进一步调试发现,开关K0K7 与LED灯L0L7呈现一一对应关系,即任意Ki置高时,对应的Li立即点亮。说明从C口读入的开关状态通过A口输出,在LED上立即显示出来。2.实验二:8255A工作于模式1重新连线,将程序在HQFC环境下编译、链接并运行。改变K7、K6状态,测试结果如下:K7K6L7L6L5L00011随K5K0变化0110不随K5K0变化1001不随K5K0变化1100

8、不随K5K0变化其中,K7(PC4)、K6(PC2)分别对应选通输入信号与接受响应信号,L7(PC5)、L6(PC1)分别对应输入缓冲器满信号与输出缓冲器满信号。分析如下:1) 在K7、K6均置低电平时,、为高电平,表示输入缓冲区满,输出缓冲区空,数据从A口输入通过B口输出,L5L0会随K5K0的输入改变即时改变;2) 在K7置低电平、K6置高电平时,接受响应信号无效,为低电平,表示输出缓冲区满,程序处于读取状态信号的循环中,新输入的数据无法从B口输出,导致L5L0不随K5K0变化;3) 在K7置高电平、K6置低电平时,选通输入信号无效,为低电平,表示输入缓冲区空,程序处于读取状态信号的循环中

9、,上一时刻输入的数据被锁存,新数据无法输入,导致L5L0不随K5K0变化;4) 在K7置高电平、K6置高电平时,选通输入信号无效,接受响应信号无效,输入缓冲区空,输出缓冲区满,与3)中相同,新数据无法输入,导致L5L0不随K5K0变化。五、 思考题1. 当8255A工作于方式0时,端口C可用于数据传送。但当工作于方式1或方式2时,端口C是否还可用于数据传送?答:端口C在工作于方式1或方式2时,C口的某些位会被作为控制和状态信号进行使用,这些引脚不能用于数据传送,而其余的引脚仍可用于数据传送。2. 本实验箱中的LED为共阴极接法,输出电平与LED点亮关系如何确定?若LED为共阳极接法,输出电平与

10、LED点亮关系又该如何确定?答:若LED为共阴极接法,输出低电平,LED熄灭;输出高电平,LED点亮。若LED为共阳极接法,输出高电平,LED熄灭;输出低电平,LED点亮。六、 心得体会本次实验进行了8255A并行接口的两个实验,分别在8255A的方式0与方式1下进行实验。方式的选择与端口的配置都通过工作方式控制字的输出来进行选择。其中,方式0是基本的输入/输出工作方式,实现了CPU与外设接口的无条件数据传送。而工作方式1是选通输入/输出方式,CPU与外设通过输入口的握手联络线与输出口的联络信号进行交互。输入时,外设通过选通输入信号将输入数据选通至8255A的输入口,而CPU通过输入缓冲器满信

11、号判断是否读新的数据。输出时,外设通过接受响应信号通知CPU数据已经取走,而CPU通过输出缓冲器满信号判断是否输出新的数据。这样的应答模式设计,实现了低速外设与高速CPU的匹配,使用起来更科学也更灵活。实验五 8253计数器/定时器接口实验一、 实验目的1. 学会通过PC总线、驱动器、译码器等在PC机外部扩充新的芯片。2. 了解8253计数器/定时器的工作原理。3. 掌握8253初始化的程序设计方法。4. 掌握8253方式0的计数方式的使用方法和方式3方波产生的方法。二、 实验内容1. 实验一将8253的计时器0设置为工作于方式0,设定一个计数初值,用手动逐个输入单脉冲,观察OUT0的电平变化

12、。硬件连接:断开电源,按下图将8253接入系统:1) 将8253的CS接I/O地址输出端280H287H;2) 将8253的计数器0的CLK0与单脉冲信号相连,以用来对单脉冲进行计数;3) 将8253的GATE0接向+5V,以允许计数器0工作;将8253的OUT0街道LED发光二极管,以显示8253计数器0的输出OUT0的状态。2. 实验二将8253的计数器0、1均设置为工作方式3(方波)。要求是当CLK0接1MHz时,OUT1输出1Hz的方波,OUT1的输出由LED显示出来。将计数器0与计数器1串连使用,计数器0的输出脉冲OUT0作为计数器1的时钟输入CLK1。 硬件连接:断开电源,按下图将

13、8253接入系统。 三、 程序代码及实验框图1. 实验一:8253计数器工作于方式0程序代码CTRL EQU 283HTIME0 EQU 280HTIME1 EQU 281HDATA SEGMENTMESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESS ;显示提示信息MOV AH,09HINT 21HMOV AL,00010000BMOV DX,

14、CTRLOUT DX,AL ;计时器0设置工作方式0,十进制计数MOV AL,03H ;计数器0赋初值3MOV DX,TIME0OUT DX,AL COUNT: MOV AH,06HMOV DL,0FFHINT 21HJZ COUNT ;若有键按下,则退出MOV AX,4C00HINT 21HCODE ENDSEND START实验框图2.实验二:8253计数器工作于方式3程序代码CTRL EQU 283HTIME0 EQU 280HTIME1 EQU 281HDATA SEGMENTMESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,

15、'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09H ;显示提示信息INT 21HMOV AL,00111110BMOV DX,CTRLOUT DX,AL;定时器0设置工作方式3MOV AX,1000MOV DX,TIME0OUT DX,ALXCHG AH,ALOUT DX,AL;计时器0送初值MOV AL,01111110BMOV DX,CTRLOUT DX,AL;定时器1设置工作方式3MOV AX,1000MOV DX,TIME

16、1OUT DX,ALXCHG AH,ALOUT DX,AL;计时器1送初值 COUNT:MOV AH,06H MOV DL,0FFHINT 21HJZ COUNT ;若有键按下,则退出MOV AX,4C00HINT 21HCODE ENDSEND START实验框图四、 实验结果及分析1. 实验一:8253计数器工作于方式0实验现象通过TPC-ZK实验板上的按键输入四个单脉冲后,LED灯点亮。分析定时器0处于工作方式0,初值置为3。如下图所示,手动输入第一个单脉冲时,计数器在脉冲下降沿置初值。继续输入三个单脉冲后,计数器每次在脉冲下降沿做-1计数,最终输出OUT变为高电平,LED灯随即被点亮。

17、2. 实验二:8253计数器工作于方式3实验现象LED灯不断闪烁,闪烁频率接近1Hz,占空比接近50%。分析定时器0与定时器1处于工作方式3,即方波发生器。定时器0的时钟CLK0输入实验板上的1MHz的信号,定时器0被赋初值1000,输出为对输入信号1000分频后的方波信号,即1kHz;定时器0的输出作为定时器1的时钟CLK1,定时器1对该1kHz信号再次进行1000分频,最终得到1Hz信号输出到LED显示。五、 实验中遇到的问题及解决方法在进行程序设计的过程中,一开始不太理解8254控制字的第4位和第5位,赋初值时出现问题,后来才理解:只写低八位或只写高八位时初值的其余八位自动赋0,而先低后

18、高则是先送入低八位后送入高八位,这主要由计数器一次只能接8位引起。给两个计数器赋初值时,应按照“赋控制字、赋初值”的顺序来,否则会出错。六、 思考题1. 实验一中定时器0的输出OUT0的电平是如何变化的,为什么?答:当控制字与计数初值送至定时器0后,定时器开始工作,输出OUT0为低电平。每接受一个脉冲下降沿,计数值减1,当计数值为0时输出OUT0变为高电平。过程如下图所示。2. 实验二中计数器0、计数器1的计数初值是如何确定的?答:工作方式3的计数初值即是对计数器时钟信号进行分频的倍数,为了将1MHz变为1Hz输出,需要用两个计数器对输入时钟信号进行1000000分频,用每个计数器分别完成1000分频即可,因此可以

温馨提示

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

评论

0/150

提交评论