admin管理员组文章数量:1794759
单片机之独立按键(多种按键代码编写)
🌹作者简介: @鹤辞 ,喜欢玩弄单片机,嵌入式,PCB制作,电路设计等等,希望自己的学习经历经验能够对你们有启发
🌹前期回顾:单片机之中断系统篇_@鹤辞的博客-CSDN博客
🌹努力目标:突破1000粉丝
🌹支持鹤辞:点赞👍,留言👏, 关注💖,收藏🤞
51单片机独立按键 按键的基本原理按键右端接GND,左边接到单片机的IO口,同时接了一个上拉电阻,当按键未按下时,P2.0为高电平(学过模电的人都应该知道为什么吧)当按键按下时,相当于P2.0口与GND相连为 低电平。
按键的消抖(重点)可以从上图看到,断开和闭合之间有一些毛刺现象,这样,当我们按键按下时,我们无法判别此时P2.0口到底是高电平还是低电平,所以,这是我们要解决的问。
通常按键消抖有两种方式:
1,软件消抖(简易,省资源,常用)利用延时程序代码进行消除抖动的一种方式。
2,硬件消抖主要利用锁存器来实现按键消抖的一种方式。
3,利用protues实现模拟仿真视频连接:video-community.csdnimg/vod-84deb4/3a529b43ee9042318901de6572c6a7ac/snapshots/7876adef0122495fa2ba5a2e36e83400-00002.jpg?auth_key=4811481057-0-0-2de201306ecba0f11d6395d528c01996
代码多种编写: 第一种编写: #include <reg52.h> sbit key=P2^0; unsigned char smg[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; bit falg=0; unsigned char num=0; void key_scan() { if(key==0&&falg==0) { falg=1; } if(key==1&&falg==1) { num++; falg=0; } } void smg_display() { P3=smg[num]; if(num==10) num=0; } int main() { while(1) { key_scan(); smg_display(); } } 第二种编写: void key() { if(key_1==0) { Delay10ms(); if(key_1==0) led=~led; } while(!key_1); }❀❀❀下期:矩阵键盘多种编写
文章制作不易,感谢你的喜欢!点赞👍,留言👏, 关注💖,收藏🤞
下期再见吧🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍
版权声明:本文标题:单片机之独立按键(多种按键代码编写) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1687020635a129131.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论