8a1da44947bc9d4a0d5f607265cc0dd347f5c362.svn-base 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. C51 COMPILER V9.53.0.0 KEYS 09/30/2018 11:45:29 PAGE 1
  2. C51 COMPILER V9.53.0.0, COMPILATION OF MODULE KEYS
  3. OBJECT MODULE PLACED IN .\Output\Keys.obj
  4. COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\..\Code\User\Driver\Keys.c LARGE OPTIMIZE(0,SPEED) BROWSE INCDIR(../.
  5. -./Code/Include;../../Code/User;../../Code/User/Common;../../Code/User/Driver) DEFINE(FOSC_160000=1) DEBUG OBJECTEXTEND P
  6. -RINT(.\Output\LST\Keys.lst) TABS(2) OBJECT(.\Output\Keys.obj)
  7. line level source
  8. 1 /**
  9. 2 * @File: Keys.c
  10. 3 * @Author: Kinve JQ
  11. 4 * @Version: V0.1
  12. 5 * @Date: 2018.09.30
  13. 6 * @Brief:
  14. 7 * @Modify:
  15. 8 2018.09.30.Kinve:1.创建文件
  16. 9 **/
  17. 10
  18. 11 #include "Keys.h"
  19. 12
  20. 13 /********************************方式2*******************************/
  21. 14 u8 GetKey_CS(void)
  22. 15 {
  23. 16 1 return !P17; //按下
  24. 17 1 }
  25. 18
  26. 19
  27. 20 volatile pKey Keys[KEY_MAX] =
  28. 21 {
  29. 22 {KEY_CS, GetKey_CS, KEY_UP_FLAG, 0, 0, 0, NO_KEY_FLAG},
  30. 23 };
  31. 24
  32. 25 void Keys_Even(void) //20ms
  33. 26 {
  34. 27 1 u8 i;
  35. 28 1 for ( i = 0; i < KEY_MAX; i++ )
  36. 29 1 {
  37. 30 2 if ( Keys[i].GetKey() )
  38. 31 2 {
  39. 32 3 Keys[i].DnTime++;
  40. 33 3
  41. 34 3 if ( Keys[i].DnTime == CANCEL_KEY_DOWN ) //80ms
  42. 35 3 {
  43. 36 4 Keys[i].Res = ONE_HITS_KEY_FLAG;
  44. 37 4 }
  45. 38 3 else if ( Keys[i].DnTime == LONG_KEY_DOWN ) //3秒,长按
  46. 39 3 {
  47. 40 4 Keys[i].Res = LONG_KEY_FLAG;
  48. 41 4 }
  49. 42 3 }
  50. 43 2 else
  51. 44 2 {
  52. 45 3 Keys[i].DnTime = 0;
  53. 46 3 }
  54. 47 2 }
  55. 48 1
  56. 49 1 }
  57. 50
  58. 51
  59. 52 void Key_CS_Hanlder(void);
  60. 53 void Key_CS_Long_Hanlder(void);
  61. C51 COMPILER V9.53.0.0 KEYS 09/30/2018 11:45:29 PAGE 2
  62. 54 void Key_JS_Hanlder(void);
  63. 55 void Key_JS_Long_Hanlder(void);
  64. 56 void Keys_All_Handler(void)
  65. 57 {
  66. 58 1 if(Keys[KEY_CS].Res == ONE_HITS_KEY_FLAG)
  67. 59 1 {
  68. 60 2 Keys[KEY_CS].Res = NO_KEY_FLAG;
  69. 61 2 Key_CS_Hanlder();
  70. 62 2 }
  71. 63 1 else if(Keys[KEY_CS].Res == LONG_KEY_FLAG)
  72. 64 1 {
  73. 65 2 Keys[KEY_CS].Res = NO_KEY_FLAG;
  74. 66 2 Key_CS_Long_Hanlder();
  75. 67 2 }
  76. 68 1 }
  77. 69
  78. 70
  79. 71 /****************************按键处理***********************************/
  80. 72 void Key_JS_Hanlder ( void )
  81. 73 {
  82. 74 1 #if 0
  83. if ( SysRunType == SysRun_Norm )
  84. {
  85. StopBeep();
  86. }
  87. #endif
  88. 81 1 }
  89. 82
  90. 83 #if 0
  91. void soft_reset(void)
  92. {
  93. ((void (code *) (void)) 0x0000) ();
  94. }
  95. #endif
  96. 89 void Key_CS_Hanlder ( void )
  97. 90 {
  98. 91 1 #if 0
  99. switch ( SysRunType )
  100. {
  101. case SysRun_Norm:
  102. SysRunType = SysRun_Test;
  103. sysLed_Set ( LED_MODE_TEST_RUN );
  104. break;
  105. case SysRun_Test:
  106. SysRunType = SysRun_Norm;
  107. sysLed_Set ( LED_MODE_WORK_RUN );
  108. break;
  109. }
  110. Fas_Param_Of_Mode_Change ( SysRunType );
  111. #endif
  112. 107 1
  113. 108 1 }
  114. 109
  115. 110 void Key_JS_Long_Hanlder ( void )
  116. 111 {
  117. 112 1
  118. 113 1 }
  119. 114
  120. 115 void Key_CS_Long_Hanlder ( void)
  121. C51 COMPILER V9.53.0.0 KEYS 09/30/2018 11:45:29 PAGE 3
  122. 116 {
  123. 117 1 }
  124. 118
  125. 119 void WaitKey_GotoTest ( void )
  126. 120 {
  127. 121 1 #if 0
  128. static bool Can_enter_Factory = TRUE;
  129. if ( sys_rtc_time <= 10 ) //启动10秒内,按下Key_CS
  130. {
  131. if ( Can_enter_Factory )
  132. {
  133. Can_enter_Factory = FALSE;
  134. SysRunType = SysRun_Test;
  135. sysLed_Set ( LED_MODE_TEST_RUN );
  136. }
  137. }
  138. #endif
  139. 135 1 }
  140. 136
  141. 137 /********************* (C) COPYRIGHT Kinve JQ *******END OF FILE ********/
  142. 138
  143. 139
  144. MODULE INFORMATION: STATIC OVERLAYABLE
  145. CODE SIZE = 274 ----
  146. CONSTANT SIZE = ---- ----
  147. XDATA SIZE = 12 ----
  148. PDATA SIZE = ---- ----
  149. DATA SIZE = ---- ----
  150. IDATA SIZE = ---- ----
  151. BIT SIZE = ---- ----
  152. END OF MODULE INFORMATION.
  153. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)