第8.2并行接口.ppt.ppt
程序如下(设图中8255片选信号CS=200H~203H) 判断键盘有无按键(第一次扫描)的程序如下: MOV AL,82H ;控制字:方式0,PA输出,PB输入 MOV DX,203H OUT DX,AL ;设置8255控制字 MOV AL,0H ;使各行线为0 MOV DX,200H OUT DX,AL NN: IN AL,201H ;读取列数据 AND AL,0FH ;屏蔽无关位 CMP AL,0FH ;各列线有无为0情况 JZ NN ;无为0列,等待按键 判断键号(第二次扫描)的程序如下: BEGIN: MOV BX,0403H;行数送BL,列数送BH MOV CL,0FFH;起始键号(CL)=-1 MOV AL;起始扫描码,0行=0 LOPl: MOV DX,200H;扫描一行 OUT DX,AL RCL AL,1 ;扫描下一行数据 MOV AH,AL ;保存到AH INC DX ;PB端口地址 IN AL,DX ;读PB AND AL,0FH ;屏蔽无关位 CMP AL,0FH ;本扫描行,有无列线为0 JNZ LOP2 ;有,转LOP2查找本行键号 ADD CL,BH ;键号+4(一行4个键) MOV AL,AH ;恢复下一行扫描码 DEC BL ;
原创力文档

文档评论(0)