电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

按键控制键盘检测原理与应用

按键控制键盘检测原理与应用_第1页
1/7
按键控制键盘检测原理与应用_第2页
2/7
按键控制键盘检测原理与应用_第3页
3/7
按键控制键盘检测原理与应用 一、任务目标: 认知目标 1、掌握按键分类及工作原理 2、掌握 IF 条件选择结构和使用方法 3、掌握循环结构和使用原理 4、掌握独立按键子函数的编写原理及方法 1、 独立键盘 在简单的单片机应用系统中,往往只需要几个功能键就能满足要求,此时,可采用独立式按键结构。 独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根 I/O口线,每个按键的工作不会影响其它 I/O 口线的状态。独立式按键的典型应用如图 1.2.1所示。 独立式按键示意图 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口线,因此,在按键较多时,I/O 口线浪费较大,不宜采用。 程序开始,检测按键是否被按下,若按下,则移动机器人启动,未被按下,继续检测。这里将程序分成三个部分,分别是延时子函数、按键子函数、主函数。 延时子函数,通过参数 t设置延时时间;按键模块子函数需用到延时函数,对按键进行消抖;主函数主要调用按键检测程序,实现对移动机器人的控制。程序流程图如图 1.2.2 所示 延时消抖按键按下?按键释放?状态取反按键按下?开始是是否否否 程序流程图 程序示例: 在编写程序开始的部分,将系统头文件“STC89C52RC.H”包含进来,对常用的变量类型进行宏定义,规划各函数和变量,对变量进行定义和初始化,对自定义子函数进行声明并添加相应标注,程序开始部分如下 sbit IN1=P1^0; sbit IN2=P1^1; Void key(); 编写主函数,在主函数中就是调用按键检测函数。 Void main() { key(); } 编写key()按键检测函数,按键按下,输出低电平,通过 if 语句检测低电平,延时10ms后,再次检测,若检测为高电平,则表示为机械抖动,若检测到低电平表示按键按下。 Void key() { if(IN1==0) { delay_ms(10); if(IN1==0) { while(IN1==0); IN2=~IN2; } } } 在上面的程序中,就只有一个检查按键扫描的函数 key(),key()函数是检查有没有按键按下编写的。当有按键下的时候P2 口取反。 2 、 矩阵键盘 (1)矩阵连接式键盘 在单片机系统中键盘中按钮数量较多时,为了减少I/O 口的占用,常常将按钮排列成矩阵形式,如下图所示: 矩阵键盘形式 矩阵按键实物图 矩阵连接式键盘键按矩阵排列,各键处于矩阵行/列的结点处,CPU 通过对连在行(列)的I/O 线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

按键控制键盘检测原理与应用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部