Protues8255实验报告

  • 格式:doc
  • 大小:812.50 KB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华北电力大学

实验报告|

|

实验名称8255应用实验

课程名称微机原理及应用

老师

| 专业班级

姓名

学号

一.实验要求

1、当K0为高电平时,LED由高到低循环亮灭;当K0为低电平时,LED由低到高循环亮灭;当K1为高电平时,LED全灭且程序结束

(扩展:当K1为高电平时,LED全灭但程序不结束,等K1再次为低电平时灯又开始循环)。

2、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,……第8次中断,LED7亮,中断8次后结束。

3、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使7段数码管亮,第1次中断,显示0,第2次中断,显示1,…… 第10次中断,显示9,程序结束。

【8255的片选地址为8000H,8259的片选地址为9000H,8253的片选地址为A000H】

二思路

1.硬件

(1)74HC138译码电路如图所示,A15为1,E2、E3接地保证74HC138正常工作,此时Y0、Y1、Y2对应地址分别为8000H、9000H、0A000H. 此芯片实验1.2.3都需用到

(2)8259的片选地址为9000H,所以CS接Y1

8086有16位数据总线,其低8位作为偶存储体来传输数据,8086的A0要一直为0,所以8259的A0要接8086的A1

IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz),所以8259的IR2端与8253的OUT1端相连。

此芯片实验2,3要用到

(3)8253的片选地址为A000H,所以CS接Y2。

CLK0接入1MHz信号,GATE0与GATE1同时接电源,OUT0输入到CLK1,OUT1经分频输出1HZ的信号。

此芯片实验2,3要用到

(4)对于实验1,8255的连接如下图

8255的片选地址为8000H,所以CS接Y0。

端口A中的两个端口接开关,作为输入(开关弹起时为高电平,按下时为低电平);端口B中的全部端口作为输出显示。

(5)对于实验2,8255的连接如下图

端口A中的全部端口作为输出显示

(6)对于实验3,8255的连接如下图

端口A中的全部端口连接一二级数码管,且该数码管为共阴极连接。

二.软件

(1)实验1流程图

(2)实验2,3流程图

(3)8255初始化(实验1.2.3都需要)

方式选择控制字,对于实验1:A口方式0输入,B口方式0输出(10010000B=90H)

对于实验2,3:A口方式0输出 (10000000B=80H) 程序如下:

实验1:

MOV DX,8006H ;控制器地址为8006H

MOV AL,90H ;A口方式0输入,B口方式0输出

(10010000B=90H)

OUT DX,AL

实验2,3:

MOV DX,8006H ;控制器地址为8006H

MOV AL,80H ;A口方式0输出(10000000B=80H)

OUT DX,AL

(4)8253及8259的初始化(实验2,3需要)

关于8253及8259的设置与前面的两个实验均相同,其程序如下所示;8253A初始化

MOV DX,0A006H ;控制器地址0A006H

MOV AL,37H ;计数器0选用工作方式3(方波) OUT DX,AL ;写计数器0工作方式

MOV DX,0A000H ;计数器0地址0A000H

MOV AL,00H ;计数器0预置值为1000H

OUT DX,AL

MOV AL,10H

OUT DX,AL

MOV DX,0A006H ;控制器地址0A006H

MOV AL,75H ;计数器1选用工作方式2(分频) OUT DX,AL ;写计数器1工作方式

MOV DX,0A002H ;计数器1地址0A002H

MOV AL,00H ;计数器1预置值1000H

OUT DX,AL

MOV AL,10H

OUT DX,AL

;8259A初始化

MOV DX,9000H ;ICW1=13H(0001 0011B) MOV AL,13H

OUT DX,AL

MOV DX,9002H ;ICW2=80H(1000 0000B) MOV AL,80H

OUT DX,AL

MOV DX,9002H ;ICW3=01H(0000 0001B) MOV AL,01H

OUT DX,AL

(5)关于实验1的设置

读A口信息,判断K0K1

若K1=1,则灯全灭

若K0K1=00,则灯由低到高循环亮灭

若K0K1=10,则灯由高到低循环亮灭

其中还需要两个延时子程序

程序如下

MOV BL,01H

MOV DX,8000H ;A口地址为8000H

IN AL,DX ;读A口中的数据

AND AL,03H ;AL=AL&00000011B

CMP AL,02H

JAE MIE ;K1=1转到MIE

CMP AL,01H

JE NEXT1 ;K1K0=01B转HL,K1K0=00B做LH

NEXT1:MOV DX,8002H ;B口地址为8002H

MOV AL,BL

OUT DX,AL

CALL DELAY1

ROL BL,1

JMP NEXT1

NEXT2:MOV DX,8002H ;B口地址为8002H

MOV AL,BL

OUT DX,AL

CALL DELAY2

ROR BL,1

JMP NEXT2