8255的应用举例.ppt

上传人:大张伟 文档编号:9289684 上传时间:2021-02-15 格式:PPT 页数:24 大小:1.06MB
返回 下载 相关 举报
8255的应用举例.ppt_第1页
第1页 / 共24页
8255的应用举例.ppt_第2页
第2页 / 共24页
8255的应用举例.ppt_第3页
第3页 / 共24页
8255的应用举例.ppt_第4页
第4页 / 共24页
8255的应用举例.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《8255的应用举例.ppt》由会员分享,可在线阅读,更多相关《8255的应用举例.ppt(24页珍藏版)》请在三一文库上搜索。

1、微型计算机原理与接口技术 第5版 第6章 I/O接口和并行接口芯片8255A,6.3 8255A的应用举例,举例说明8255A在开关电路、键盘及PC/XT机中的应用。 此外,8255A还可用于扬声器和CRT控制接口电路、A/D和D/A接口电路等许多场合。 由于选通方式比较复杂,这里仅介绍方式0的几个应用实例。,6.3.1 基本输入输出应用举例 6.3.2 键盘接口 6.3.3 8255A在PC/XT机中的应用* *供选用,6.3 8255A的应用举例,6.3.1 基本输入输出应用举例,在工业控制等实际应用场合,经常需要检测开关状态,并用LED等显示出来。在交通灯控制方面,也有类似的应用。 例1

2、 某检测系统中有8个开关K7K0,要求不断检测它们的通断状态,并显示在发光二极管LED7LED0上。开关断开,相应的LED点亮;开关合上,LED熄灭。试设计硬件电路,并编写有关的控制程序。,1)硬件电路设计 用8086 CPU、8255A和74LS138译码器等芯片及开关、显示器等构成如下硬件电路,来实现上述功能。,图6.21,A口输入,PA7PA0接8个开关K7K0,B口输出,PB7PB0接显示器LED7LED0。 8255A的 、 和RESET脚接CPU相应输出,D7D0与低8位数据线D7D0相连,8255A的4个口地址都应为偶地址,A0总为0,用A2A1来选择4个端口。 当A7A6A5=

3、111,A4A3A0=100时,译码器输出 选中8255A。 4个端口地址为F0H、F2H、F4H和F6H,对应于8255A的A口、B口、C口、控制口。,2)控制程序段设计 确定方式选择控制字 A口方式0输入,B口方式0输出,C口未用,相应位清0,控制字=10010000。 控字写入控制口F6H 将开关状态从PA引脚读入AL。若开关合上,AL中的相应位为0,断开则为1。 把AL中的内容从PB引脚输出 0-LED熄灭,表示相应的开关合上; 1-LED点亮,表示相应的开关断开。 不断循环,反复检测开关状态并显示 计算机速度很快,每次操作后要延迟一定时间。,程序: MOV DX,0F6H;控制字寄存

4、器 MOV AL,10010000B ;控制字 OUT DX,AL;写入控制字 TEST_IT: MOV DX,0F0H;指向A口 IN AL,DX;读入开关状态 MOV DX,0F2H;指向B口 OUT DX,AL;B口控制LED CALL DELAY_20S;调延时20s子程序 JMP TEST_IT;延时20s再检测 DELAY_20S:;延时20s子程序,例2 读开关并用七段LED显示器显示开关状态 A口接4个开关K3K0,PB的7位输出经74LS04反相驱动后,接到1个七段LED显示器上。 4个开关,共有16种状态,对应于16进制数字0F。,图6.22,8255A的A口工作于方式0,

5、输入;B口方式0,输出。 七段LED共阴极接法。PB0PB6接LED的ag段,当PBi=0时,经反相后使显示器正极为高电平,相应段点亮;PBi=1时,相应段熄灭。,图6.22,七段LED显示原理,如要显示数字0,g段应熄灭,其余段点亮,即向B口输出代码 0100 0000B=40H,最高位不用,清0(也可用作小数点); 如要显示数字1,则点亮b、c段,其余段熄灭,代码为0111 1001B=79H。 由此可求得0F的七段代码为:40H,79H,24H,30H,19H,12H,02H,78H,00H,18H,80H,03H,43H,21H,06H,0EH,其中字母B和D只能用小写字母b和d来表示

6、。 程序如下页。,DATA SEGMENT TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H DB 00H,18H,80H,03H,43H,21H,06H,0EH ;0F的七段代码编码 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MOV AL,90H; A口方式0输入, B口方式0输出 OUT 63H,AL;输出控制字 IN_PA: IN AL,60H;读A口 AND AL,0FH;取低4位 MOV BX,OFFSET TABLE;BX七段代码表首地址 XLAT;查表,AL(BX+AL) OUT 61H,AL;输出

7、到B口 CALL DELAY;调用延时程序 JMP IN_PA;继续读开关,显示 DELAY: ;延时 MOV AH,4CH INT 21H;返回DOS CODE ENDS,6.3.1 基本输入输出应用举例 6.3.2 键盘接口 6.3.3 8255A在PC/XT机中的应用,6.3.2 键盘接口,构成键盘的开关有机械式、薄膜式、电容式和霍尔效应式等,PC上的键盘多用机械式开关。 为减少输入线,开关被排列成行、列矩阵。 检测是否有键压下前,先要确定键是否都松开。 检测到有压键后,应消抖动(Debance),即延长20ms,再查看该键是否仍被压下。,键盘扫描: 1)是否所有键均松开?向每行输出0再

8、读列,应都为1; 2)是,查有键压下?向每行输出0后读得有列为0; 3)有键压下,延时消抖动; 4)根据输出0和读得0的位置,获得该键的代码。,4行4列键盘矩阵 PA30输出到4行线 4行线输入到PB74 4列线输入到PB30 键未压下的列=1 压键的行列会接通 若置压键行为0 则对应列也为0,图6.23,键的代码形成: 键0在3行3列,压下后从B口可读得D7=0和D3=0,其余位=1,故其编码为01110111B= 77H; 键6在2行1列,压下时D6=0、D1=0,其余位=1,故其编码为10111101B=BDH。 然后查表确定压下的键。 键扫描的程序见课本。,6.3.1 基本输入输出应用

9、举例 6.3.2 键盘接口 6.3.3 8255A在PC/XT机中的应用* *供选用,6.3.3 8255A在PC/XT机中的应用,PC/XT机中用8255A-5(功能与8255A同)为接口芯片,来读取键盘输入的扫描码和系统配置DIP开关的设置状态,同时还可以控制扬声器发声及奇偶校验电路的工作。,1. 8255A-5在PC/XT机中的连接,A,B,C口均为方式0 左侧为控制信号 口地址:A口-60H B口-61H C口-62H 控制口-63H 上电时A口输出,检测部件标志,正常为输入,读取键盘扫描码 B口输出控制信号 C口读取系统状态,图6.24,PB输出控制信号: PB0 输出扬声器发声控制

10、信号到8253的GATE2端,PB0=1,允许8253计数器2产生音调信号。 PB1 输出控制扬声器发声信号。PB1=1允许8253输出的音调信号加到扬声器驱动电路。 PB2 保留,可输出键盘检测数据 KBD DATA。 PB3 读入配置DIP开关状态。PB3=1封锁U41,开关高4位SW85读入PC30;PB3=0, U41选通,SW41读入PC30。开关合上时状态为0,断开为1。 PB4=0 允许系统板RAM奇偶校验电路工作。 PB5=0 允许I/O扩展板RAM奇偶校验电路工作。 PB6和PB7 输出到键盘接口电路。,PC读取系统状态: PC3 PC0 配置开关DIP的设置状态。 PC4

11、加到扬声器上的驱动信号SPK。 PC5 扬声器的音调信号状态T/C 2OUT,即从8253-5的OUT2输出的信号。 PC6 I/O通道奇偶校验结果I/O CHCK。若为1则产生NMI中断请求。只有PB5=0才允许送出I/O CHCK信号。 PC7 系统板奇偶校验结果PCK。若为1便产生NMI中断请求。只有PB4=0才允许发出PCK信号。,2. 端口编程,加电时系统处于自检方式,8255A-5的3个端口均置为方式0,A口和B口输出,C口输入,方式选择字应置成10001001B,即 MOV AL, 10001001B OUT 63H,AL 正常工作时,再置A口为输入,B口和C口同上,方式选择字应

12、为10011001B,即 MOV AL,10011001B OUT 63H,AL,对B口编程可实现不同的控制功能 例如,禁止系统板和I/O扩展板的RAM奇偶校验的程序段: IN AL,61H ;读入B口状态 OR AL,00110000B ;PB4PB5置1, 禁止奇偶校验 OUT 61H,AL ;将新状态字送回B口 问题:B口已被设为输出方式,为何能用IN指令读取B口的状态? 答案:因为B口的结构特殊。B口既有1个8位输入缓冲器,还有1个I/O锁存器/缓冲器。从PB输出时数据会被锁存在那里,能随时用IN指令读回锁存的输出状态。因B口被编程为输出,因而读到的是锁存数据而不是从外设输入到B口的数

13、据。,PC为输入方式,读入各位数值来了解系统状态。 例如,检查DIP开关状态的程序段: IN AL,61H;读B口状态 AND AL,11110111B;PB3置0,其余位不变 OUT 61H,AL;送回B口 IN AL,62H;读C口状态 AND AL,0FH;取低4位开关状态 MOV AH,AL;存入AH IN AL,61H;读B口状态 OR AL,00001000B;PB3置1,其余位不变 OUT 61H,AL;送回B口 IN AL,62H;读高4位开关状态进AL低4位 MOV CL,4 ROL AL,CL;左移4次后送到D7D4位 AND AL,0F0H;截取高4位开关量 OR AL,AH;8位开关状态组合在AL中,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1