asp net网站建设,台山网站设计,网站优化宝,怎么做免费的网站商城1、功能描述
独立按键控制LED灯#xff0c;按键按一次亮#xff0c;再按一次灭
2、实验原理
轻触按键:相当于是一种电子开关#xff0c;按下时开关接通#xff0c;松开时开关断开#xff0c;实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开#xff1b;…1、功能描述
独立按键控制LED灯按键按一次亮再按一次灭
2、实验原理
轻触按键:相当于是一种电子开关按下时开关接通松开时开关断开实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开
独立按键原理图如下 其在MCU上的位置如下所示 由上面两张图可以知道独立按键是接在MCU的P3.0口到P3.3口的;可以看到独立按键的右端是接地的;这里需要注意独立按键的一端接地独立按键就是一个开关;以K1为例K1右端是GND左端是RXD我们知道单片机在刚上电时所有i/o口默认都是高电平的;所以当K1按键没有按下时RXD是高电平但当K1按键按下时电路进行了连通RXD接通了GND,所以RXD此时变成了低电平。在寄存器中写入一个值该值就会同步到对应的i/o口上;其实反之也成立即通过寄存器可以读到i/o口的状态是高电平还是低电平。所以当按键没有按下时寄存器读到的该i/o的状态就是高电平(即1)﹔反之当按键按下时寄存器就可以读到该i/o口的状态为低电平即O﹔我们则可以通过寄存器读到的i/o口的状态是高电平还是低电平就知道按键是按下还是松开了。
3、编程思路
在main函数中进入一个无限循环while(1)程序将一直在这个循环中执行。
在循环中通过检查P31引脚是否为低电平来判断是否有按键按下。如果P31为低电平说明有按键按下当检测到按键按下时首先进行一个短暂的延时然后再次检查P3_1引脚的状态以避免按键的抖动影响然后将P2_0引脚的状态取反以实现LED的闪烁效果。
4、代码
#include REGX52.H
void Delay(unsigned int xms) {
unsigned char i, j;
while(xms)
{i 2;j 239;
do
{while (--j);
}while (--i);xms--;
}
}
void main()
{
while(1)
{if(P3_10){Delay(20);while(P3_10);Delay(20);P2_0 ~P2_0;}
}
}