打印

应广PMS132B检测0.5ms高低电平

[复制链接]
353|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
34af9uc|  楼主 | 2022-4-2 00:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 34af9uc 于 2022-4-2 00:34 编辑

/****************检测0.5ms高低电平*****************/
/****************QQ:774145445**********************/
/****************快手:共同学习stm8*****************/
/****************20220402**************************/
//              pms132b_s16b
//              _____   ____
//            1|gnd  \_/ vdd|16  下拉电阻1K(没有下拉电阻)
//            2|pa7      pa0|15----led--==========--|地
//            3|pa6      pa4|14
//            4|pa5      pa3|13
//            5|pb7      pb3|12
//            6|pb4      pb1|11
//            7|pb5      pb0|10----shuju
//            8|pb6______pb2|9
/**************************************************/
#include        "extern.h"
/**************************************************/
shuju                bit                pb.0;                //数据引脚
led                        bit                pa.0;                //led
/**************************************************/
//byte                jieshou_a1;                        //接收标志位
word                jieshou_miao;                //接收时间秒
/**************************************************/
void                jieshou();                        //接收
void                jiance();                        //检测
void                yanshi();                        //延时
/**************************************************/
void        FPPA0 (void)
{
//        .ADJUST_IC        SYSCLK=IHRC/4                //        SYSCLK=IHRC/4
/**************************************************/
        .ADJUST_IC        SYSCLK=IHRC/8, IHRC=16MHz, VDD=3V;


$                shuju                in,pl;                //输入,下拉
/**************************************************/
while (1)
{
$                led                        in;
$                shuju                in,pl;                //输入,下拉
stopsys;                //进入掉电模式
if(shuju ==1)
{jieshou();}
}
}
/**************************************************/
/*
void        Interrupt (void)
{
        pushaf;

        if (Intrq.T16)
        {        //        T16 Trig
                //        User can add code
                Intrq.T16        =        0;
                //...
        }

        popaf;
}

*/
/**************************************************/
void                jieshou()                        //接收
{
jieshou_miao                =0;
$                led                        out,low;
$                shuju                in,pl;                //输入,下拉
jiance();
while(jieshou_miao>0)
        {
        jieshou_miao--;
        led                =1;
        yanshi();
        jiance();
        }

}
/**************************************************/
void                yanshi()                        //延时
{
//.delay        200000;                //100ms
.delay        100000;                //50ms
}
/**************************************************/
void                jiance()                        //检测
{
yanshi();                        //100ms
if(shuju==1)                //一次检测
{
yanshi();
if(shuju==1)                //二次检测
        {/*jieshou_miao=0;*/}
yanshi();
if(shuju==1)                //三次检测
        {jieshou_miao=100;}                //10秒
yanshi();                        //400ms
}
}
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/

500ms.zip

977 Bytes

使用特权

评论回复

相关帖子

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

本版积分规则

284

主题

441

帖子

55

粉丝