📄 interrupt.lst
字号:
C51 COMPILER V9.00 INTERRUPT 07/18/2012 17:58:49 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;.\1
-2864液晶) DEBUG 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 }
33 1
34 1 }
*** WARNING C280 IN LINE 19 OF USER\INTERRUPT.C: 'test': unreferenced local variable
35
36 /*外部中断1*/
37 void Input_One(void) interrupt 2 using 1
38 {
39 1 // TODO: 在此添加程序代码
40 1
41 1 }
42
43 /*T1定时中断器函数*/
44 void TIMER_One(void) interrupt 3 using 1
45 {
46 1 /*error*/
47 1 //TH1 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //给定时器赋初值
48 1 //TL1 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
49 1 /*error end*/
50 1 // TODO: 在此添加程序代码
51 1
52 1 }
53
C51 COMPILER V9.00 INTERRUPT 07/18/2012 17:58:49 PAGE 2
54 /*串口中断函数*/
55 void UART_Service(void) interrupt 4 using 1
56 {
57 1 unsigned char R_Data;
58 1 if(RI)
59 1 {
60 2 RI=0;
61 2 R_Data=SBUF;
62 2 Restart(R_Data);/*实时监测自定义下载命令*/
63 2 /*下面为实际的串口接收中断处理*/
64 2 // TODO: 在此添加程序代码
65 2
66 2 }
67 1 else
68 1 {
69 2 //TI=0;
70 2 /*下面为实际的串口发送中断处理*/
71 2 // TODO: 在此添加程序代码
72 2
73 2 }
74 1 }
75
76 void Restart(unsigned char R_Data)
77 {
78 1 static unsigned char di = 0;
79 1 if(R_Data == download[di])
80 1 {
81 2 di++;
82 2 if(download[di] == '\0')
83 2 {
84 3 EX0 = OFF; //关闭外部中断0
85 3 ET0 = OFF; //关闭T0定时器中断
86 3 TR0 = OFF; //关闭T0定时器
87 3 EX1 = OFF; //关闭外部中断1
88 3 ET1 = OFF; //关闭T1定时器中断
89 3 TR1 = OFF; //关闭T1定时器
90 3 ES = OFF; //关闭串口中断
91 3 TR1 = OFF; //关闭T1定时器
92 3 EA = OFF; //关闭总中断
93 3
94 3 /*error*/
95 3 //TH0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) / 256; //给定时器赋初值
96 3 //TL0 = (65536 - (unsigned int)(SYSTEMTIMERZERO / (float)(12 / SYSTEMFOSC))) % 256;
97 3 /*error end*/
98 3
99 3 /*此处延时1ms左右再重启系统,姑且就用11.0592MHz的晶振作为系统时钟来计算*/
100 3 TH0 = (65536 - SYSTEMRESTART) / 256;
101 3 TL0 = (65536 - SYSTEMRESTART) % 256;
102 3 TR0 = ON; //启动T0定时器
103 3
104 3 //WDT_CONTR = 0x3f; //最长看门狗定时,时间至少为1.25秒
105 3 //while(!TF0); //等待定时器溢出
106 3 //IAP_CONTR = 0x60; /*定时时间到软复位到ISP程序区*/
107 3 }
108 2 }
109 1 else
110 1 di=0;
111 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 115 ----
C51 COMPILER V9.00 INTERRUPT 07/18/2012 17:58:49 PAGE 3
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 + -