概述前面几章讲解的都是 i/o 口当成输出管脚使用,本章将通过按键实验学习 i/o 口的输入功能。按键作为一种输入设备,在实际应用中非常的广泛。本章将详细介绍按键的使用。
7.1 按键原理独立按键的原理非常简单,如下图所示:
如图所示,k17-k20 共 4 个按键分别与单片机的 p3.0-p3.3 管脚连接。例如当按下按键 k17 后,p3.0 管脚为低电平,在单片机中通过检测 p3.0 管脚是否为低电平,便可知道 k17 是否按下。
7.2 按键电路软件设计下面我们学习独立按键的编写,这里要实现的功能为按键 k17 按下,点亮 led0,按键 k20 按下打开蜂鸣器,程序代码如下所示:
#includesbit led0 = p1^0;//led小灯管脚定义sbit fm = p2^4;//蜂鸣器管脚位定义sbit key17 = p3^0;//独立按键管脚定义sbit key20 = p3^3;void main(){ while(1) { led0 = key17;//按键17按下时,点亮led0 fm = key20;// 按键20按下时,打开蜂鸣器 }}蜂鸣器打开、点亮 led0 小灯以及按键 k17、k20 按下均为低电平,因此赋值代码如上循环语句中所示。将程序下载到单片机中,当按下 k17,k20 时,led0 小灯点亮,蜂鸣器响起,弹起按键后,led0 小灯熄灭,蜂鸣器关闭。
在实际使用中,我们并不是经常一直按着按键,最常见的方式为先按下按键然后弹起,这个过程表示按键按下一次的完整过程。因此,在程序中首先检测按键是否按下,然后再检测按键是否弹起,代码如下图所示:
#includesbit led0 = p1^0;//led小灯管脚定义sbit fm = p2^4;//蜂鸣器管脚位定义sbit key17 = p3^0;//独立按键管脚定义sbit key20 = p3^3; bit flag=1;void main(){ while(1) { if(key17==0)//按键按下 { if(key17==1)//按键弹起 { led0 = ~led0;//数值取反 } } if(key20==0)//按键按下 { if(key20==1)//按键弹起 { fm = ~fm;//数值取反 } } }}如上代码所示,在程序中首先检测按键 k17 是否按下,如果按下了再检测 k17 是否弹起,若检测到弹起,让 led0 小灯的状态变化,每完成一次按键操作,led0 小灯亮灭状态会翻转一次。k20 按键与此类推。
7.3 下载验证将上述代码下载至单片机便可验证了。
梦幻色打造颜值之最 荣耀X30i尝鲜购开启
Semtech推出LoRa技术,智慧农业将迎来巨大变革
力士乐液压泵的应用领域都有哪些
苹果发布的iOS 11.4正式版都有哪些内容?值得去更新吗?
基于VT100的CAN现场总线系统在线调试技术
基于单片机的按键电路软件设计 独立按键的工作原理
浏览器需要支持javascript怎么解决
霓虹灯与LED应用于装饰照明方面的比较
电导率传感器的使用及其应用场景的介绍
入选“灯塔工厂”,西部数据用实力领航智能制造
开关电源是如何自主控制的
本土射频企业未发生整合的原因,国内射频企业如何弥补差距
基于区块链的共享经济平台的兴起,开创出共享经济的未来
Linux内核页回收swappiness参数有着什么作用
电路设计中有几种地?
公开和许可的区块链有什么区别
日间行车灯有必要装吗
Low Power Silicon BJT LNA for
交河直埋式全焊接球阀性能介绍
基于LTC3780控制器的开关电源的仿真和设计