1、实现按键控制灯:
在单片机编程中,按键和灯是分开的两个电路,通过单片机作为媒介处理数据,通过逻辑来实现按键控制灯。
5v电压过来分成两路,一路是到芯片的路,另外一路是通过按键接地的路;如果按键未按下,传输到芯片的是高电平,此时为1;如果按键按下导通接地,此时传输到芯片的是低电平,为0;
查询法:按键控制灯,while()
另外一种方法:中断法
2、软件消抖:
硬件应用过程中可能会有抖动或者按键松动,导致控制出现0/1之间的转换控制。
正常按键按下会在50-200ms,stc-isp中用延时,如果50ms之后再判断按键的所接芯片的接收状态,按键依旧是按下状态,key1为0,则控制灯亮
如果在软件延时中出现_nop_();需要添加头文件#include<intrins.h>,否则报错
3、while查询法中:IO口状态翻转,if判断输入的状态,led1=!led1;当用到翻转程序时,后边添加while(key1==0),等待按键松开,防止往下执行后面的程序。来实现状态翻转。
4、记录状态位来控制led:
#define off 0
#define on 1
定义一个变量,赋予这个变量为off还是on
if判断变量与off是否相等,相等为灭,否则为亮
<