打印

应广单片机长短按键实现

[复制链接]
393|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2020-9-25 19:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include        "extern.h"
key                        bit                        pa.7;
led1        bit                        pa.0;
led2                bit                        pa.4;
byte                key_a1,key_a2,key_a3;

void                anjian();                //按键
/*******************************************************************************/
void        FPPA0 (void)
{
        .ADJUST_IC        SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;

$        led1                out,low;
$        led2                        out,low;                //输出,低
$        key                                in,pull;                //输入,上拉
key_a1                =0;
key_a2                =0;
key_a3                =0;
/*******************************************************************************/
$                tm2c                sysclk,pa3,pwm;
$                tm2s                8bit,/16,/16;
//tm2b                                //tim2上限
/*******************************************************************************/

while (1)
        {
        anjian();
        if(key_a3==1)
                {
                        key_a3=0;                //按键标志位清零
                        if(key_a2==1){led2=1;}
                        if(key_a2==0){led1=1;}
                }
        }
}

/*******************************************************************************/
void                anjian()                //按键
{
if(key==0)
{
.delay                100;
if(key==0)
{
key_a3                =1;                                        //按键标志位
key_a1                =0;

while(!key)
{
.delay 100000;
key_a1++;
}
if(key_a1>20)        {key_a2=1;}                //长按
else{key_a2=0;}                                        //短按

}


}
}
/*******************************************************************************/

使用特权

评论回复

相关帖子

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

本版积分规则

300

主题

457

帖子

59

粉丝