/******************黎工双击效果二********************************/
/********************20201117******************************/
/**************************************************/
#include "extern.h"
led1 bit pa.0;
led2 bit pa.4;
led3 bit pa.3;
k1 bit pa.7;
k2 bit pa.6;
k3 bit pa.5;
byte kaiji_a1;
void yanshi10(); //延时10毫秒
void yanshi100(); //延时100毫秒
void anjian(); //按键
void xianshi(); //显示
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;
$ k1 in,pull;
$ led1 out,low;
$ led3 out,low;
kaiji_a1 =0;
/**************************************************/
while (1)
{
xianshi();
if(led3==0){led3=1;} else{led3=0;}
anjian();
yanshi100();
anjian();
}
}
/**************************************************/
void yanshi10() //延时10毫秒
{
.delay 10000;
}
/**************************************************/
void yanshi100() //延时100毫秒
{
.delay 100000;
}
/**************************************************/
void anjian() //按键
{
if(k1==0)
{
yanshi100();
if(k1==0) //第一次按下
{
byte anjian_a1;
byte anjian_a2;
anjian_a1 =0;
anjian_a2 =0;
while(!k1) //等待松手
{
yanshi100();
anjian_a1 +=1;
if(anjian_a1>10)
{
anjian_a1 =0;
anjian_a2 +=1;
if(led1==1){led1=0;} else{led1=1;} //闪烁效果
}
if(anjian_a2>10){return;} //大于5秒返回
}
//
//
anjian_a1 =0;
anjian_a2 =0;
while(k1) //松手时间
{
yanshi10();
anjian_a1 +=1;
if(anjian_a1>10)
{
anjian_a1 =0;
anjian_a2 +=1;
if(led1==1){led1=0;} else{led1=1;} //闪烁效果
}
if(anjian_a2>15){return;} //大于5秒返回
}
//
//
anjian_a1 =0;
nop;
nop;
while(!k1) //第二次按下
{
yanshi10();
anjian_a1 +=1;
if(anjian_a1>80){return;} //大于5秒返回
}
//
//
if(kaiji_a1==0) {kaiji_a1 =1;}
else{kaiji_a1 =0;}
}
}
xianshi();
yanshi100();
}
/**************************************************/
void xianshi() //显示
{
if(kaiji_a1 ==0) {led1 =0;}
if(kaiji_a1 ==1) {led1 =1;}
}
/**************************************************/
/**************************************************/
/**************************************************/
/*
void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
//...
}
popaf;
}
*/
|