标题: 51单片机独立按键的使用代码 [打印本页]

作者: 小老弟~    时间: 2020-11-22 13:25
标题: 51单片机独立按键的使用代码
/*发这些代码是为了把自己学习51单片机过程中的一些自己练习写的程序分享给大家
  发出来的都是经过测试没问题的,算是给新入门朋友们的一个参考,也算是
  对自己学习过程的一个记录,有问题给我留言哦,我会尽自己最大努力去解
  答的                                    ---小老弟~              */

//独立按键的使用

#include "reg51.h"                          //包含头文件                 //
typedef unsigned char u8;         //设置无符号字符型变量为u8
typedef unsigned int u16;         //设置无符号整型变量为u16
                                                         
sbit led=P2^0;                                 //将LED接在P2.0管脚,定义管脚
sbit key=P3^1;                                 //将独立按键接在P3.1管脚,定义管脚

void delay(u16 i)                         //延时程序
{
        while(i--);
}

void keypros()                                 //按键处理函数(尽量将所用的功能模块化,这样可以使主函数看起来没那么冗长
                                                     //对后期进行程序调试时也会方便很多
{
        if(key==0)                                 //        按键检测
        {
                delay(1000);                 //        延时是为了消抖,按键有弹性,会产生抖动误判,也就是按一次可能会识别成很多次
                if(key==0)                         //        消抖后再次检测
                {
                        led=~led;                 //        LED管脚取反,LED管脚便会在高低电平间转换,即LED闪烁
                }
                while(!key);                 //        松手检测,由于按键一端接管脚,一端接地,当按键按下时管脚检测为低电平
                                                         // 所以当松手后按键电平恢复为高电平,即结束while()循环
        }
}

void main()                                         //主函数
{
        while(1)                                 //无限循环,一直进行按键检测
        {
                keypros();                     //调用按键检测函数
        }
}


作者: xqleft    时间: 2020-11-23 15:22
小老弟, 多看看工作时候的项目程序, 少看一点这些程序,用处不是很大. 我给你看下我实际项目的程序.

9ACPPMEAD7R5706EBXFIAVY.png (38.24 KB, 下载次数: 72)

9ACPPMEAD7R5706EBXFIAVY.png

作者: 小老弟~    时间: 2020-11-23 19:28
好的,谢谢大佬,最近我也在尝试着把自己所要写的程序工程化,但苦于找不到太多例子去参考,在其他一些模块的应用仿真上也有些问题,但又难于找不到人请教,谢谢大佬的指正和建议,我会尽量去实现的,还希望以后能向您多请教一些东西




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1