标题:
按键次数利用单片机C怎么写 求帮助
[打印本页]
作者:
唐布局
时间:
2018-7-3 19:26
标题:
按键次数利用单片机C怎么写 求帮助
按键次数利用单片机C怎么写
作者:
woshige
时间:
2018-7-3 19:54
定义一个变量 每检测到一次按键按下 变量加一不就好了
作者:
no1xijin
时间:
2018-7-3 20:34
先定义一个变量并初始化为Count=0;再在每次按键按下时处理Count++;这是利用中断方式检测按键次数的例子:
http://www.51hei.com/bbs/dpj-97675-1.html
作者:
xuyaqi
时间:
2018-7-3 20:53
本帖最后由 xuyaqi 于 2018-7-3 21:14 编辑
while(key==0)
{
if(key==1)
{
key_cs++;//按键次数
break;
}
}
作者:
tuyfdjytdbt
时间:
2018-7-3 22:20
按一次i++
作者:
1561677221
时间:
2018-7-3 22:42
我也纠结这个好久了,单片机小白
作者:
Aurora33
时间:
2018-7-3 22:53
#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit led1 = P2^0;//定义管脚; sbit led2 = P2^1; sbit led3 = P2^2; sbit led4 = P2^3; sbit led5 = P2^4; sbit led6 = P2^5; sbit key = P1^0; uchar tcount=0,count=0;//定义时间变量和按键计数变量; void Delay(uchar i)//机械延时; { while(--i); } void LedLight(void)//LED控制函数; { switch(count) { case 3 : led1 = 0;break;//3下时,LED1亮; case 5 : led2 = 0;break;//5下时,LED2亮; case 7 : led3 = 0;break;//7下时,LED3亮; case 9 : led4 = 0;break;//9下时,LED4亮; case 11: led5 = 0;break;//11下时,LED5亮; case 13: led6 = 0;break;//13下时,LED6亮; default: P2 = 0xff;break;//其余的都不亮; } } void InitTimer0(void)//定时器0初始化; { TMOD = 0x00; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; TR0 = 1; } void main(void)//主函数 { InitTimer0(); while(1)//无限循环; { if(key==0)//检查按键是否按下; { Delay(10);//机械延时; if(key==0){count++;}//按键计数; while(key==0); } if(TF0==1)//复位定时器0; { TF0=0; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; tcount++; if(tcount==20)//1秒的时间; { LedLight(); Delay(100); count=0;//复位按键计数变量; } } } }
作者:
Chen666666
时间:
2018-7-4 17:47
no1xijin 发表于 2018-7-3 20:34
先定义一个变量并初始化为Count=0;再在每次按键按下时处理Count++;这是利用中断方式检测按键次数的例子:h ...
没有问题
作者:
diannaoza
时间:
2018-7-4 20:06
问的问题太大,定义一个变量 每检测到一次按键按下 变量加一不就好了
作者:
zyt123456
时间:
2018-7-4 20:46
先根据你要显示数字的个数定义一个unsigned char型的字符数组,调用扫描键盘函数,扫描到哪个键被按下的同时将键值存进对应的数组元素中,再调用液晶显示程序显示,液晶显示程序中显示的位数可变,可以
作者:
不再记起
时间:
2018-7-4 21:29
设个变量,写个检测按键的扫描函数 ,按键按下 变量加一下。
作者:
240148812
时间:
2018-7-4 22:13
采取标志位 ,每进入一次标志位加1,进行计数操作
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1