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