按键弹起数字增加和按下增加
//按下
#include <reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit KEY1=P2^4;
sbit KEY2=P2^5;
sbit KEY3=P2^6;
sbit KEY4=P2^7;
unsigned char LedChar[]={//数码管
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90
};
void delay()//延时
{
unsigned int i=1000;
while(i--);
}
void main()
{
bit keybuf=1;//按键值暂存
bit backup=1;//键值备份
unsigned char cnt=0;//按键计数
ENLED=0;
ADDR3=1;
ADDR2=0;
ADDR1=0;
ADDR0=0;
P2=0xF7;
P0=LedChar[cnt];//初始显示0
while(1)//按下时执行一次循环,弹起在执行一次循环
{
keybuf=KEY4; 把当前值扫描暂存
if(keybuf !=backup) //当前值与前一次值不同说明按键有动作
{
delay();
if(keybuf==KEY4) //判断按键值发没发生改变。防止抖动
{
if(backup==1)//如果前次值位1,说明当前动作是按下
{
cnt++;//按键次数加1
if(cnt>=10)
{
cnt=0;
}
P0=LedChar[cnt];
}
}
backup=keybuf; //更新备份,下一次作比较
}
}
}
//弹起
#include <reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit KEY1=P2^4;
sbit KEY2=P2^5;
sbit KEY3=P2^6;
sbit KEY4=P2^7;
unsigned char LedChar[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90
};
void delay()
{
unsigned int i=1000;
while(i--);
}
void main()
{
bit keybuf=1;
bit backup=1;
unsigned char cnt=0;
ENLED=0;
ADDR3=1;
ADDR2=0;
ADDR1=0;
ADDR0=0;
P2=0xF7;
P0=LedChar[cnt];
while(1)
{
keybuf=KEY4;
if(keybuf !=backup)
{
delay();
if(keybuf==KEY4)
{
if(backup==0)//只是这里改为0
{
cnt++;
if(cnt>=10)
{
cnt=0;
}
P0=LedChar[cnt];
}
}
backup=keybuf;
}
}
}
转载于:https://www.cnblogs.com/wangjinshan/p/7454999.html
按键弹起数字增加和按下增加相关推荐
- 数字逻辑综合工具-DC-04 ——怎样增加时序约束(Timing Constraints)
数字逻辑综合工具-DC-04 --怎样增加时序约束(Timing Constraints) 逻辑综合的过程为:转化 优化 映射 另外还有环境约束和面积约束 时序有三个大的方面 input logic ...
- Linux下增加swap分区
Linux 下增加swap分区 环境:Linux EL4 + Oracle 10g 1.检查当前的分区情况 (使用free -m或cat /proc/swaps ): [root@db2 root] ...
- Keil uVision4 for ARM 下增加支持C51,C5x
原文链接:http://blog.csdn.net/skertone/article/details/7046447 第一步编辑 TOOLS.ini 找到Keil安装目录, 用记事本修改 TOOLS. ...
- Ubuntu下增加Python的PATH环境变量
Ubuntu下增加Python的PATH环境变量 1. Ubuntu专有方式 编辑 /etc/ld.so.conf 文件,如果以下语句不存在,则加入: include /etc/ld.so.conf. ...
- 如何在计算机中增加硬盘分区,win10系统电脑下增加新磁盘分区的操作方法
有关win10系统电脑下增加新磁盘分区的操作方法想必大家有所耳闻.但是能够对win10系统电脑下增加新磁盘分区进行实际操作的人却不多.其实解决win10系统电脑下增加新磁盘分区的问题也不是难事,小编这 ...
- 20220316在MT6739的android10下增加VT设备tty1
20220316在MT6739的android10下增加VT设备tty1 2022/3/16 16:08 1.完整编译MT6739的android10: time(./oneCmdMake 9186T ...
- 20220310在MT6739的android8.1下增加VT设备tty1
20220310在MT6739的android8.1下增加VT设备tty1 2022/3/10 10:21 需求:鸿蒙(Openharmony3.1 beta)下需要使用MT6739的设备节点:/de ...
- linux下增加swap分区,LINUX新建和增加SWAP分区
我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢? 在装完Linux系统之后,建立Swap分区有两种方法. 1.新建磁盘分区作为swa ...
- 20220322在MT6739的android8.1下增加ll命令
20220322在MT6739的android8.1下增加ll命令 2022/3/22 17:11 1.增加: X:\mt6739_android8.1\external\mksh\mkshrc # ...
- ADB 按键名、按键代码数字、按键说明对照表
文章目录 按 对照表 按 keyevent事件有一张对应的表,可以直接发送对应的按键代码数字,也可以使用对应的按键名,例如模拟按下Back键有如下两种用法: echo 方法一: adb shell i ...
最新文章
- 一步一步实现扫雷游戏(C语言实现)(三)
- pat天梯赛L2-025. 分而治之
- mysql memory leak_解决memory leak问题
- SQL语言实现金额小写转大写完整案例代码
- linux 多个秘钥,linux管理多个ssh公钥密钥
- live-server 箭头函数
- 语义分割论文阅读:FCN、PSPNet、DDRNet、BiseNet、BiseNetV2、deeplabv3
- Hive 之 排序和reduce设置
- Linux C函数之文件及目录函数
- VMWare 认证软件存在SSRF漏洞,可用于访问用户数据
- ios textView显示不全
- 复杂,软件的大敌![转]
- ROST情感分析的语法规则_基于「木兰」编译器,八行代码实现 quot;对于...中的quot;语法
- ovito :qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even though it was found.
- 数学建模:线性规划—奶制品的生产销售计划模型 (Python 求解)
- DataStory创始人兼CEO徐亚波博士获年度青年创业榜样奖项
- itunes未能连接到iphone软件更新服务器,iTunes无法联系iphone软件更新服务器 不可连接解决方法...
- 支持IPv6 DNS64 / NAT64网络
- Java 安全编程详解
- 微信小程序JS字符串操作方法汇总