c语言 独立按键按下计数
一般是200MS的时间,如果有大部分是按下的就算按下
十载的北流网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整北流建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“北流网站设计”,“北流网站推广”以来,每个客户项目都认真落实执行。
比如此阶段扫描十次的话,7次按下就算按下
或者扫描一次就把结果放入缓存区,缓存区里有十个数,取平均值作为结果
作为按键的实际情况
用51帮忙写个c语言程序,按键计数,按一下键显示数字加一,两个按键控制分别控制两个数码管的计数显示
#include reg51.h
sbit k1=P3^0;
sbit k2=P3^1;
unsigned char shi,ge;
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极数码管
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
void display()
{
P2=0x01;
P0=tab[shi];
delay(10);
P2=0x02;
P0=tab[ge];
delay(10);
}
void keyscan()
{
if(k1==0)
{
delay(2);
if(k1==0)
{
while(!k1);
shi++;
if(shi==10)
shi=0;
}
}
if(k2==0)
{
delay(2);
if(k2==0)
{
while(!k2);
ge++;
if(ge==10)
{
ge=0;
shi++;
if(shi==10)
shi=0;
}
}
}
}
void main()
{
while(1)
{
display();
keyscan();
}
}
51单片机按键计数器C语言编程
#includereg51.h
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f
uchar number,dat,dis[4];
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
number%=3;
switch(number)
P1=0x20number;
P0=distab[dis[number]];
}
void int0isr() interrupt 0
{
dat++;
dat%=1000;
dis[0]=dat%10;
dis[1]=dat%100/10;
dis[2]=dat/100;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR1=1;
ET1=1;
EX0=1;
IT0=1;
EA=1;
while(1);
}
分享文章:c语言按键计数函数 c语言中计数方法有哪些
地址分享:http://scgulin.cn/article/dogchci.html