【013】查询方式按键[51]点击数:684发布日期:2006-6-250:57:00【收藏】【评论】【打印】【编程爱好者论坛】【关闭】实验参考:笨笨工作室-实验六、查询方式按键
(查看)实验板:FB51A
(查看)实验目的:掌握读取外部按键时候应该注意的事项,掌握查询方式响应按键的方法
掌握读取按键去抖动的方法
掌握判直接寻址位转移指令jb,jnb的用法
实验现象:最右面的数码管初始显示0,每次按下外部按键K1执行加一,计数到9时重新回0
单片机响应外部按键的方式有两种,一种是查询方式,一种是中断方式
查询方式:单片机不断的查询是否有按键按下,如果有按键按下的话,就执行相应的程序,否则继续查询
中断方式:单片机处理自己的工作,如果有按键按下,向单片机发出中断请求
单片机停下现在正在处理的工作,转去执行中断程序,执行之后回来继续刚才的工作
本实验是用查询方式完成,只用到一个键K1,每次按下,使第一位数码管加1显示,计数到9里重新回0
显示部分电路及查表显示方法参考:【005】数码管显示数字和【006】多位数码管动态显示
本来想重画个电路图,在原来显示部分的基础上再把按键部分加上,但一来放在Blog上宽度有问题,再者还是不想画了,所以偷个懒,键盘部分单独拿出来吧
显示部分:按键部分:由原理图知:当按键k1按下的时候,对应P1
0输入低电平
因此,我们要查询k1是否按下,只要检测到p1
0是低电平即可
在查询键是否按下时,要注意按键的去抖动问题,关于键的消抖,见【012】按键消抖
按上述方法编写程序:org0000hstart:movp0,#48h;段码-显示0movp2,#01h;位码-选通第一位数码管main:movr7,#0ffh;查表时偏移量,用来实现由0到9循环显示key:jbp1
0,key;如果P1
0为高电平,则继续执行此句查询
calldel10ms;否则调用