您的位置 首页 ADAS

单片机中最简略有用的按键程序

我想了很久才写成的这个按键程序;先讲讲我的思路,我的思路很简单就是一般的按键不是需要去抖动延时,我想单片机够慢的了,用什么方法不要

我想了好久才写成的这个按键程序;先讲讲我的思路,

我的思路很简单便是一般的按键不是需求去颤动延时,我想单片机够慢的了,用什么办法不要去延时,所以我就想到在守时中止中刺进按键扫描程序,假如接连两个中止程序中都有按键,就可以认为有按键。

可是我下面的这个程序中有个缺点,那便是没有参加去颤动的办法,为了缩短短程序的总长度,我便是没有写,这个我用在一个平常的一个小的测验部件控制程序中,去颤动没什么实践的含义,就没有写!

ucharkey = 0;
ucharkey0 = 0;
ucharkey1 = 0;
ucharkey2 = 0;
ucharkey3 = 0;
ucharkey4 = 0;

//以上为全局变量

voidkey_saomiao(void)
{
//uchara = 0;

P3 = P3 | 0xF0;
nop();
key0 = P3;
key0 = key0 >> 4;
key2 = key2 | (key0 ^ key1);
key1 = key0;
key = key | (key2 & key0);
key2 = key ^ key2;
}

void time0_init(void)
{
uchar a;

a = TMOD;
a = a | 0x01;
TMOD = a;
//IE = 0x82;
TH0 = 0x10;
TL0 = 0x00;
ET0 = 1;
TR0 = 1;
EA = 1;
}

void time0_int(void) interrupt 1
{
TH0 = 0x10;
TL0 = 0x00;
TR0=1;
time_count++;
key_saomiao();
if(time_count > 20)
{
LED0 = ~LED0;
time_count = 0;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/259205.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部