/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
// 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;
}
*/
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
|