📄 interrupt.lst
字号:
C51 COMPILER V9.00 INTERRUPT 07/18/2012 19:53:59 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE INTERRUPT
OBJECT MODULE PLACED IN interrupt.obj
COMPILER INVOKED BY: G:\Keil_51\C51\BIN\C51.EXE User\interrupt.c BROWSE INCDIR(.\Define;.\MyDseign;.\nrf24l01;.\User) DE
-BUG OBJECTEXTEND PRINT(.\interrupt.lst) TABS(2) OBJECT(interrupt.obj)
line level source
1 //*************************************//
2 // //
3 // 在该页添加所需要的中断任务 //
4 // //
5 //*************************************//
6 #include "define.h"
7 /*********************************中断服务函数************************************/
8 /*外部中断0*/
9 void Input_Zero(void) interrupt 0 using 1
10 {
11 1 // TODO: 在此添加程序代码
12 1 Int_flag = 1;
13 1 }
14
15 /*TO定时中断器函数*/
16 void TIMER_Zero(void) interrupt 1 using 1
17 {
18 1 static uchar aa = 0;
19 1 uchar test;
20 1 TH0 = 0x4C;
21 1 TL0 = 0x00;
22 1 /*error*/
23 1 //TH0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //给定时器赋初值
24 1 //TL0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
25 1 /*error end*/
26 1 // TODO: 在此添加程序代码
27 1 aa++;
28 1 if(aa == 20)
29 1 {
30 2 aa = 0;
31 2 Time_flag = 1;
32 2 miao++;
33 2 TxBuf[0] = miao;
34 2 TxBuf[1] = miao;
35 2 P2 ^= BIT0;
36 2 }
37 1
38 1 }
*** WARNING C280 IN LINE 19 OF USER\INTERRUPT.C: 'test': unreferenced local variable
39
40 /*外部中断1*/
41 void Input_One(void) interrupt 2 using 1
42 {
43 1 // TODO: 在此添加程序代码
44 1
45 1 }
46
47 /*T1定时中断器函数*/
48 void TIMER_One(void) interrupt 3 using 1
49 {
50 1 /*error*/
51 1 //TH1 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //给定时器赋初值
52 1 //TL1 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
53 1 /*error end*/
C51 COMPILER V9.00 INTERRUPT 07/18/2012 19:53:59 PAGE 2
54 1 // TODO: 在此添加程序代码
55 1
56 1 }
57
58 /*串口中断函数*/
59 void UART_Service(void) interrupt 4 using 1
60 {
61 1 unsigned char R_Data;
62 1 if(RI)
63 1 {
64 2 RI=0;
65 2 R_Data=SBUF;
66 2 Restart(R_Data);/*实时监测自定义下载命令*/
67 2 /*下面为实际的串口接收中断处理*/
68 2 // TODO: 在此添加程序代码
69 2
70 2 }
71 1 else
72 1 {
73 2 //TI=0;
74 2 /*下面为实际的串口发送中断处理*/
75 2 // TODO: 在此添加程序代码
76 2
77 2 }
78 1 }
79
80 void Restart(unsigned char R_Data)
81 {
82 1 static unsigned char di = 0;
83 1 if(R_Data == download[di])
84 1 {
85 2 di++;
86 2 if(download[di] == '\0')
87 2 {
88 3 EX0 = OFF; //关闭外部中断0
89 3 ET0 = OFF; //关闭T0定时器中断
90 3 TR0 = OFF; //关闭T0定时器
91 3 EX1 = OFF; //关闭外部中断1
92 3 ET1 = OFF; //关闭T1定时器中断
93 3 TR1 = OFF; //关闭T1定时器
94 3 ES = OFF; //关闭串口中断
95 3 TR1 = OFF; //关闭T1定时器
96 3 EA = OFF; //关闭总中断
97 3
98 3 /*error*/
99 3 //TH0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //给定时器赋初值
100 3 //TL0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
101 3 /*error end*/
102 3
103 3 /*此处延时1ms左右再重启系统,姑且就用11.0592MHz的晶振作为系统时钟来计算*/
104 3 TH0 = (65536 - SYSTEMRESTART) / 256;
105 3 TL0 = (65536 - SYSTEMRESTART) % 256;
106 3 TR0 = ON; //启动T0定时器
107 3
108 3 //WDT_CONTR = 0x3f; //最长看门狗定时,时间至少为1.25秒
109 3 //while(!TF0); //等待定时器溢出
110 3 //IAP_CONTR = 0x60; /*定时时间到软复位到ISP程序区*/
111 3 }
112 2 }
113 1 else
114 1 di=0;
115 1 }
C51 COMPILER V9.00 INTERRUPT 07/18/2012 19:53:59 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 126 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 1
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 + -