- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.方式2 方式2称为双向总线方式。只有A口可以工作在这种 方式。在这种方式下,CPU与外设交换数据时,可在单一 的8位端口数据线PA7~PA0上进行,既可以通过A口把数 据传送到外设,又可以从A口接收从外设送过来的数据, 而且输入和输出数据均能锁存,但输入和输出过程不能同 时进行。在主机和软盘驱动器交换数据时就采用这种方式。 端口A工作于方式2时,端口C的5位(PC3~PC7) 作A口的联络控制信号,对应关系如下图所示: 方式选择控制字 * * 4.C口状态字 当8255A工作于方式0时,C口各位作输入输出用。当 它工作于方式1和方式2时,C口产生或接收与外设间的联络 信号,这时,读取C口的内容可使编程人员测试或检查外设 的状态,用输入指令对C口进行读操作就可读取C口的状态。 C口的状态字有以下几种格式: (1)方式1状态字 输入状态字 输出状态字 * (2)方式2状态字 其中D7~D3位为A组状态字,D2~D0位为B组所用, 当B口工作于方式1时,这几位作B口状态字,B口工作于 方式0时,这几位不是状态位,而是作输入输出用。 * 9-2 8255A的应用举例 一、基本输入输出应用举例 例1 在某一系统中,有8个开关K7~K0,要求不断检测它们的 通断状态,并随时在发光二极管LED7~LED0上显示出来。开 关断开,相应的LED熄灭;开关闭合,相应的LED点亮。此系 统的硬件电路如下图所示。 8255A各端口的地址: A口:F0H; B口:F2H C口:F4H; 控制命令口:F6H 方式选择控制字的确认: A口输入,检测开关状态;B口输出,显示开关 状态;A、B都工作在方式0;C口状态无关。所 以,方式选择控制字为: =90H * * 对应的程序段如下: MOV DX,0F6H ;指向命令控制口 MOV AL,90H ;设置方式选择控制字 OUT DX,AL ;方式选择控制字→命令控制口 TEST:MOV DX,0F0H ;指向A口 IN AL,DX ;从A口读开关的状态 NOT AL MOV DX,0F2H ;指向B口 OUT DX,AL ;从B口输出开关状态,控制 ;LED的点亮与熄灭。 JMP TEST ;循环检测 * 二、键盘接口 对于大多数的键盘,按键被排成行和列的矩阵。下面以 机械式开关构成的16个键的键盘为例,来讨论键盘接口的工作 原理。 设16个键分别位16进制数字0~9和A~F,键盘排列、连 线及接口电路如图9-14所示。16键排成4行×4列的矩阵,接到 并行接口8255A上,其中端口A作输出,端口B作输入。矩阵的 4条行线接到输出端口A的PA3~PA0,用程序能改变这4条行线 上的电平。4条列线连到输入端口B的PB3~PB0,4条行线还同 时接到输入端口B的PB7~PB4上。这样,用输入指令读取B口 数据时,即可读取键盘的行列号。 * 图9-14 键盘接口电路 * 识别键盘上哪个键被按下的过程称为键盘扫描,上述键 盘的扫描包含以下几步: (1)检测是否所有键都松开了,若没有则反复检测。 (2)当所有键都松开了,再检测是否有键按下,若无键按下则 反复检测。 (3)若有键按下,要消除键抖动,确认有键按下。 (4)对按下的键进行编码,将该键的行列信号转换成16进制码, 由此确定哪个键按下了。如出现多键同时按下的情况,只有在 其他按键均释放后,仅剩一个键闭合时,才把此键当作本次按 下的键。 (5)该键释放后,再回到(2)。 下面时键盘检测、去抖动、键值编码和确定键盘名的汇 编语言程序。程序运行后,若返回值AH=0,表示已读到有效的 键值,并在AL存有0~F键的16进制代码;若AH=1,则表示出 错。 * ;端口地址 PORT_A EQU 0FF9H ;8255 A口地址 PORT_B EQU 0FFBH ;8255 B口地址 PORT_CTL EQU 0FFFH ;8255 控制口地址 ;数据段,键盘扫描码表 DATA SEGMENT TABLE DB 77H,7BH,7DH,7EH,0B7H,0BBH DB 0BDH,0BEH,0D7H,0DBH,0DDH DB 0DEH,0E7H,0EBH,0EDH,0EEH DATA ENDS ;代码段 C
您可能关注的文档
最近下载
- 五年级语文作文《“漫画”老师》写作指导.pptx VIP
- 手持式电动工具安全培训.pptx VIP
- 架空输电线路无跨越架不停电跨越架线施工工艺.docx VIP
- 2025年统编版(2024)小学道德与法治二年级上册(全册)教学设计(附目录P84).docx
- 学习科学家精神袁隆平先进事迹心得体会(10篇).docx VIP
- 3500词(带音标)——完整打印版 .pdf VIP
- 3hac18153 3 reve应用手册机器人控制器robotware5.pdf VIP
- 环境影响评估投标方案(技术标).pdf
- 416例晚期妊娠合并贫血治疗分析.doc VIP
- 生物医学传感纳米生物传感器.ppt VIP
文档评论(0)