2883b861383cd47c8982d537fe1bb606a7448ba2.svn-base 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. C51 COMPILER V9.53.0.0 INTERRUPT 09/30/2018 11:45:28 PAGE 1
  2. C51 COMPILER V9.53.0.0, COMPILATION OF MODULE INTERRUPT
  3. OBJECT MODULE PLACED IN .\Output\Interrupt.obj
  4. COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\..\Code\User\Common\Interrupt.c LARGE OPTIMIZE(0,SPEED) BROWSE INCDIR
  5. -(../../Code/Include;../../Code/User;../../Code/User/Common;../../Code/User/Driver) DEFINE(FOSC_160000=1) DEBUG OBJECTEXT
  6. -END PRINT(.\Output\LST\Interrupt.lst) TABS(2) OBJECT(.\Output\Interrupt.obj)
  7. line level source
  8. 1 /******************************************************************************/
  9. 2 /* -- 居加居-- */
  10. 3 /*
  11. 4 // 文件名:
  12. 5 // 说明:
  13. 6 // 编写人员:kinve
  14. 7 // 编写日期:2018-8-21
  15. 8 // 程序维护:
  16. 9 // 维护记录:
  17. 10 //
  18. 11 //
  19. 12 */
  20. 13 // 免责声明:
  21. 14 // (c) Anxinke Corporation. All rights reserved.
  22. 15 /******************************************************************************/
  23. 16 #include "Interrupt.h"
  24. 17 #include "Timer.h"
  25. 18 #include "Keys.h"
  26. 19
  27. 20 uint32 sys_ms = 0;
  28. 21 uint16 TaskTime = 0;
  29. 22
  30. 23
  31. 24
  32. 25 struct bit_def Status0, Status1;
  33. 26
  34. 27 /*
  35. 28 源 中断地址 中断号 源 中断址地 中断号
  36. 29 复位 0000H - SPI 中断 004BH 9
  37. 30 外部中断0 0003H 0 WDT 中断 0053H 10
  38. 31 定时器0溢出 000BH 1 ADC 中断 005BH 11
  39. 32 外部中断 1 0013H 2 定时器输入捕获中断 0063H 12
  40. 33 定时器1溢出 001BH 3 PWM 中断 006BH 13
  41. 34 串口 0 中断 0023H 4 故障刹车中断 0073H 14
  42. 35 定时器2事件 002BH 5 串口1中断 007BH 15
  43. 36 I2C状态/超时中断 0033H 6 定时器3溢出中断 0083H 16
  44. 37 管脚中断 003BH 7 WKT自唤醒定时器中断 008BH 17
  45. 38 欠压检测中断 0043H 8
  46. 39 */
  47. 40 /*********************************************************************************************************
  48. -***
  49. 41 * TIMER 0 interrupt subroutine
  50. 42 **********************************************************************************************************
  51. -**/
  52. 43 #ifdef N76E003_IAR
  53. #pragma vector=0x0B
  54. __interrupt void Timer0_ISR ( void )
  55. #else
  56. 47 void Timer0_ISR ( void ) interrupt 1 //interrupt address is 0x000B
  57. 48 #endif
  58. 49 {
  59. 50 1 TH0 = HIBYTE ( Timer0_THTL );
  60. 51 1 TL0 = LOBYTE ( Timer0_THTL );
  61. C51 COMPILER V9.53.0.0 INTERRUPT 09/30/2018 11:45:28 PAGE 2
  62. 52 1
  63. 53 1 sys_ms += TIMER_SCAN;
  64. 54 1
  65. 55 1 if ( sys_ms >= 86400000 ) //2^32 >= 24个小时
  66. 56 1 {
  67. 57 2 sys_ms = 0;
  68. 58 2 }
  69. 59 1
  70. 60 1 TaskTime += TIMER_SCAN; //0~8000
  71. 61 1
  72. 62 1 if ( TaskTime % 2 == 0 )
  73. 63 1 {
  74. 64 2 System_Flag_2Ms = 1;
  75. 65 2 }
  76. 66 1
  77. 67 1 if ( TaskTime % 10 == 0 )
  78. 68 1 {
  79. 69 2 System_Flag_10Ms = 1;
  80. 70 2 //T10MS_Count_Handler();
  81. 71 2 }
  82. 72 1
  83. 73 1 if ( TaskTime % 20 == 0 )
  84. 74 1 {
  85. 75 2 System_Flag_20Ms = 1;
  86. 76 2 Keys_Even();
  87. 77 2 }
  88. 78 1
  89. 79 1 if ( TaskTime % 100 == 0 )
  90. 80 1 {
  91. 81 2 System_Flag_100Ms = 1;
  92. 82 2 }
  93. 83 1
  94. 84 1 if ( TaskTime % 200 == 0 )
  95. 85 1 {
  96. 86 2 System_Flag_200Ms = 1;
  97. 87 2 }
  98. 88 1
  99. 89 1 if ( TaskTime % 500 == 0 )
  100. 90 1 {
  101. 91 2 System_Flag_500Ms = 1;
  102. 92 2 }
  103. 93 1
  104. 94 1 if ( TaskTime % 1000 == 0 )
  105. 95 1 {
  106. 96 2 System_Flag_1s = 1;
  107. 97 2 }
  108. 98 1
  109. 99 1 if ( TaskTime % 5000 == 0 )
  110. 100 1 {
  111. 101 2 System_Flag_5s = 1;
  112. 102 2 TaskTime = 0;
  113. 103 2 }
  114. 104 1
  115. 105 1 /*
  116. 106 1 if ( BeepCounter )
  117. 107 1 {
  118. 108 1 if ( --BeepCounter == 0 ) StopBeep();
  119. 109 1 }
  120. 110 1 */
  121. 111 1 }
  122. 112
  123. 113 /*********************************************************************************************************
  124. C51 COMPILER V9.53.0.0 INTERRUPT 09/30/2018 11:45:28 PAGE 3
  125. -***
  126. 114 * TIMER 1 interrupt subroutine
  127. 115 **********************************************************************************************************
  128. -**/
  129. 116 #ifdef N76E003_IAR
  130. #pragma vector=0x1B
  131. __interrupt void Timer1_ISR ( void )
  132. #else
  133. 120 void Timer1_ISR ( void ) interrupt 3 //interrupt address is 0x001B
  134. 121 #endif
  135. 122 {
  136. 123 1
  137. 124 1 }
  138. 125
  139. 126
  140. 127 /*
  141. 128 中断源 中断地址 中断号
  142. 129 复位 0000H -
  143. 130 外部中断0 0003H 0
  144. 131 定时器0溢出 000BH 1
  145. 132 外部中断1 0013H 2
  146. 133 定时器1溢出 001BH 3
  147. 134 串口0 中断 0023H 4
  148. 135 定时器2事件 002BH 5
  149. 136 I2C状态/超时中断 0033H 6
  150. 137 管脚中断 003BH 7
  151. 138 欠压检测中断 0043H 8
  152. 139 SPI中断 004BH 9
  153. 140 WDT中断 0053H 10
  154. 141 ADC中断 005BH 11
  155. 142 定时器输入捕获中断 0063H 12
  156. 143 PWM中断 006BH 13
  157. 144 故障刹车中断 0073H 14
  158. 145 串口1中断 007BH 15
  159. 146 定时器3溢出中断 0083H 16
  160. 147 WKT自唤醒定时器中断 008BH 17
  161. 148 */
  162. MODULE INFORMATION: STATIC OVERLAYABLE
  163. CODE SIZE = 440 ----
  164. CONSTANT SIZE = ---- ----
  165. XDATA SIZE = 8 ----
  166. PDATA SIZE = ---- ----
  167. DATA SIZE = ---- ----
  168. IDATA SIZE = ---- ----
  169. BIT SIZE = ---- ----
  170. END OF MODULE INFORMATION.
  171. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)