【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
实验内容:
利用所学的单片机知识及电路知识编程实现单片机 I/O 口检测按键输入电平。
1.选中 8 位数码管的其中 1 位数码管,当独立按键 1 每按下一次,数码管加一(按下期间加 1),范围为 0—F;
2.选中 8 位数码管的另 1 位数码管,当独立按键 2 每按下一次,数码管减一(松手之后减 1),范围为 F—0;
3.按下独立按键 3 期间,流水灯以 600ms 的速度流动;
4.按下独立按键 4,松手之后,8 个 LED 灯作一次花样循环。
按键一效果图:
按键二效果图
按键三效果图:
按键四效果图:
代码如下:
#include <REGX51.H>
#include <intrins.h>
int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管编码
int num=0; //全局变量 ,代表当前数码管显示的段码
void Delay(unsigned int xms){unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}void xianshi(int p){P2_2=1;P2_3=1;P2_4=1; //位选选中第第一位P0=table[p]; //段选,输出段码
}void leddemo1(){//流水灯模式1int i;P0=0x00;//关闭数码管段选for(i=0;i<8;i++){ P2=_crol_(0xfe,i);Delay(600);}P2=0xff;
}void leddemo2(){ //流水灯模式2P0=0x00;//关闭数码管段选P2=0x7e;Delay(600); P2=0xbd;Delay(600);P2=0xdb;Delay(600);P2=0xe7; Delay(600);P2=0xc3; Delay(600);P2=0xb1; Delay(600);P2=0x00; Delay(600);P2=0x18; Delay(600);P2=0x3c; Delay(600);P2=0x7e; Delay(600);P2=0x00; Delay(600);P2=0x00; Delay(600);P2=0xff; Delay(600);P2=0x00; Delay(600);P2=0xff; Delay(600);P2=0x00; Delay(600);P2=0x81; Delay(600);P2=0xc3; Delay(600);P2=0xe7; Delay(600);P2=0xff; Delay(600);
}
void key()
{//独立按键扫描 if(P3_1==0){Delay(20);if(P3_1==0){ while(P3_1==0){//按下不松手 累加num++;if(num>15)//判断数码是否超出显示范围num=0; Delay(300);xianshi(num);}}}if(P3_0==0){Delay(20);if(P3_0==0){num--;while(P3_0==0);Delay(20);if(num<0)//判断数码是否超出显示范围num=15;xianshi(num);}}if(P3_2==0){Delay(20);if(P3_2==0){while(P3_2==0);leddemo1();Delay(20);}}if(P3_3==0){Delay(20);if(P3_3==0){while(P3_3==0);leddemo2();Delay(20);}}
}
void main(){P0=0x00;while(1)key();
}
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯相关推荐
- 51单片机-独立按键控制LED
1. 51单片机独立按键的位置: 独立按键的定义:独立按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开: 在整个51开发板的左下 ...
- 用51单片机和ch375实现键鼠功能
用51单片机和ch375实现键鼠功能 说明: 为了参加比赛,我和我的队友设计了一款人机交互系统,我负责接收摄像头数据和模拟键鼠功能,由于当时只是学习了51故用51单片机和ch375模拟一套简单的键鼠功 ...
- 数字集成电路及其版图设计:带有预置数功能的8位二进制加减计数器设计及版图实现
数字集成电路及其版图设计 带有预置数功能的8位二进制加减计数器设计及版图实现 一.目的: 1.熟悉数字集成电路设计的基本流程: 2.熟悉虚拟机的安装及使用方法: 3.熟悉Linux系统及vi编辑器的操 ...
- 51单片机 | 独立按键实验
文章目录 一.按键介绍 二.硬件设计 三.软件设计 四.实验现象 开发板上板载 4 个独立按键.通过开发板上的独立按键 K1 控制 D1 指示灯亮灭.通过独立按键实验来介绍 IO 口作为输入的使用 ...
- 51单片机——独立按键实验,小白讲解,相互学习
按键介绍: 按键是一种电子开关,使用时轻轻按开关按钮就可式开关接通,当松手时,开关断开.开发板上使用的按键及内部简易图如下图: 按键管脚两端距离长的表示默认是导通状态,距离短的默认是断 ...
- 51单片机独立按键学习中,出现的问题以及心得
文章目录 前言 一.出现的问题 1.问题1 2.问题2 二:心得 独立按键的短按 独立按键按住时间不同实现功能不同 总结 前言 Hello大家好,这里是万某,今天学习的是51单片机的独立按键,在此记录 ...
- 51单片机独立按键和矩阵按键实现
这里写目录标题 独立按键实验 矩阵按键实验 独立按键实验 按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时, 开关断开.我们开发板上使用的按键及内部简易图如下图所示 管脚与管脚之间( ...
- 51单片机独立按键联动数码管LED蜂鸣器
目录: LED工作原理.电路及源码 蜂鸣器工作原理.电路及源码 数码管工作原理.电路及源码 独立按键工作原理.电路及源码 总结 LED原理,电路及源码 LED原理 LED就是发光二级管,有单向导电性, ...
- 51单片机—独立按键的控制
目录 一.独立按键的介绍 1.按键介绍 2.按键原理图 3.按键抖动 4.按键的消抖 二.独立按键控制LED指示灯亮灭 三.按键实验视频 总结 一.独立按键的介绍 1.按键介绍 轻触按键,相当于一种电 ...
最新文章
- c#的chart标题_C#中CHART画图
- 重绘和回流----降低回流减少性能影响
- Pytorch学习 - Task6 PyTorch常见的损失函数和优化器使用
- 回溯法解决01背包问题
- socket网络编程——TCP编程流程及端口号占用问题
- 疯子的算法总结(一) 位运算(快速幂、快速乘)
- LeetCode 1007. 行相等的最少多米诺旋转
- javascript async await
- OSI网络模型(TCP/IP五层模型)
- Python学习教程:Python自动化测试框架需要学习哪些?
- mifi随身wifi选购
- 六石编程学:由库调用没测试到,谈工作粗糙
- 用MD5验证上传文件的完整性
- 文本域中只允许输入特定长度的字符
- 玩转华为ENSP模拟器系列 | 配置OSPFv3 ABR路由聚合示例
- S3C2440 由ADS移植到 RealView MDK kile4
- 漫谈TCP High Speed与TCP Africa(TCP China)
- FreeRTOS移植到STM32
- Java POI导出(图片,文字,表格)word文档
- 解决maven工程的properties文件内容呈灰色