打印

按键开灯

[复制链接]
12|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2025-1-31 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
// pms150g   ________   _________
//       5v-|1 vdd   \_/    gnd 8|
//         -|2 pa7          pa0 7|-
//         -|3 pa6          pa4 6|-pwm
//       k1-|4 pa5__________pa3 5|-
#include        "extern.h"
k1                bit                pa.5;
led                bit                pa.4;
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
void        FPPA0 (void)
{
.ADJUST_IC        SYSCLK=IHRC/16                //        SYSCLK=IHRC/4//系统时钟1MHZ
//.ADJUST_IC        SYSCLK=ILRC (IHRC/16), IHRC=16MHz;//, VDD=5V;

$                k1                in,ph;                        //输入,上拉电阻
$                led                out,Low;                //输出,低
byte        a1                =0;                                //状态机,0停,1全亮,2半亮,3闪
.delay        500000;
while (1)
{
if(a1 ==0)                                        //停机模式
        {
        $                led                out,Low;//输出,低
        CLKMD                =0xf4;                //系统时钟从ICRC切换ILRC
        CLKMD.4                =0;                        //IHRC停用
                while(1)
                {
                STOPSYS;                        //进入掉电模式
                if(k1 ==0){break;}
                }
        CLKMD                =0b0001_1100;//切换到IHRC/16
        .delay                100;
        a1                        =1;                        //切换为开机状态
        }
.delay 1000000;

if(a1 ==1)                                        //开机模式
        {
        $        led                out,high;        //输出,高
        CLKMD                =0xf4;                //系统时钟从IHCRC切换ILRC
        CLKMD.4                =0;                        //IHRC停用
        while(1)
                {
                STOPSYS;                        //进入掉电模式
                if(k1 ==0){break;}
                }
        CLKMD                =0b0001_1100;//切换到IHRC/16
        .delay                100;
        a1                        =0;                        //切换为关机状态
        }

.delay 1000000;

}
}

/*
void        Interrupt (void)
{
        pushaf;

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

        popaf;
}

*/
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/


使用特权

评论回复

相关帖子

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

本版积分规则

303

主题

460

帖子

62

粉丝