📄 irq.lst
字号:
C51 COMPILER V7.20 IRQ 09/21/2001 13:13:04 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE IRQ
OBJECT MODULE PLACED IN IRQ.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE IRQ.C LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #pragma large
3 #include "public.h"
4 sfr WDT_CONTR = 0xE1;//看门狗
5 UCHAR xdata gUartRxBuf[UART_RX_SIZE]; //串口接收缓冲区
6 UCHAR xdata gUartTxBuf[UART_TX_SIZE]; //串口发送缓冲区
7 unsigned char xdata gUartTxWrite;
8 unsigned char xdata gUartTxRead;
9 UCHAR gUart_Send_Busy;
10
11 UCHAR gMainLoopTimeOut;
12 UINT gDogCounter; //看门狗计数器
13
14
15 /*
16
17
18 中断表 索引
19 /INT0 0
20 TIMER0 1
21 /INT1 2
22 TIMER1 3
23 UART 4
24 TIMER2 5
25 /INT2 6
26 /INT3 7
27
28
29
30
31 */
32
33
34 void Timer2Int(void) interrupt 5 using 0
35 {
36 1
37 1 }
38 void Ex0Int(void) interrupt 0 using 0
39 {
40 1 }
41 void Ex1Int(void) interrupt 2 using 0
42 {
43 1 }
44 void Ex2Int(void) interrupt 6 using 0
45 {
46 1 }
47 void Ex3Int(void) interrupt 7 using 0
48 {
49 1 }
50
51
52
53
54
55 /**************************时钟中断处理函数*******************************
C51 COMPILER V7.20 IRQ 09/21/2001 13:13:04 PAGE 2
56 入口参数: 无
57
58 出口参数: 无
59
60 返 回 值: 无
61
62 功 能: 时钟中断处理函数
63
64 描 述: 50ms中断一次 公式:初值=65535-921600*s
65 /**********************************************************************/
66 void Timer1Int(void) interrupt 3 using 2
67 {
68 1 TR1=0; //禁止计数
69 1 TH1=0x00;
70 1 TL1=0x0C;
71 1 TR1=1; //允许计数
72 1
73 1 gDogCounter ++ ;
74 1
75 1 if(gDogCounter>20)//500ms
76 1 {
77 2
78 2 gDogCounter=0;
79 2 //主循环超时处理
80 2 if(gMainLoopTimeOut>0)
81 2 gMainLoopTimeOut --;
82 2 if(gMainLoopTimeOut ==0) //当程序陷入死循环或跑飞时,进行软件狗复位
83 2 {
84 3 gMainLoopTimeOut = 1;
85 3 return ;
86 3 }
87 2
88 2 //喂狗
89 2 WDT_CONTR=0x37;
90 2 if(P3_5==0)
91 2 P3_5=1;
92 2 else
93 2 P3_5=0;
94 2
95 2
96 2
97 2 }
98 1
99 1 }
100 /**************************用户串口中断处理函数*******************************
101 入口参数: 无
102
103 出口参数: 无
104
105 返 回 值: 无
106
107 功 能: 用户串口中断处理函数
108
109 描 述:
110 /**********************************************************************/
111 void SerialDte(void) interrupt 4 using 1
112 {
113 1 UCHAR ch;
114 1
115 1 //UCHAR ch;
116 1 if(RI==1)
117 1 {
C51 COMPILER V7.20 IRQ 09/21/2001 13:13:04 PAGE 3
118 2
119 2 ch=SBUF&0x7f;
120 2
121 2
122 2 RI=0;
123 2 }
124 1 if(TI==1)
125 1 {
126 2 /*if(gUartTxRead!=gUartTxWrite)
127 2 {
128 2 gUartTxRead=gUartTxRead+1;
129 2 gUartTxRead%=UART_TX_SIZE;
130 2 SBUF=gUartTxBuf[gUartTxRead]; //发送一个字符后设置标志位空闲在主循环中进行发送
131 2 }*/
132 2 TI=0;
133 2 }
134 1 }
135
136
137 unsigned char WriteTxBuf(unsigned char mData)
138 {
139 1 gUartTxWrite=gUartTxWrite+1;
140 1 gUartTxWrite%=UART_TX_SIZE;
141 1 gUartTxBuf[gUartTxWrite]=mData;
142 1 //if(TI==1)
143 1 }
*** WARNING C173 IN LINE 143 OF IRQ.C: missing return-expression
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 157 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 206 1
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -