📄 interruptservice.lst
字号:
C51 COMPILER V7.20 INTERRUPTSERVICE 11/09/2002 21:11:14 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE INTERRUPTSERVICE
OBJECT MODULE PLACED IN InterruptService.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Interrupt\InterruptService.c BROWSE DEBUG OBJECTEXTEND PRINT(.\InterruptSer
-vice.lst) OBJECT(InterruptService.obj)
line level source
1 /*############################################################
2 文件名: InterruptService.c
3 功能: 所有中断服务函数实现
4 单位: 浙江工商大学-信电学院
5 创建日期:2004-09-24
6 创建人: Houseivan
7 修改人: Houseivan
8 修改日期:2005-03-11
9 ############################################################*/
10 #include"Includes.h"
11
12 /*检查是否需要提供系统中断服务*/
13 #if _SYS_INTERRUPT>0
14 extern uchar data MeasureTimer; //测量用定时器1s=50x20ms
15 extern uchar data SampleTimer; //系统数据刷新定时器1min=60x1s
16 extern uchar data StoreTimer; //存储采样定时器1Hour=60x1min
17 /*------------------中断函数声明地址区---------------------------------*/
18 #if _DETECT_TASK>0
19 extern uint data HumiCounter; //湿度计数器
20 extern uint data TempCounter; //温度计数器
21
22 /*############################################################
23 名称: HumidityCounter()
24 功能: 外部中断0用于代替counter1计数湿度脉冲
25 注意: 必须设置成边沿触发方式
26 ############################################################*/
27 void HumidityCounter() interrupt 0
28 {
29 1 HumiCounter++;
30 1 }
31
32 #endif
33
34 /*############################################################
35 名称: TemperatureCounter()
36 功能: 计数器0对温度频率进行计数
37 注意: 结果存放到TempCounter
38 void Temperature_Counter() interrupt 1 {}
39 ############################################################*/
40
41 /*############################################################
42 名称: Extern1Service()
43 功能: 保留外部中断1
44 注意:
45 void Extern1Service() interrupt 2 {}
46 ############################################################*/
47 //sbit Wdog=P2^5;
48 //#define ClearWatchDog() {Wdog=1; ; ; ; ; Wdog=0;}
49 /*############################################################
50 名称: Timer20ms()
51 功能: 20ms定时功能
52 注意: 1000ms=40 x 25 ms
53 最大定时时间:42666.666666666666666666666666667us=43ms
54 40ms fosc=18.432M 0x112c /12MHZ 0x63c0
C51 COMPILER V7.20 INTERRUPTSERVICE 11/09/2002 21:11:14 PAGE 2
55 ############################################################*/
56 void Timer20ms() interrupt 3
57 {
58 1 //EnterCritical();
59 1
60 1 MeasureTimer++;
61 1 if(MeasureTimer>_MEASURE_ALARM) //==50这个值要被使用
62 1 {
63 2 MeasureTimer=0;
64 2 SampleTimer++; //一分钟定时器
65 2 if(SampleTimer>_SAMPLE_ALARM) //==60这个值要被使用
66 2 {
67 3 SampleTimer=0;
68 3 StoreTimer++; //一个小时定时器
69 3 if(StoreTimer>_STORE_ALARM)
70 3 StoreTimer=0;
71 3 }
72 2 }
73 1 ClearWatchDog();
74 1 TH1=_TIMER1_H;
75 1 TL1=_TIMER1_L;
76 1 //ExitCritical();
77 1 }
78
79
80 /*############################################################
81 名称: ScomService()
82 功能: 串行中断服务函数
83 注意:
84 void ScomService() interrupt 4
85 ############################################################*/
86 /*############################################################
87 名称: BaudSetupTimer2()
88 功能: 串行中断服务函数
89 注意: 该设备在本系统中作为波特率发生器使用
90 ############################################################*/
91 /*###########################################################
92 void BaudSetupTimer2() interrupt 5
93 {}
94 ############################################################*/
95 /*----------------------------------------------------------------------*/
96 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 68 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -