接口与通讯技术7.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
接口与通讯技术7

IN AL,DX ;再次读B口,检查有无键按下 AND AL,0FH ;保留低4位 CMP AL,0FH JE LOOP1 ;无键按下,重新扫描 MOV KEY,AL ;有键按下,列值保存在KEY单元 MOV DX,XXH ;置8255A控制口地址 MOV AL,90H ;B口方式0输出,A口方式0输入 OUT DX,AL ;输出8255A方式控制字 MOV DX,XXH ;B口地址送DX中 MOV AL,KEY ;从KEY单元取出列值 OUT DX,AL ;向B口输出列值,反向扫描 MOV DX,208H ;A口地址送DX IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JE BEGIN ;无键按下,重新扫描 CALL KEYVALUE ;查表获得按键编码 MOV DX,XXH ;B口地址送DX中 MOV AL, 0 OUT DX,AL ;向B口输出列值,反向扫描 MOV DX,XXH ;A口地址送DX W2:IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JNE W2 ;未释放,等待 RET KEYSCAN ENDP 8255A中断方式工作的并行打印机接口 8255A的A口工作在方式1输出方式,用以传送打印字符。选用PC0来发送一个负脉冲作为数据选通信号 设8255A的PC3(INTR)连到中断控制器 8259A的IR3,对应的中断类型码为0BH,中断服务程序名为LPTINT,由中断处理程序实现26个英文字母的输出 8259A的初始化已经完成 打印机工作时序 .data BUFFER DB “abcdefghijklmnopqrstuvwxyz”,0dh,0ah OUT_POINTER DW ? ;缓冲区输出指针 ;存放当前字符的地址 DONE DB ? ;完成标志, 1完成 .code START: MOV AX, SEG LPRINT MOV DS, AX LEA DX, LPRINT MOV AX, 250BH INT 21H ;设置0BH中断向量 MOV AX, @data MOV DS, AX ;装载DS LEA BX, BUFFER MOV OUT_POINTER, BX ;设置输出缓冲区指针 MOV DONE,0 ;设置未完成标志 MOV AL,0A0H OUT 0C6H,AL ;A口方式1,输出 MOV AL,1 OUT 0C6H,AL ;PC0置为1,使选通无效 MOV AL, 0DH OUT 0C6H,AL ;允许8255A的打印机中断 IN AL, 21H AND AL, OUT 21H, AL ;清8259的IR3屏蔽 ;允许打印机中断 STI ;开中断 INT 0BH ;调用0BH中断服务程序输出第一个字符 W1: CMP DONE,0 JE W1 ;未完成,循环等待 MOV AX,4C00H INT 21H ;打印完成,返回操作系统 ; 中断服务子程序 LPTINT PROC FAR PUSH DS ;保护现场 PUSH AX PUSH DI STI ;开放中断 MOV AX, SEG BUFFER ;装载输出缓冲区指针 MOV DS, AX MOV DI,OUT_POINTER MOV AL,[DI] OUT 0C0H,AL ;字符送A口 MOV AL,0 ;使PC0为0,产生选通信号 OUT 0C6H,AL CALL Delay ;适当延时 INC AL ;使PC0为1,撤消选通信号 OUT 0C6H,AL INC OUT_POINTER ;修改地址指针 CMP BYTE PTR[DI], 0AH JNE NEXT MOV DONE, 1 ;已完成,置完成标志 MOV AL, 0CH OUT 0C6H,AL ;关闭8255A的打印机中断 IN AL,21H OR AL OUT 21H,AL ;关闭8259A的打印机中断 NEXT: CLI ;中断结束处理,关闭中断 MOV AL, 20H OUT 20H, AL ;向8259A发EOI命令 POP DI ;恢复现场 POP AX POP DS IRET LPRINT ENDP END START 上例中程序的注意点: 主程序除了用STI指令开放中断外,还要用

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档