📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 11/02/2007 10:51:39 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN C:\Documents and Settings\Administrator\桌面\chengxu\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND OBJECT(C:\Documents and Settings\Administr
-ator\桌面\chengxu\main.obj)
line level source
1 #include "main.h"
2 #include "init.h"
3 #include "x5045.h"
4 #include "flux.h"
5 #include "comuni.h"
6 #include "filter.h"
7
8
9 void set_freq(uint fre) ;
10 static uchar time_H, time_L ; //存放计时时间
11 static uint time_enter ;
12
13 void main(void)
14 {
15 1 static uint time ,time_av ;
16 1 static uint time1 ,time2 ;
17 1 static uint data_send ;
18 1 static uint i ;
19 1 static uchar eleven ;
20 1
21 1 init() ;
22 1 wr_sr(0) ; //设置1.4秒的看门狗,不保护数据
23 1 TR2 = 1 ; //启动定时器 2
24 1 dog() ;
25 1 eleven = 11 ;
26 1
27 1
28 1 while(1) //循环一周的时间大约是7.5ms
29 1 {
30 2
31 2 time_enter += 1 ;
32 2
33 2 if(time_enter >= 5)
34 2 {
35 3
36 3 time = 5730 ;
37 3 eleven = 11 ;
38 3 time_enter = 10 ;
39 3 }else
40 2 {
41 3 for(i =999 ; i <= 10000 ; i ++)
42 3 {
43 4 if(i == 1000)
44 4 {
45 5 time1 = time_H ;
46 5 time1 <<= 8 ;
47 5 time1 = time1 + (uint)time_L ;
48 5 }
49 4 if(i == 9000)
50 4 {
51 5 time2 = time_H ;
52 5 time2 <<= 8 ;
53 5 time2 = time2 + (uint)time_L ;
54 5 }
C51 COMPILER V7.50 MAIN 11/02/2007 10:51:39 PAGE 2
55 4
56 4
57 4
58 4 }
59 3 if(time1 == time2)
60 3 {
61 4 time = time1 ;
62 4 }
63 3 }
64 2 // if(eleven != 11)
65 2 // {
66 2 time_av = filte(time) ;
67 2 // }else
68 2 /* {
69 2 for( i = 0 ;i <= 9 ;i ++)
70 2 {
71 2 time_av = filte(time) ;
72 2 }
73 2 eleven = 0 ;
74 2 }
75 2
76 2 */
77 2
78 2 dog() ;
79 2 data_send = press(time_av) ; //计算压力
80 2
81 2 comuni(data_send) ;
82 2 // comuni(time_av) ;
83 2 set_freq(data_send) ;
84 2
85 2 dog() ;
86 2
87 2 }
88 1 }
89
90
91
92
93
94 void measure_freq(void) interrupt 0 //外部中断 0 压频输入
95 {
96 1 static uchar ss = 0 ;
97 1 if(ss == 0) //注意是双等号 ==
98 1 {
99 2 TH1 = 0 ; //16位定时器1测量频率的周期
100 2 TL1 = 0 ;
101 2 TR1 = 1 ;
102 2 ss = 1 ;
103 2 time_enter = 0 ;
104 2 return ;
105 2 }
106 1 if(ss == 1)
107 1 {
108 2 TR1 = 0 ;
109 2 time_H = TH1 ;
110 2 time_L = TL1 ;
111 2 ss = 0 ;
112 2 time_enter = 0 ;
113 2 return ;
114 2 }
115 1
116 1 }
C51 COMPILER V7.50 MAIN 11/02/2007 10:51:39 PAGE 3
117
118
119
120
121
122 /*
123 void measure_freq(void) interrupt 2 //外部中断 1 流量输入中断
124 {
125 static uchar ss=0;
126 if(ss == 0) //注意是双等号 ==
127 {
128 TH1=0; //16位定时器1测量频率的周期
129 TL1=0;
130 TR1=1;
131 ss=1;
132 time_inter = 0 ;
133 return ;
134 }
135 else
136 {
137 TR1=0;
138 flux_H=TH1;
139 flux_L=TL1;
140 ss=0;
141 time_inter = 0 ;
142 return ;
143 }
144
145 }
146
147 */
148 void timer2_isr (void) interrupt 5
149 {
150 1 TF2 = 0;
151 1 OUT4 = !OUT4 ;
152 1 return ;
153 1 }
154
155
156
157 void set_freq(uint fre)
158 {
159 1 uint rcap_press , press_set;
160 1 uint press ;
161 1 press = fre ;
162 1 press_set = press * 0.8 + 200 ; //转换成频率输出
163 1 rcap_press = 65536 - 1000000 / (press_set * 2);
164 1 RCAP2H = rcap_press >> 8 ;
165 1 RCAP2L = rcap_press ;
166 1
167 1
168 1 }
169
170
171
172
173
174 /*x5045复位看门狗函数~~~~~~~~~~~~~*/
175 void dog(void)
176 {
177 1 CS=0;
178 1 CS=1;
C51 COMPILER V7.50 MAIN 11/02/2007 10:51:39 PAGE 4
179 1 }
180
181
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 323 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 ----
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 + -