EEVblog > Other Blogs

PADAUK_0.91_MINI-C_按键_蜂鸣器

(1/2) > >>

suzhiming:
/*****************按键蜂+鸣器**********************/
/*****************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;
      }
   }
}
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/

suzhiming:
/*****************按键蜂+鸣器**********************/
/*****************qq:774145445*********************/
/*****************快手:共同学习stm8****************/
/*****************IDE:PADAUK_0.91******************/
/********完成功能:按键按几次蜂鸣器响几次***********/
/*****************20210617*************************/
//             _______    ______
//           -|vdd    \_/    gnd|-
//    anjian -|pa7  pms150g  pa0|- led
//           -|pa6           pa4|- fengmingqi
//           -|pa5___________pa3|-
#include   "extern.h"
/**************************************************/
io_fengmingqi      bit      pa.4;
io_anjian         bit      pa.7;
io_led            bit      pa.0;
/**************************************************/
byte      anjian_a1;         //按键标志位
byte      anjian_b1;         //按键次数
byte      anjian_c1;         //按键退出条件
byte      anjian_c2;         //按键退出条件

byte      fengmingqi_a1;      //蜂鸣器标志位
byte      fengmingqi_a2;      //蜂鸣器次数
/**************************************************/
void      fengmingqi();      //蜂鸣器
void      anjian();         //按键
void      yanshi();         //延时
void      fengmingqi_yanshi();//蜂鸣器延时
/**************************************************/
void   FPPA0 (void)
{
.ADJUST_IC   SYSCLK=IHRC/4      //   SYSCLK=IHRC/4
/**************************************************/
$      io_fengmingqi      out,low;      //输出低
$      io_anjian         in,pull;      //输入上拉
$      io_led            out,high;      //输出高
/**************************************************/
anjian_a1      =1;      //0不检测,1检测,2计算次数
anjian_b1      =0;
anjian_c1      =0;
anjian_c2      =0;
fengmingqi_a1      =0;
fengmingqi_a2      =0;

while (1)
{
anjian();
fengmingqi();
yanshi();
}
}
/**************************************************/
void         fengmingqi()      //蜂鸣器
{
word      fengmingqi_b1;
if(fengmingqi_a1==1)
{
fengmingqi_a1      =0;
while(fengmingqi_a2--)      //次数
{
fengmingqi_b1      =1000;
while(fengmingqi_b1--)
   {
   fengmingqi_yanshi();
   if(io_fengmingqi){io_fengmingqi=0;}   else{io_fengmingqi=1;}
   }

fengmingqi_b1      =1000;
while(fengmingqi_b1--)
   {
   fengmingqi_yanshi();
   io_fengmingqi      =0;
   }
}


fengmingqi_a2      =0;
anjian_a1         =1;      //开始检测按键
if(io_led){io_led   =0;}   else{io_led   =1;}
}

}
/**************************************************/
void         anjian()         //按键(标志位版带释放)
{
if(anjian_a1==1)      //0不检测,1检测,2计算次数
{
if(io_anjian==0)
   {
   anjian_a1      =2;
   anjian_c1      =200;      //2秒退出条件
   anjian_c2      =200;
   }
}

if(anjian_a1==2)
{
if(anjian_c1 >0)      //退出条件1
   {
   if(io_anjian==0)
      {
      yanshi();
      while(io_anjian==0)
         {
         yanshi();
         anjian_c1      --;
         if(anjian_c1 ==0)      //退出
            {
            anjian_a1      =0;
            fengmingqi_a1   =1;      //打开蜂鸣器
            fengmingqi_a2   =anjian_b1;      //蜂鸣器次数
            anjian_b1      =0;
            }
         }
      anjian_b1      ++;      //按键次数+1
      anjian_c1      =200;      //续2秒时间
      anjian_c2      =200;
      }
   }

if(anjian_c2 >0)      //退出条件2
   {
   anjian_c2      --;
   if(anjian_c2 ==0)
      {
      anjian_a1      =0;
      fengmingqi_a1   =1;      //打开蜂鸣器
      fengmingqi_a2   =anjian_b1;      //蜂鸣器次数
      anjian_b1      =0;
      }
   }

}
}
/**************************************************/
void      yanshi()         //延时
{
.delay      20000;
}
/**************************************************/
void      fengmingqi_yanshi()      //蜂鸣器延时
{
.delay   2500;
}
/**************************************************/
/**************************************************/

suzhiming:
ok nono了 :)

suzhiming:
video1:    https://www.kuaishou.com/short-video/3x2wqknc3c4bves
video2:    https://www.kuaishou.com/short-video/3xhrtcugqzbb5r6
video3:    https://www.kuaishou.com/short-video/3x9g7yy6uch3xb2
video4:    https://www.kuaishou.com/short-video/3xmuf32x2z6uybg

ebclr:
I guess I will never understand whats is talking or write on that video, Is coded in a secret code

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version