用单片机编写的键盘扫描程序怎样编写它的求键号程序?
要不要我帮你写一段,你后面没扫描,当然无法获取键值t1:mov p1,#0fh ;p1接口高4位为0,低4位输入 mov a,p1 ;读p1 anl a,#0fh ;屏蔽高4位 cjne a,#0fh,t2 ;有键按下转t2 sjmp t1 ;无键按下转回 t2:lcall delay10;延时10ms,去抖 mov a,p1 ;重新扫描p1口 anl a,#0fh cjne a,#0fh,t3sjmp t1t3:mov r0,#00 ;行计数值 mov r1,#00 ;列计数值 mov r3,#0efh ;扫描初值t4:mov a,r3 mov p1,a;输出行扫描字mov a,p1mov r1,aanl a,#0fhcjne a,#0fh,t5 ;该行有键按下inc r0 ;行计数器加1 ,扫下一行MOV A,R3RLC AMOV R3,AMOV A,R0CJAE A,#04H,t4 ;扫到最后一行?t6: ret ;结束t5:mov a,r1 jnb acc。
0,t7jnb acc。1,t8jnb acc。2,t9jnb acc。
3,t10sjmp t6t7: mov r2,#00 ;0列号 sjmp t11 t8:mov r2,#01 ;1列号 sjmp t11 t9:mov r2,#02 ;2列号 sjmp t11t10:mov r2,#03 ;3列号t11:mov a,r0 mov b,#04 mul ab ;行号乘4 add a,r2 ;键值在A中 ret。