单片机查询方式是什么_单片机的查询方式

单片机查询方式是什么_单片机的查询方式单片机学习之十:查询方式按键一、实验现象本文引用地址:http://www.eepw.com.cn/article/201609/310402.htm最右面的数码管初始显示0,每次按下外部按键K1执行加一,计数到九时重新回零。二、实验目的掌握读取外部按

单片机学习之十:查询方式按键
  一、实验现象本文引用地址:http://www.eepw.com.cn/article/201609/310402.htm

  最右面的数码管初始显示0,每次按下外部按键K1执行加一,计数到九时重新回零。

  二、实验目的

  掌握读取外部按键时候应该注意的事项,掌握查询方式响应按键的方法

  掌握读取按键去抖动的方法

  掌握判直接寻址位转移指令jb,jnb的用法。

  三、实验任务分析

  单片机响应外部按键的方式有两种,一种是查询方式,一种是中断方式。

  查询方式的响应过程如下:单片机不断的查询是否有按键按下,如果有按键按下的话,就执行相应的程序,否则继续查询。

  中断方式的响应过程如下:单片机处理自己的工作,如果有按键按下,向单片机发出中断请求。单片机停下现在正在处理的工作,转去执行中断程序,执行之后回来继续刚才的工作。

  本试验程序我们采用查询方式完成,下一个试验我们采用中断方式完成。

  还是先看看电路图吧,当JMP4跳线拔下的时候,电路图如下图6-1所示。

  (注:如果JMP4跳线插上,则按键和中断建立联系。在本试验中,JMP4跳线可以插也可以不插。因为我们采用查询方式,没有开中断。具体情况下一个试验介绍。)

  单片机查询方式是什么_单片机的查询方式

   

  从图上我们可以看到,当按键k1按下的时候,对应P1.0输入低电平。因此,我们要查询k1是否按下,只要检测到p1.0是低电平就可以拉。

  注意,在查询按键是否按下时候,特别需要注意按键的去抖动问题,为什么呢?

  由于按键或者键盘都是利用机械触点的合、断作用。由于机械触点的弹性作用,在闭合和断开的瞬间都会出现抖动问题。由于这种抖动,使得电压信号在机械触点的闭合、断开瞬间会出现一系列的脉冲信号,如下图所示。抖动的时间长短,与开关的机械特性有关,一般为5~10ms。

  按键的稳定闭合期,由操作人员的按键动作确定,一般为十分之几秒至几秒。为了保证按下一次按键,单片机只对按键作一次处理,就必须经过去抖动处理。

  单片机查询方式是什么_单片机的查询方式

   

  通常去抖动的方法有硬件和软件两种。

  硬件去抖是利用基本RS触发器或者单稳态电路构成,大家可以参考相关数电教材。

  软件处理的方法是:在检测到按键按下时,执行一个10ms左右的延时程序后,再次检测该按键是否按下。如果仍然是按下状态,就确认为键真正按下,从而消除了抖动的影响。

  按照这个思路编写的程序如下:

  四、实验程序

  org 0000h

  start: clr p1.5

  mov p0,#48h

  mov p2,#01h ;初始状态最右面的数码管显示0

  main: mov r7,#0ffh

  wait1: jb p1.0,wait1 ;如果P1.0为1,转回wait1继续查询。否则调用延时程序

  lcall del10ms ;调用10ms延时

  jb p1.0,wait1 ;再次查询P1.0,如果是1,表示是抖动,转回wait1

  ljmp play1 ;确定按键按下,转去数码显示程序

  play1: inc r7

  mov a,r7

  mov dptr,#tab

  movc a,@a+dptr ;利用查表指令找欲显示的数字,

  mov p0,a ;把 这个数字送到P0显示

  cjne a,#48h,wait1 ;如果没有显示到最后一个数字,就继续查询按键状态

  ljmp main ;如果显示到最后一个数字就重新开始

  tab: db 0ebh,52h,62h,0e1h,64h,44h,0eah,40h,60h,48h ;存放欲显示数字的表格

  del10ms:mov r6,#14h ;10ms延时子程序

  del1: mov r5,#0ffh

  del2: djnz r4,del2

  djnz r3,del1

  ret

  end

  把这个程序下载到学习板上,按下k1,发现了什么?

  我们发现这个程序运行不是很稳定,如果我们按下的时间稍微长一点,显示的数字就会变换几次。

  这是为什么呢?

  由于数字显示之后,单片机会返回重新查询P1.0的状态,如果按下的时间很长,就会导致单片机又检测到低电平,所以就继续显示。因此就会出现错误。

  如果我们希望按下一次按键,无论时间长短,单片机只作一次按键处理,应该怎么办呢?

  我们可以这样作:在数字显示之后,返回重新查询之前,我们加入一条指令,让单片机检测P1.0是否回到高电平。如果是,就表示按键按下了一次,程序可以返回继续查询,否则等待,一直到P1.0回到高电平。这样就保证了按键按下一次,无论时间长短,单片机只作一次按键处理。

  具体的做法是在原来的程序中增加如下的红色语句,改进后的程序如下:

  org 0000h

  start:clr p1.5

  mov p0,#48h

  mov p2,#01h ;初始状态右面数码管显示0

  main: mov r7,#0ffh

  wait1:jb p1.0,wait1 ;按键没有按下,等待

  call del10ms ;调用延时

  jb p1.0,wait1 ;继续查询

  ljmp play1

  play1: inc r7

  mov a,r7

  mov dptr,#tab

  movc a,@a+dptr

  mov p0,a ;查表显示数字

  wait2: jnb p1.0,wait2 ;等待按键弹起

  cjne a,#48h,wait1 ;判断是否显示到最后一个数字

  ljmp main

  ret

  tab: db 0ebh,52h,62h,0e1h,64h,44h,0eah,40h,60h,48h

  del10ms:mov r6,#14h

  del1: mov r5,#0ffh

  del2: djnz r4,del2

  djnz r3,del1

  ret

  end

  单片机查询方式是什么_单片机的查询方式

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/94008.html

(0)
上一篇 2024年 5月 27日 下午12:28
下一篇 2024年 5月 27日

相关推荐

  • html js css 网页制作_html+css+js网页制作

    html js css 网页制作_html+css+js网页制作小白要怎么入门学习HTML,CSS和JS呢?一、前端学习路线图二、2022前端与移动开发学习路线图-各阶段配套视频推荐第一阶段:前端入门HTML5 +Css3+电商网页制作课程内容:1、HTML5 是网页开发的基础,从最简单的网页开发

    2024年 6月 1日
  • zotero如何导入文献_zotero生成参考文献的方法

    zotero如何导入文献_zotero生成参考文献的方法使用zotero一次性导入一篇文献所参考的全部文献方法选择英文文献-选择右边箭头选择connected papers,网站 进入connected papers,网站左侧就都是这篇文献所有的参考文献,点击扩展点开扩展后点击下载-

    2024年 5月 11日
  • xshell zsh_shell和xwindows有什么关系

    xshell zsh_shell和xwindows有什么关系【zsh使用技巧】Linux shell美化,ohmyzsh安装+Xshell美化,体验Mac命令行解决oh-my-zsh主题乱码问题解决Rocky Linux下ohmyzsh按Tab键自动补全命令时重复字符且无法删除问题Solve:Remnant characters whe

    2024年 5月 10日
  • 单相电子式预付费电度表怎么读数_单相电子式预付费电度表怎么看

    单相电子式预付费电度表怎么读数_单相电子式预付费电度表怎么看如何看懂预付费电表读数 单相预付费电表介绍预付费电表是一种计量设备,用于家庭或商业用户的电能消耗管理。与传统的后付费电表不同,预付费电表要求用户在使用电力之前先进行充值,通过消费预付款来电能供应。这种电表提供了更加灵活和可

    激活谷笔记 2024年 5月 23日
  • vscode设置中文插件_visual studio code切换中文

    vscode设置中文插件_visual studio code切换中文Code editing. Redefined.Meet IntelliSense. Go beyond syntax highlighting and autocomplete with IntelliSense, which provides smart

    激活谷笔记 2024年 5月 11日
  • spring aop原理面试怎么答

    spring aop原理面试怎么答Spring AOP ,SpringMVC ,这两个应该是国内面试必问题,网上有很多答案,其实背背就可以。但今天笔者带大家一起深入浅出源码,看看他的原理。以期让印象更加深刻,面试的时候游刃有余。Spring AOP 原理简单说说 AOP 的设计:每个 Bean 都会被 JDK 或者

    激活谷笔记 2024年 5月 20日
  • Goland激活2024.1.2(JetBrains Pycharm Pro 2024.1.2 中文专业免费正式版(附汉化包+安装教程))

    Goland激活2024.1.2(JetBrains Pycharm Pro 2024.1.2 中文专业免费正式版(附汉化包+安装教程))

    2024年 6月 6日
  • xshell怎么用console线连接路由器_路由器console配置教程

    xshell怎么用console线连接路由器_路由器console配置教程Xshell连接交换机console口图文教程Xshell是Windows下一款功能强大的安全终端模拟软件,可访问远端不同系统下的服务器,实现远程控制终端的目的。我们用RAKsmart美国服务器(Linux系统)来建站,可以用Xshell远程连接服务器。除了远程连接服务器外,

    2024年 5月 12日
  • Redis面试题_redis应用场景 面试

    Redis面试题_redis应用场景 面试面试题:Redis的应用场景核心设计,看完面试不在慌!分布式缓存是分布式系统中的重要组件,主要解决高并发、大数据场景下,热点数据访问的性能问题,提供高性能的数据快速访问。使用缓存常见场景是:项目中部分数据访问比较频繁,对下游 DB(例如 MySQL)造成服务压

    2024年 5月 14日
  • 单片机怎么用c语言调用40h的数据_单片机怎么用c语言调用40h的数据

    单片机怎么用c语言调用40h的数据_单片机怎么用c语言调用40h的数据单片机原理及应用(C语言版)习题答案.doc单片机原理及应用(C语言版)习题答案第1章1.什么是单片机?答:将中央处理器(Central Processing Unit,CPU)、随机存储器、只读存储器、中断系统、

    激活谷笔记 2024年 5月 23日
  • 创建位图索引oracle_oracle创建位图索引语句

    创建位图索引oracle_oracle创建位图索引语句【校招VIP】数据库基础之索引相关考点介绍:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引

    2024年 5月 27日
  • pycharm用来干嘛_pycharm和python区别

    pycharm用来干嘛_pycharm和python区别pycharm和python的区别是什么?前言 PyCharm和Python是两个不同的东西。 Python是一种编程语言,是一种高级动态语言,被广泛用于Web开发、科学计算、人工智能等领域。 PyCharm 是一个Python

    2024年 5月 16日
关注微信