/*****************按键蜂+鸣器**********************/
/*****************qq:774145445*********************/
/*****************快手:共同学习stm8****************/
/*****************IDE:PADAUK_0.91******************/
/*****************20210617*************************/
#include "extern.h"
/**************************************************/
io_fengmingqi bit pa.4;
io_anjian bit pa.3;
/**************************************************/
byte anjian_a1; //按键次数
byte anjian_a2; //按键标志位
byte anjian_a3; //按键退出条件
byte fengmingqi_a1; //蜂鸣器标志位
byte fengmingqi_a2; //蜂鸣器次数
/**************************************************/
void fengmingqi(); //蜂鸣器
void anjian(); //按键
/**************************************************/
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/4 // SYSCLK=IHRC/4
/**************************************************/
$ io_fengmingqi out,low; //输出低
$ io_anjian in,pull; //输入上拉
/**************************************************/
anjian_a1 =0;
anjian_a2 =0;
fengmingqi_a1 =0;
fengmingqi_a2 =0;
while (1)
{
anjian();
fengmingqi();
.delay 2000;
}
}
/**************************************************/
void fengmingqi() //蜂鸣器
{
}
/**************************************************/
void anjian() //按键(释放版)
{
if(anjian_a2==0) //按键标志是0
{
if(io_anjian==0)
{
.delay 100;
if(io_anjian==0)
{
anjian_a2 =100; //按键标志位
anjian_a3 =100; //退出标志位
}
}
}
if(anjian_a2>0) //按键标志是>0
{
anjian_a2 --;
while(io_anjian==0)
{
anjian_a3 --;
.delay 2000;
if(anjian_a3==0) //一直按着退出条件
{
anjian_a1 ++; //按键次数
anjian_a3 =50;
return;
}
}
anjian_a1 ++;
anjian_a2 =80;
anjian_a3 =80;
}
if(anjian_a3>0) //定时一定次数结束
{
anjian_a3 --;
if(anjian_a3==0)
{
fengmingqi_a1 =1;
fengmingqi_a2 =anjian_a1;
anjian_a1 =0;
anjian_a2 =0;
}
}
}
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
|