找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4809|回复: 11
打印 上一主题 下一主题
收起左侧

按键次数利用单片机C怎么写 求帮助

  [复制链接]
跳转到指定楼层
楼主
ID:364272 发表于 2018-7-3 19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按键次数利用单片机C怎么写
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:174087 发表于 2018-7-3 19:54 | 只看该作者
定义一个变量 每检测到一次按键按下 变量加一不就好了
回复

使用道具 举报

板凳
ID:166089 发表于 2018-7-3 20:34 | 只看该作者
先定义一个变量并初始化为Count=0;再在每次按键按下时处理Count++;这是利用中断方式检测按键次数的例子:http://www.51hei.com/bbs/dpj-97675-1.html

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:94031 发表于 2018-7-3 20:53 | 只看该作者
本帖最后由 xuyaqi 于 2018-7-3 21:14 编辑

while(key==0)
{
  if(key==1)
  {
    key_cs++;//按键次数    break;
  }
}
回复

使用道具 举报

5#
ID:326451 发表于 2018-7-3 22:20 | 只看该作者
按一次i++
回复

使用道具 举报

6#
ID:364396 发表于 2018-7-3 22:42 | 只看该作者
我也纠结这个好久了,单片机小白
回复

使用道具 举报

7#
ID:364403 发表于 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;//复位按键计数变量;  }  }  }  }
回复

使用道具 举报

8#
ID:365042 发表于 2018-7-4 17:47 | 只看该作者
no1xijin 发表于 2018-7-3 20:34
先定义一个变量并初始化为Count=0;再在每次按键按下时处理Count++;这是利用中断方式检测按键次数的例子:h ...

没有问题
回复

使用道具 举报

9#
ID:130135 发表于 2018-7-4 20:06 | 只看该作者

问的问题太大,定义一个变量 每检测到一次按键按下 变量加一不就好了
回复

使用道具 举报

10#
ID:365098 发表于 2018-7-4 20:46 | 只看该作者
先根据你要显示数字的个数定义一个unsigned char型的字符数组,调用扫描键盘函数,扫描到哪个键被按下的同时将键值存进对应的数组元素中,再调用液晶显示程序显示,液晶显示程序中显示的位数可变,可以
回复

使用道具 举报

11#
ID:362432 发表于 2018-7-4 21:29 | 只看该作者
设个变量,写个检测按键的扫描函数 ,按键按下 变量加一下。
回复

使用道具 举报

12#
ID:347260 发表于 2018-7-4 22:13 | 只看该作者
采取标志位 ,每进入一次标志位加1,进行计数操作
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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