打印

应广单片机黎工双击效果二

[复制链接]
497|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2020-11-17 22:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/******************黎工双击效果二********************************/
/********************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;
}

*/

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

300

主题

457

帖子

60

粉丝