找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7334|回复: 2
收起左侧

51单片机独立按键的使用代码

[复制链接]
ID:845966 发表于 2020-11-22 13:25 | 显示全部楼层 |阅读模式
/*发这些代码是为了把自己学习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();                     //调用按键检测函数
        }
}

回复

使用道具 举报

ID:548551 发表于 2020-11-23 15:22 | 显示全部楼层
小老弟, 多看看工作时候的项目程序, 少看一点这些程序,用处不是很大. 我给你看下我实际项目的程序.
9ACPPMEAD7R5706EBXFIAVY.png
回复

使用道具 举报

ID:845966 发表于 2020-11-23 19:28 | 显示全部楼层
好的,谢谢大佬,最近我也在尝试着把自己所要写的程序工程化,但苦于找不到太多例子去参考,在其他一些模块的应用仿真上也有些问题,但又难于找不到人请教,谢谢大佬的指正和建议,我会尽量去实现的,还希望以后能向您多请教一些东西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表