《P1与键盘接口课件》由会员分享,可在线阅读,更多相关《P1与键盘接口课件(29页珍藏版)》请在金锄头文库上搜索。
1、,PA口(8位).PB口(8位).PC口(6位) IO/M=1 256B RAM IO/M=0 14位定时器/计数器,IO/M /CE ALE /RD /WR RESET,256B 静态 RAM,14位 定时/ 计数器,A,B,C,PA0-PA7,PB0-PB7,PC0-PC5,D0-D7,8155逻辑结构图,256B 静态 RAM,D0-D7,PA0-PA7,8155控制字,TM2 TM1 IEB IEA PC2 PC1 PB PA,PA口 0:输入 1:输出,PB口 0:输入 1:输出,00: A、B口基本I/O C公口为IN 01: A、B口基本I/O C公口为OUT 10: A口为选通
2、I/O、B口为基本I/O PC0:AINTR PC1:ABF PC2: ASTB PC3-PC5:输出 11: PA口、PB口均为选通I/O,PA口中断允许位1:允许,PA口中断允许位1:允许,00:NOP不影响计数工作 01: 停 止 计 时 10:若定肘时器正在工作 长度减为1时停止计数 11: 启 动,8155作键盘接口,A口作输出:PA7-PA0 C口作输入:PC3-PC0 组成32键键,P2.7 P2.0 /WR /RD ALE P0口,+5V,/RD P170 ALE P16 0 P15 0 P14 0 AD口 P10 1 P11 1 P12 1 P13 1,无键按下PC=0FH,
3、ACC 0FH,P2.7 P2.0 /WR /RD ALE P0口,+5V,PA7 0 /CE PA6 0 IO/M PA5 0 /WR P1A4 0 /RD P137 0 ALE P16 0 P15 0 P104 0 AD口 P10 1 P11 1 P12 0 P13 1,有键按下PC=0BH,ACC 0BH,P2.7 P2.0 /WR /RD ALE P0口,+5V,/RD P17 ALE P16 P15 P14 AD口 P10 P11 P12 P13,键识别,N,ACC,00,02,01,11H,12H,13H,03,18H,10H,08,04,05,07,1FH,ACC FFH,有键按
4、下?,键测试,有键按下?,ACC FBH,确定键值,RET(A=键值),KEY,P2.7 P2.0 /WR /RD ALE P0口,+5V,/RD P17 ALE P16 P15 P14 AD口 P10 P11 P12 P13,ACC 0FH,键盘键值读入,11111110,1111,P2.7 P2.0 /WR /RD ALE P0口,+5V,/RD P17 ALE P16 P15 P14 AD口 P10 P11 P12 P13,ACC 0FH,键盘键值读入,11111101,1 1 1 1,P2.7 P2.0 /WR /RD ALE P0口,+5V,/RD P17 ALE P16 P15 P
5、14 AD口 P10 P11 P12 P13,ACC 0FH,键盘键值读入,11111011,P2.7 P2.0 /WR /RD ALE P0口,+5V,/RD P17 ALE P16 P15 P14 AD口 P10 P11 P12 P13,ACC 07H,键盘键值读入,11110111,1110,键识别流程图,LED显示,JMP A+DPTR,调用LK2子程序,初始化,PA=FEH R4=00H,ACC.0=1?,ACC.1=1?,ACC.2=1?,ACC.3=1?,00H+R4 行+列,08H+R4 行+列,10H+R4 行+列,18H+R4 行+列,RET,R2左环移 PA=FDH R4
6、=1,键测试,有键按下?,JMP A+DPTR,01键处理 子程序,1F键处理 子程序,初始化,00键处理 子程序,00H+R4 行+列,08H+R4 行+列,10H+R4 行+列,18H+R4 行+列,RET,ACC.7=0,ACC.0=1?,ACC.1=1?,ACC.2=1?,ACC.3=1?,R2左环移 PA=FBH R4=02H,ACC.7=0?,键测试,有键按下?,LED显示,N,N,N,N,Y,Y,Y,Y,PA 0 1 1 1 1 1 1 1,PC.0 1 PC.1 1 PC.2 1 PC.3 1,PA 1 0 1 1 1 1 1 1,键识别流程图,LED显示,13H键处 理子程序
7、,调用LK2子程序,初始化,13H键处理 子程序,R2=FEH R4=00H,ACC.0=1?,ACC.1=1?,ACC.2=1?,ACC.3=1?,00H+R4 行+列,08H+R4 行+列,10H+R4 10H+03H,18H+R4 行+列,01键处理 子程序,初始化,00键处理 子程序,ACC.0=1?,ACC.1=1?,ACC.2=1?,ACC.3=1?,00H+R4 行+列,08H+R4 行+列,18H+R4 行+列,R2左环移 R2=FBH R4=02H,键测试,有键按否?,ACC.7=0?,ACC.0=1?,ACC.1=1?,ACC.2=1?,RET (A=13H),JMP A+DPTR,R2左环移 R2=F7H R4=03H,PA 1 1 0 1 1 1 1 1,PC.0 1 PC.1 1 PC.2 1 PC.3 1,PA 1 1 1 0 1 1 1 1,PC.0 1 PC.1 1 PC.2 0 PC.3 1,N,N,N,N,Y,Y,Y,Y,Y,N,TEST,