微机接口技术报告
实验四 8255A并行接口实验
一、 实验目的
1、 学会通过PC总线、驱动器、译码器等在PC机外部扩充新
的芯片。
2、 了解8255A并行口的工作原理。 3、 掌握8255A初始化的程序设计方法。
4、 掌握8255A方式0的基本输入/输出和方式1的选通型输入
/输出方式的使用方法。
二、 实验内容
1、使8255A工作于工作方式0,将由C口读入的开关状态从A口输出到LED上显示出来。断开电源,按虚线连接电路,按图2-1将8255A接入系统。具体包括:将8255A的CS接I/O地址输出端288H~28FH,C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2、使8255A工作于方式1,将由A口读入的状态从B口输出到LED上显示出来。断开电源,按图2-2将8255A接入系统。具体包括:
1
将8255A的CS接I/O地址输出端288H~28FH,A口接逻辑电平开关K0~K5,B口接LED显示电路L0~L5,C口相应位分别接开关或LED发光二极管。
三、 程序流程图
实验一:8255A工作于方式0,将C口定义为输入方式,A口定义为输出方式。程序流程图如图所示。
实验二:每个判断命令前都加入一个按键返回判断。程序流程图如图
2
四、 程序代码
实验一程序: PPIA EQU 288H PPIB EQU 289H PPIC EQU 28AH PPICTL EQU 28BH DATA SEGMENT
MESS1 DB '8255A IN MODE 0!',0DH,0AH,'$'
MESS2 DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
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 DX,PPICTL ;8255A初始化 MOV AL,89H
3
OUT DX,AL COUNT:
MOV DX,PPIC
IN AL,DX ;C口读入
MOV DX,PPIA
OUT DX,AL ;A口输出 MOV AH,06H MOV DL,0FFH INT 21H
JZ COUNT ;若有键按下则退出 MOV AX,4C00H INT 21H CODE ENDS END START
实验二程序: PPIA EQU 288H PPIB EQU 289H PPIC EQU 28AH PPICTL EQU 28BH DATA SEGMENT
MESS1 DB '8255A IN MODE 0!',0DH,0AH,'$'
MESS2 DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
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 DX,PPICTL ;8255A初始化 MOV AL,0B4H OUT DX,AL COUNT:
MOV DX,PPIC IN AL,DX AND AL,20H CMP AL,20H
JNZ COUNT
4
MOV DX,PPIA IN AL,DX
PUSH AX ABC: MOV DX,PPIC IN AL,DX AND AL,02H CMP AL,02H
JNZ ABC POP AX
MOV DX,PPIB OUT DX,AL
MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS END START
五、 实验过程及结果
5
六、实验思考题
6
1、答:A口及B口以方式1工作时,只要不是作为联络线的C口其他位,都可以由程序按位设定为基本的输入输出线,用于传输数据。 当A口工作于方式2时,若B口工作于方式1,则C口不可用于数据传输;若B口工作于方式0,则C口的PC0-2也可以由程序按位设定为基本的输入输出线,用于传输数据。
2、答:将需点亮的LED灯所接的端口输出高电平,可点亮相应的LED灯。若LED为共阳极接法,将需点亮的LED灯所接的端口输出低电平,可点亮相应的LED灯。
实验五 8253计数器/定时器接口实验
一、 实验目的
1、 学会通过PC总线、驱动器、译码器等在PC机外部扩充为新的芯片; 2、 了解8253计数器/定时器的工作原理; 3、 掌握8253初始化的程序设计;
4、 掌握8253方式0的计数方式的使用方法和方式3方波产生的方法。
二、 实验内容
将实验装置上的1片8253定时器/计数器接入系统,具体做两个内容的实验。 1、实验一:将8253的计数器0设置为工作于方式0,设定一个计数初值,用手动逐个输入单脉冲,观察OUT0的电平变化。硬件连接:断开电源,按图将8253接入系统。
2、 实验二:将8253的计数器0、1均设置为工作于方式3(方波),按图2-2重新接线。要求是当CLK0接1MHz时,OUT1输出1Hz的方波,OUT的输出由LED显示出来。将计数器0与计数器1串联使用,计数器0的输出脉冲OUT0作为计数器1的时钟输入CLK1。
7
三、程序流程图 8253实验一的流程图。
8
8253实验二的流程图。 开始
初始化段寄存器 显示提示信息
设置定时器0,使其工作于方式3
向定向器0送初值1000
设置定时器1,使其工作于方式3
向定向器1送初值1000
NO 是否有键按下
YES 返回DOS
三、 实验程序
实验一程序:
CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT
MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DX,AX
MOV DX,OFFSET MESS MOV AH,09H INT 21H
MOV AL,00010000B
9
OUT CTRL,AL MOV AL,03H OUT TIME0,AL COUNT:
MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS END START
实验二程序代码:
CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT
MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DX,AX
MOV DX,OFFSET MESS MOV AH,09H INT 21H MOV DX,CTRL
MOV AL,36H OUT DX,AL
MOV AL,76H OUT DX,AL
MOV DX,TIME0 MOV AL,0FFH OUT DX,AL XCHG AH,AL OUT DX,AL
MOV DX,TIME1 MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL COUNT:
MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS
10
END START
四、 实验过程及结果
11
五、 实验思考题
1、实验一中的定时器0的输出OUT0的电平是如何变化的,为什么?
答:假设对定时器0赋初值为3,则控制字发送后,OUT0变为低电平,当手动输
12
入3个单脉冲后,OUT0变为高电平。因为当计数器工作于方式0时,计数开始时为低电平,当CE计数器减到0时,OUT输出高电平并保持不变。
2、 实验二中的计数器0、计数器1的计数初值是如何确定的。 将1M进行2次分频
3、 是否能用现有的实验装置通过使用8253的方式0和方式3实现一个延时10秒的高电平输出?即:8253某个计数器的输出在初始化完成后变为低电平,10秒后变为高电平,具体如何实现? 答:能。 程序代码为:
CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT
MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DX,AX
MOV DX,OFFSET MESS MOV AH,09H INT 21H MOV DX,CTRL
MOV AL,36H ;设置定时器0,使其工作于方式3 OUT DX,AL
MOV AL,70H ;设置定时器1,使其工作于方式0 OUT DX,AL
MOV DX,TIME0 ;向定时器0赋初值1000 MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL
MOV DX,TIME1 ;向定时器1赋初值10000 MOV AX,10000 OUT DX,AL XCHG AH,AL OUT DX,AL COUNT:
MOV AH,06H ;若有键按下,则退出 MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS END START
13
因篇幅问题不能全部显示,请点此查看更多更全内容