📄 freqen.lst
字号:
C51 COMPILER V7.50 FREQEN 03/13/2008 13:49:22 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE FREQEN
OBJECT MODULE PLACED IN Freqen.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Freqen.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //--------------------------------------------------------------------
2
3 //模块:Freqen.C
4
5 //功能:频率计模块
6
7 //晶振:24.000MHz
8
9 //芯片: STC12C5412AD
10 #include "stc12c5412ad.h"
11 //#ifndef lcd12864_driver_new
12 //#include "lcd12864_driver_new.h"
13 //#endif
14
15 #define uchar unsigned char
16
17 #define uint unsigned int
18
19 extern uchar keyfuncindex;
20
21 void dis_cls(void);
22
23 extern void d0(void);
24
25 extern void lcd_init(void);
26
27 extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
28
29 extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
30
31 extern void delay(uint time);
32
33 extern uchar bdata gate;
34
35 extern void beep(uint time);
36
37 void sel_x(uchar x); //74HC390 分频系数选择1,10,100
38
39 void delay_1(uchar time);
40
41 extern uchar temp_l,temp_h;
42
43 extern uchar i;
44
45 extern unsigned char code x43[];// 量
46
47 extern unsigned char code x44[];// 程
48
49 extern unsigned char code x45[];// 切
50
51 extern unsigned char code x46[];// 换
52
53 extern unsigned char code x47[];// 请
54
55 extern unsigned char code x48[];// 稍
C51 COMPILER V7.50 FREQEN 03/13/2008 13:49:22 PAGE 2
56
57 extern unsigned char code x49[];// 候
58
59 extern unsigned char code x50[];// …
60
61 extern unsigned char code x51[];// 周
62
63 extern unsigned char code x52[];// 期
64
65 extern unsigned char code x7[]; // 频
66
67 extern unsigned char code x8[]; // 率
68
69 extern uint temp0,temp1,temp2,temp3,temp4;
70
71 uchar a1,a2;
72
73 sbit sel_1=P1^6;
74
75 sbit sel_10=P1^4;
76
77 sbit sel_100=P3^4;
78
79 sbit p3_5=P3^5;
80
81 bit clr_flag0=0;
82
83 bit clr_flag1=0;
84
85 bit clr_flag2=0;
86
87 bit clr_flag3=0;
88
89 bit clr_flag4=0;
90
91 sbit key0=P3^0;
92
93 sbit key1=P3^1;
94
95 //--------------------------------------------------------------------
96
97 void timer_init()
98
99 {
100 1
101 1 TMOD=0xd1; //T1 做门控计数
102 1
103 1 TH1=0;
104 1
105 1 TL1=0;
106 1
107 1 TH0=0x3c;
108 1
109 1 TL0=0xb0;
110 1
111 1 ET0=1;
112 1
113 1 EA=1;
114 1
115 1 TR0=1;
116 1
117 1 TR1=1;
C51 COMPILER V7.50 FREQEN 03/13/2008 13:49:22 PAGE 3
118 1
119 1 p3_5=1;
120 1
121 1 }
122
123 //--------------------------------------------------------------------
124
125 void time_up() interrupt 1 using 3
126
127 {
128 1
129 1 TH0=0x3c;
130 1
131 1 TL0=0xb0;
132 1
133 1 if(++i==gate)
134 1
135 1 {
136 2
137 2 TR1=0;
138 2
139 2 temp_l=TL1;
140 2
141 2 temp_h=TH1;
142 2
143 2 TH1=0;
144 2
145 2 TL1=0;
146 2
147 2 i=0;
148 2
149 2 TR1=1;
150 2
151 2 }
152 1
153 1 }
154
155 //--------------------------------------------------------------------
156
157 void sel_x(uchar x) //74HC390 分频系数选择1,10,100
158
159 {
160 1
161 1 switch(x)
162 1
163 1 {
164 2
165 2 case 1:
166 2
167 2 {
168 3
169 3 sel_1=1;
170 3
171 3 sel_10=0;
172 3
173 3 sel_100=0;
174 3
175 3 break;
176 3
177 3 }
178 2
179 2
C51 COMPILER V7.50 FREQEN 03/13/2008 13:49:22 PAGE 4
180 2
181 2 case 10:
182 2
183 2 {
184 3
185 3 sel_1=0;
186 3
187 3 sel_10=1;
188 3
189 3 sel_100=0;
190 3
191 3 break;
192 3
193 3 }
194 2
195 2
196 2
197 2 case 100:
198 2
199 2 {
200 3
201 3 sel_1=0;
202 3
203 3 sel_10=0;
204 3
205 3 sel_100=1;
206 3
207 3 break;
208 3
209 3 }
210 2
211 2 default:
212 2
213 2 break;
214 2
215 2 }
216 1
217 1 }
218
219 //--------------------------------------------------------------------
220
221 void temp_to_tempx(uint temp)
222
223 {
224 1
225 1 temp0=temp/10000;
226 1
227 1 temp1=(temp-(temp0*10000))/1000;
228 1
229 1 temp2=(temp-(temp0*10000)-(temp1*1000))/100;
230 1
231 1 temp3=(temp-(temp0*10000)-(temp1*1000)-(temp2*100))/10;
232 1
233 1 temp4=temp%10;
234 1
235 1 }
236
237 //--------------------------------------------------------------------
238
239 void dis_mod(unsigned long temp,uchar point,uchar danwei)
240
241 {
C51 COMPILER V7.50 FREQEN 03/13/2008 13:49:22 PAGE 5
242 1
243 1
244 1
245 1 uchar danwei_t;
246 1
247 1
248 1
249 1 temp_to_tempx(temp);
250 1
251 1
252 1
253 1 dis_one_zi(0,0,x7,1,1);//频
254 1
255 1 dis_one_zi(0,1,x8,1,1);//率
256 1
257 1
258 1
259 1 dis_one_char(0,11,0x7f,0);
260 1
261 1 dis_one_char(0,12,danwei,1);
262 1
263 1 dis_one_char(0,13,'H',1);
264 1
265 1 dis_one_char(0,14,'z',1);
266 1
267 1 dis_one_char(0,15,0x7f,0);
268 1
269 1 dis_one_char(0,4,0x7f,0);
270 1
271 1 if(temp0!=0)
272 1
273 1 {
274 2
275 2 dis_one_char(0,5,temp0+0x30,1);
276 2
277 2 clr_flag0=0;
278 2
279 2 }
280 1
281 1 else
282 1
283 1 dis_one_char(0,5,0x7f,0);
284 1
285 1 clr_flag0=1;
286 1
287 1
288 1
289 1 dis_one_char(0,10,temp4+0x30,1);
290 1
291 1 dis_one_char(0,9,temp3+0x30,1);
292 1
293 1 switch (point)
294 1
295 1 {
296 2
297 2
298 2
299 2 case 0:
300 2
301 2 {
302 3
303 3 dis_one_char(0,5,temp0+0x30,1);
C51 COMPILER V7.50 FREQEN 03/13/2008 13:49:22 PAGE 6
304 3
305 3 dis_one_char(0,6,'.',1);
306 3
307 3 dis_one_char(0,7,temp1+0x30,1);
308 3
309 3 dis_one_char(0,8,temp2+0x30,1);
310 3
311 3 break;
312 3
313 3 }
314 2
315 2
316 2
317 2 case 1:
318 2
319 2 {
320 3
321 3 if(temp1==0 && temp0==0)
322 3
323 3 dis_one_char(0,5,0x7f,0);
324 3
325 3 dis_one_char(0,6,temp1+0x30,1);
326 3
327 3 dis_one_char(0,7,'.',1);
328 3
329 3 dis_one_char(0,8,temp2+0x30,1);
330 3
331 3 break;
332 3
333 3 }
334 2
335 2
336 2
337 2 case 2:
338 2
339 2 {
340 3
341 3 dis_one_char(0,6,temp1+0x30,1);
342 3
343 3 if(temp1==0 && temp0==0)
344 3
345 3 dis_one_char(0,6,0x7f,0);
346 3
347 3 dis_one_char(0,7,temp2+0x30,1);
348 3
349 3 dis_one_char(0,8,'.',1);
350 3
351 3 break;
352 3
353 3 }
354 2
355 2 default:
356 2
357 2 break;
358 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -