本帖最后由 datouyuan 于 2017-11-29 15:14 编辑
- #include <STC90.H>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned char
- sbit key=P2^0;
- sbit key1=P2^1;
- void Delay10ms() //@12.000MHz
- {
- unsigned char i, j;
- i = 117;
- j = 184;
- do
- {
- while (--j);
- } while (--i);
- }
- void Delayms(uchar cnt)
- {
- if(cnt==0) return;
- do
- {
- Delay10ms();
- } while (--cnt);
- }
- void Delay200ms()
- {
- Delayms(20);
- }
- bit gb_ledflash=0;
- void ledflash()
- {
- static uchar ledflashcnt=5;
- if(--ledflashcnt) return;
- ledflashcnt=5;
- if(gb_ledflash)
- {
- P1=(~P1);
- }
- }
- uchar key1_cnt=0;
- void main()
- {
- uchar a;
- P1=0Xff;
- while(1)
- {
- Delay10ms();
- ledflash();
-
- if(key1==0)
- {
- ++key1_cnt;
- if(key1_cnt==0) --key1_cnt;
- if(key1_cnt==5)
- {
- gb_ledflash=!gb_ledflash;
- }
- }
- else
- {
- key1_cnt=0;
- }
-
- }
- }
帮你改成了:单次按下灯闪,双次按下,灯不闪。
另外延时函数你参考我的写法。假如晶振变更了,只要修改一个函数,修改移植更方便些。
|