按键开灯

[复制链接]
 楼主| 34af9uc 发表于 2025-1-31 10:51 | 显示全部楼层 |阅读模式
  1. /**************************************************/
  2. /**************************************************/
  3. /**************************************************/
  4. /**************************************************/
  5. /**************************************************/
  6. // pms150g   ________   _________
  7. //       5v-|1 vdd   \_/    gnd 8|
  8. //         -|2 pa7          pa0 7|-
  9. //         -|3 pa6          pa4 6|-pwm
  10. //       k1-|4 pa5__________pa3 5|-
  11. #include        "extern.h"
  12. k1                bit                pa.5;
  13. led                bit                pa.4;
  14. /**************************************************/
  15. /**************************************************/
  16. /**************************************************/
  17. /**************************************************/
  18. void        FPPA0 (void)
  19. {
  20. .ADJUST_IC        SYSCLK=IHRC/16                //        SYSCLK=IHRC/4//系统时钟1MHZ
  21. //.ADJUST_IC        SYSCLK=ILRC (IHRC/16), IHRC=16MHz;//, VDD=5V;

  22. $                k1                in,ph;                        //输入,上拉电阻
  23. $                led                out,Low;                //输出,低
  24. byte        a1                =0;                                //状态机,0停,1全亮,2半亮,3闪
  25. .delay        500000;
  26. while (1)
  27. {
  28. if(a1 ==0)                                        //停机模式
  29.         {
  30.         $                led                out,Low;//输出,低
  31.         CLKMD                =0xf4;                //系统时钟从ICRC切换ILRC
  32.         CLKMD.4                =0;                        //IHRC停用
  33.                 while(1)
  34.                 {
  35.                 STOPSYS;                        //进入掉电模式
  36.                 if(k1 ==0){break;}
  37.                 }
  38.         CLKMD                =0b0001_1100;//切换到IHRC/16
  39.         .delay                100;
  40.         a1                        =1;                        //切换为开机状态
  41.         }
  42. .delay 1000000;

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

  57. .delay 1000000;

  58. }
  59. }

  60. /*
  61. void        Interrupt (void)
  62. {
  63.         pushaf;

  64.         if (Intrq.T16)
  65.         {        //        T16 Trig
  66.                 //        User can add code
  67.                 Intrq.T16        =        0;
  68.                 //...
  69.         }

  70.         popaf;
  71. }

  72. */
  73. /**************************************************/
  74. /**************************************************/
  75. /**************************************************/
  76. /**************************************************/


319

主题

487

帖子

63

粉丝
快速回复 在线客服 返回列表 返回顶部