8255的应用举例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6.38255A的应用第6章I/O和8255A中国科学技术大学6.38255A的应用第6章I/O和8255A中国科学技术大学§6.38255A的应用举例举例说明8255A在开关电路、键盘及PC/XT机中的应用。此外,8255A还可用于扬声器和CRT控制接口电路、A/D和D/A接口电路等许多场合。由于选通方式比较复杂,这里仅介绍方式0的几个应用实例。6.38255A的应用第6章I/O和8255A中国科学技术大学6.3.1基本输入输出应用举例6.3.2键盘接口6.3.38255A在PC/XT机中的应用**供选用§6.38255A的应用举例6.38255A的应用第6章I/O和8255A中国科学技术大学6.3.1基本输入输出应用举例在工业控制等实际应用场合,经常需要检测开关状态,并用LED等显示出来。在交通灯控制方面,也有类似的应用。例1某检测系统中有8个开关K7~K0,要求不断检测它们的通断状态,并显示在发光二极管LED7~LED0上。开关断开,相应的LED点亮;开关合上,LED熄灭。试设计硬件电路,并编写有关的控制程序。6.38255A的应用第6章I/O和8255A中国科学技术大学1)硬件电路设计用8086CPU、8255A和74LS138译码器等芯片及开关、显示器等构成如下硬件电路,来实现上述功能。图6.216.38255A的应用第6章I/O和8255A中国科学技术大学A口输入,PA7~PA0接8个开关K7~K0,B口输出,PB7~PB0接显示器LED7~LED0。8255A的、和RESET脚接CPU相应输出,D7~D0与低8位数据线D7~D0相连,8255A的4个口地址都应为偶地址,A0总为0,用A2A1来选择4个端口。当A7A6A5=111,A4A3A0=100时,译码器输出选中8255A。4个端口地址为F0H、F2H、F4H和F6H,对应于8255A的A口、B口、C口、控制口。RDWR4Y=06.38255A的应用第6章I/O和8255A中国科学技术大学2)控制程序段设计确定方式选择控制字A口方式0输入,B口方式0输出,C口未用,相应位清0,控制字=10010000。控字写入控制口F6H将开关状态从PA引脚读入AL。若开关合上,AL中的相应位为0,断开则为1。把AL中的内容从PB引脚输出0-LED熄灭,表示相应的开关合上;1-LED点亮,表示相应的开关断开。不断循环,反复检测开关状态并显示计算机速度很快,每次操作后要延迟一定时间。6.38255A的应用第6章I/O和8255A中国科学技术大学程序:MOVDX,0F6H;控制字寄存器MOVAL,10010000B;控制字OUTDX,AL;写入控制字TEST_IT:MOVDX,0F0H;指向A口INAL,DX;读入开关状态MOVDX,0F2H;指向B口OUTDX,AL;B口控制LEDCALLDELAY_20S;调延时20s子程序JMPTEST_IT;延时20s再检测DELAY_20S:…;延时20s子程序6.38255A的应用第6章I/O和8255A中国科学技术大学例2读开关并用七段LED显示器显示开关状态A口接4个开关K3~K0,PB的7位输出经74LS04反相驱动后,接到1个七段LED显示器上。4个开关,共有16种状态,对应于16进制数字0~F。图6.226.38255A的应用第6章I/O和8255A中国科学技术大学8255A的A口工作于方式0,输入;B口方式0,输出。七段LED共阴极接法。PB0~PB6接LED的a~g段,当PBi=0时,经反相后使显示器正极为高电平,相应段点亮;PBi=1时,相应段熄灭。图6.226.38255A的应用第6章I/O和8255A中国科学技术大学七段LED显示原理如要显示数字0,g段应熄灭,其余段点亮,即向B口输出代码01000000B=40H,最高位不用,清0(也可用作小数点);如要显示数字1,则点亮b、c段,其余段熄灭,代码为01111001B=79H。由此可求得0~F的七段代码为:40H,79H,24H,30H,19H,12H,02H,78H,00H,18H,80H,03H,43H,21H,06H,0EH,其中字母B和D只能用小写字母b和d来表示。程序如下页。6.38255A的应用第6章I/O和8255A中国科学技术大学DATASEGMENTTABLEDB40H,79H,24H,30H,19H,12H,02H,78HDB00H,18H,80H,03H,43H,21H,06H,0EH;0~F的七段代码编码DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMOVAL,90H;A口方式0输入,B口方式0输出OUT63H,AL;输出控制字IN_PA:INAL,60H;读A口ANDAL,0FH;取低4位MOVBX,OFFSETTABLE;BX←七段代码表首地址XLAT;查表,AL←(BX+AL)OUT61H,AL;输出到B口CALLDELAY;调用延时程序JMPIN_PA;继续读开关,显示DELAY:…;延时MOVAH,4CHINT21H;返回DOSCODEENDS6.38255A的应用第6章I/O和8255A中国科学技术大学6.3.1基本输入输出应用举例6.3.2键盘接口6.3.38255A在PC/XT机中的应用6.38255A的应用第6章I/O和8255A中国科学技术大学6.3.2键盘接口构成键盘的开关有机械式、薄膜式、电容式和霍尔效应式等,PC上的键盘多用机械式开关。为减少输入线,开关被排列成行、列矩阵。检测是否有键压下前,先要确定键是否都松开。检测到有压键后,应消抖动(Debance),即延长20ms,再查看该键是否仍被压下。6.38255A的应用第6章I/O和8255A中国科学技术大学键盘扫描:1)是否所有键均松开?向每行输出0再读列,应都为1;2)是,查有键压下?向每行输出0后读得有列为0;3)有键压下,延时消抖动;4)根据输出0和读得0的位置,获得该键的代码。•4行×4列键盘矩阵•PA3~0输出到4行线•4行线输入到PB7~4•4列线输入到PB3~0•键未压下的列=1•压键的行列会接通•若置压键行为0则对应列也为0图6.236.38255A的应用第6章I/O和8255A中国科学技术大学键的代码形成:键0在3行3列,压下后从B口可读得D7=0和D3=0,其余位=1,故其编码为01110111B=77H;键6在2行1列,压下时D6=0、D1=0,其余位=1,故其编码为10111101B=BDH。然后查表确定压下的键。键扫描的程序见课本。6.38255A的应用第6章I/O和8255A中国科学技术大学6.3.1基本输入输出应用举例6.3.2键盘接口6.3.38255A在PC/XT机中的应用**供选用6.38255A的应用第6章I/O和8255A中国科学技术大学6.3.38255A在PC/XT机中的应用PC/XT机中用8255A-5(功能与8255A同)为接口芯片,来读取键盘输入的扫描码和系统配置DIP开关的设置状态,同时还可以控制扬声器发声及奇偶校验电路的工作。6.38255A的应用第6章I/O和8255A中国科学技术大学1.8255A-5在PC/XT机中的连接A,B,C口均为方式0左侧为控制信号口地址:A口-60HB口-61HC口-62H控制口-63H上电时A口输出,检测部件标志,正常为输入,读取键盘扫描码B口输出控制信号C口读取系统状态图6.246.38255A的应用第6章I/O和8255A中国科学技术大学PB输出控制信号:PB0输出扬声器发声控制信号到8253的GATE2端,PB0=1,允许8253计数器2产生音调信号。PB1输出控制扬声器发声信号。PB1=1允许8253输出的音调信号加到扬声器驱动电路。PB2保留,可输出键盘检测数据KBDDATA。PB3读入配置DIP开关状态。PB3=1封锁U41,开关高4位SW8~5读入PC3~0;PB3=0,U41选通,SW4~1读入PC3~0。开关合上时状态为0,断开为1。PB4=0允许系统板RAM奇偶校验电路工作。PB5=0允许I/O扩展板RAM奇偶校验电路工作。PB6和PB7输出到键盘接口电路。6.38255A的应用第6章I/O和8255A中国科学技术大学PC读取系统状态:PC3~PC0配置开关DIP的设置状态。PC4加到扬声器上的驱动信号SPK。PC5扬声器的音调信号状态T/C2OUT,即从8253-5的OUT2输出的信号。PC6I/O通道奇偶校验结果I/OCHCK。若为1则产生NMI中断请求。只有PB5=0才允许送出I/OCHCK信号。PC7系统板奇偶校验结果PCK。若为1便产生NMI中断请求。只有PB4=0才允许发出PCK信号。6.38255A的应用第6章I/O和8255A中国科学技术大学2.端口编程加电时系统处于自检方式,8255A-5的3个端口均置为方式0,A口和B口输出,C口输入,方式选择字应置成10001001B,即MOVAL,10001001BOUT63H,AL正常工作时,再置A口为输入,B口和C口同上,方式选择字应为10011001B,即MOVAL,10011001BOUT63H,AL6.38255A的应用第6章I/O和8255A中国科学技术大学对B口编程可实现不同的控制功能例如,禁止系统板和I/O扩展板的RAM奇偶校验的程序段:INAL,61H;读入B口状态ORAL,00110000B;PB4PB5置1,禁止奇偶校验OUT61H,AL;将新状态字送回B口问题:B口已被设为输出方式,为何能用IN指令读取B口的状态?答案:因为B口的结构特殊。B口既有1个8位输入缓冲器,还有1个I/O锁存器/缓冲器。从PB输出时数据会被锁存在那里,能随时用IN指令读回锁存的输出状态。因B口被编程为输出,因而读到的是锁存数据而不是从外设输入到B口的数据。6.38255A的应用第6章I/O和8255A中国科学技术大学PC为输入方式,读入各位数值来了解系统状态。例如,检查DIP开关状态的程序段:INAL,61H;读B口状态ANDAL,11110111B;PB3置0,其余位不变OUT61H,AL;送回B口INAL,62H;读C口状态ANDAL,0FH;取低4位开关状态MOVAH,AL;存入AHINAL,61H;读B口状态ORAL,00001000B;PB3置1,其余位不变OUT61H,AL;送回B口INAL,62H;读高4位开关状态进AL低4位MOVCL,4ROLAL,CL;左移4次后送到D7~D4位ANDAL,0F0H;截取高4位开关量ORAL,AH;8位开关状态组合在AL中

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功