六、实验步骤:
8255A的PA0~PA7接发光二极管L1~L8;PB0~PB7接开关K1~K8;片选信号8255CS接CS0。 七、程序框图:
系统初始化,设置8255的A口输出,B口输入。通过8255的B口将开关的状态读入CPU中通过8255的A口将读入的开关状态送给发光二极管显示延时10ms
八、参考程序:T7.ASM
NAME T7 ;8255A实验一
CSEG AT 0000H LJMP START CSEG AT 4100H PA EQU 0CFA0H PB EQU 0CFA1H PCTL EQU 0CFA3H
START: MOV DPTR,#PCTL ;置8255A控制字,A、B、C口均工作 ;方式0,A、C口为输出,B口为输入 MOV A,#82H MOVX @DPTR,A
LOOP: MOV DPTR,#PB ;从B口读入开关状态值 MOVX A,@DPTR
MOV DPTR,#PA ;从A口将状态值输出显示 MOVX @DPTR,A
MOV R7,#10H ;延时
单片机实验指导书 第36页
DEL0: MOV R6,#0FFH DEL1: DJNZ R6,DEL1 DJNZ R7,DEL0 JMP LOOP END
思考题:
修改连线,使PA口接开关,PB口接LED发光二极管;并修改程序,使开关在推上时,LED亮;使开关在拨下时,LED灭。
单片机实验指导书 第37页
实验8 8255A可编程并行接口实验二
——键盘实验 一、实验目的:
1. 掌握8255A编程原理。 2. 了解键盘电路的工作原理。 3. 掌握键盘接口电路的编程方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验原理:
1.识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
本实验例程采用的是行反转法。
行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。
2.程序设计时,要学会灵活地对8255A的各端口进行方式设置。
3.程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。 实验题目
利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。 四、实验步骤:
将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。
单片机实验指导书 第38页
五、实验电路:
单片机实验指导书 第39页
六、程序框图T8.ASM
单片机实验指导书 第40页