本帖最后由 hkxiaoma 于 2015-6-16 10:18 编辑
废话不多说 直接上程序 希望大家积极分享自己的写法
用51举例 向下看 楼下还有的哦
- #include
- typedef unsigned char uchar;
- ***it KEY_Lplus = P1^0;
- void key();
- void Init_timer1(void);
- uchar Key1_ing=0;
- uchar K1count=0;
- uchar Key1_flag=0;//按键标志
- void main()
- {
- Key1_ing=0;K1count=0;Key1_flag=0;
- while(1)
- {
- if(Key1_flag==1)//按键有效
- {
- Key1_flag=0;
- ;//执行语句
- }
- }
- }
- void Timer1_isr(void) interrupt 3
- {
- key();
- TH1 = 0XF8;
- TL1 = 0X30;
- TR1 = 1;
- }
- void Init_Timer1(void)//定时器1初始化
- {
- TMOD = 0x11; //开定时器0 1
- EA = 1;
- ET1 = 1;
- TH1 = 0XF8;//2ms
- TL1 = 0X30;
- TR1 = 1;
- }
- void key()
- {
- if (!KEY_Lplus|Key1_ing)
- {
- if(!KEY_Lplus)
- {
- if(Key1_ing) {K1count=(K1count>=250)?250:(K1count+1);}
- else {Key1_ing=1;K1count=0;}
- }
- else
- {
- Key1_ing=0;
- if (K1count>=20)
- {
- Key1_flag=1;
- K1count=0;
- }
- else
- {
- K1count=0;
- }
- }
- }
- }
复制代码
10
-
-
按键.rar
498 Bytes
, 阅读权限: 20
, 下载次数: 7
|
|
|
|
|
|
这个可以有,复制下来看看 
|
|
|
|
|
|
|
|
顶楼主一个~!!
|
|
|
|
|
|
|
|
楼主厉害
- 楼主高人[color=Red]顶起[/color]
复制代码
难道非要输入20个字吗?
|
|
|
|
|
|
|
|
中断服务最好不放任何函数,越简洁越好,以状态机来调用各函数为最好
|
|
|
|
|
|
|
|
头像被屏蔽
· 2015-8-5 16:57:38
|
|
|
|
|
|
|
|
学到了学到了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|