Protues8255实验报告Word版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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