2020年 08月 01日 星期六
您的位置: 威廉希尔主页 > 单片机技术 >

51单片机入门教程(4)——按键控制

来源:未知     作者:威廉希尔     发布时间:2020-08-01 09:04         

  之前的博客介绍了通过单片机控制LED灯和数码管向输出信息,该教程介绍单片机常用的输入设备——按键和矩阵键盘。

  在Proteus中对按键进行了简化,只有两个接线针脚。按键的一端接到单片机的IO口上,另一端与GND连接。当按键按下时,单片机的IO口与GND连接,端口电平被拉低。因此通过读取端口电平即可获知按键状态。

  为了避免在最不稳定的时候采集信号,常用的操作是延时,即当检测到低电平输入时,延时若干时间(常用20ms),再次采集信号,如果仍是低电平,则为按键被按下。

  把P2_0 - P2_3 端口置为高电平,P2_4 - P2_7置为低电平,如果其中一行的某一个按键被按下,那么对应的P2_0 - P2_3 端口就会有一个端口被拉低,通过判断即可确定被按下按键属于哪一行。

  类似地:把P2_0 - P2_3 端口置为低电平,P2_4 - P2_7置为高电平,如果其中一列的某一个按键被按下,那么对应的P2_4 - P2_7 端口就会有一个端口被拉低,通过判断即可确定被按下按键属于哪一列。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  。 第三,编译软件,KEIL C,全名是keil uvision,下载地址:它是美国Keil Software公司研发的51系列兼容单片机的C语言软件开发系统,我这一代人学51用的都是它。在2005年的时候被ARM公司收购,所以,现在基于ARM内核的STM32单片机也可以用这个软件开发,但是要去官网下载相应的版本。启动界面如下: 另外说一句,现在国内用的基本都是破-解-版,使用上没有问题,也就不要大声嚷嚷了,仅做学习交流用,不要有商业

  的准备工作 /

  很多人学单片机的时候都会遇到的情况,程序写的漂漂亮亮,原理理解的通通透透,但是.......不会用编译软件,不知道怎么下载程序,貌似大学的时候我老师就没讲过,呵呵。所以今天主要讲一下这两个软件的应用。 注:单片机种类多种多样,编译自然也有很多种。学习一种编译软件肯定需要一定的时间,不过软件界面基本都是大同小异,会了一个再去学另一个会很快。还有个现象,很多人喜欢用汉化版,个人感觉没必要。首先,汉化的不一定标准;其次,工具英语就那么几个单词,记下来就OK了,汉化反而会增加不必要的麻烦。 好了

  -KEIL的使用与程序的下载 /

  之前讲了如何点亮LED,包括硬件电和程序,今天说一下如何让LED闪烁。单片机控制LED闪烁有两种方法,一种是软件延时,另一种是定时器中断。因为涉及到单片机指令集的问题,还有一些简单的C语言,今天只讲第一种。 先说指令集,早期的51单片机都是复杂指令集,因为沿用的习惯现在用的STC89C52单片机也是复杂指令集,和复杂指令集对应的,就是精简指令集,常见的有AVR和430单片机。 这两种指令集的区别是啥?最明显的就是一条指令执行的时间,举个例子:51单片机和AVR单片机都外接一个12M的晶体

  -指令周期与LED闪烁 /

  同时清零了中断标志;去付款,处理了中断子程序;付完款继续吃饭,回到了主程序。STC89C52RC单片机中的中断分为三种:外部中断,一般是IO口的高低电平触发;定时/计数器溢出中断,一般是内部定时/计数器溢出中断;UART口中断,收发数据时引发的中断。这次只说定时/计数器溢出中断。程序如下:/**********************51单片机学习例程************************平台:Keil U4 + STC89C52*名称:LED闪烁*晶体:11.0592

  ;什么是消抖?检测出键闭合后执行一个延时程序,5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认正有键按下。当检测到按键后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。 为什么要消抖?因为按键按下或者抬起时,电平会有剧烈的抖动,这些抖动会对按键的状态判断造成干扰。因此要消抖。 这次的程序用按键触发LED,每次按下的时候,LED的状态进行翻转。 好了,废话少说,上程序

  接着昨天,继续说按键的事。昨天说的是扫描检测,今个说一下中断检测。先一个小故事~~ 当年我和凯凯学单片机的时候,我用扫描检测的方法做的项目,他用中断检测的方法做的项目。当我俩坐一起交流按键检测的方式时,他火了,直接跳起来跟我吼:你不用中断怎么检测? 当时我就意识到他可能陷入了只能用中断的误区,然后就乐呵呵的说:用扫描啊~ 他继续吼,我继续乐,我俩就这样陷入了死循环。终于都累了,然后把程序和原理给他看,了解~

  -按键的中断检测 /

  AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程词云:

      威廉希尔