📄 freqtestpro.lst
字号:
switch (temp)
{
case 0:
break;
case 1:
break;
default:
break;
}
return;
}
#endif /* UART_CMD*/
210
211 /***************************************************************
212 * Interrupt Process
213 * --------------------------------------------------------------
214 * interrupt 表示一个中断函数,属性参数为0到31的整常数
215 * 中断号 中断说明 地址
216 * 0 外部中断0 0003H
217 * 1 计时/计数器0 000BH
218 * 2 外部中断1 0013H
219 * 3 计时/计数器1 001BH
220 * 4 串口 0023H
221 * --------------------------------------------------------------
222 * 附::(13位)TH0=(8192-C)%32 TL0=(8192-C)/32 Time = C*Ts
223 * 附::(16位)TH0=(65536-C)%256 TL0=(65536-C)/256 Time = C*Ts
224 * --------------------------------------------------------------
225 ****************************************************************/
226 unsigned int timecount = 0;
227 unsigned int timeflag = 0;
228 static void Int_T0_Process(void) interrupt 1 using 0
229 {
230 1 TL0 = 256;
231 1 TH0 = 256;
232 1
233 1 timecount++;
234 1
235 1 //printf("\n Int_T0_Process timecount is %d \n", timecount);
236 1
237 1 return;
238 1 }
239
240 static void Int_E0_Process(void) interrupt 0 using 1
C51 COMPILER V8.08 FREQTESTPRO 07/25/2008 09:13:03 PAGE 5
241 {
242 1 if(timeflag == 0)
243 1 {
244 2 timeflag = 1;
245 2 TL0 = 256;
246 2 TH0 = 256;
247 2 TR0 = 1; // Start Timer 0
248 2 }
249 1 else
250 1 {
251 2 timeflag = 0;
252 2 TR0 = 0; // Close Timer 0
253 2 }
254 1
255 1 return;
256 1 }
257
258 /***************************************************************
259 * TCON: B7 B6 B5 B4 B3 B2 B1 B0
260 * TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
261 * --------------------------------------------------------------
262 * IE: B7 B6 B5 B4 B3 B2 B1 B0
263 * EA -- ET2 ES ET1 EX1 ET0 EX0
264 * --------------------------------------------------------------
265 * IP: B7 B6 B5 B4 B3 B2 B1 B0
266 * -- -- PT2 PS PT1 PX1 PT0 PX0
267 ****************************************************************/
268 void Int_Init_Api()
269 {
270 1 EA = 0;
271 1 //SP = 0x60; // Init Stack
272 1 IT0 = 0; // Low Level Trigger Int
273 1 //IT0 = 1; // Fall Edge Trigger Int
274 1 TL0 = 252;
275 1 TH0 = 28;
276 1 //ET0 = 0;
277 1 ET0 = 1;
278 1 //ES=1;
279 1 //EX0=1; // Enable Ex INT0
280 1 TR0=1; // Start Timer 0
281 1 //TR1 = 1; // Start Timer 1
282 1 EA = 1;
283 1 }
284
285 /***************************************************************
286 * Data (Digital Divide) In Select
287 * 0: Digital Divide By 64*1*1 = 64
288 * 1: Digital Divide By 64*2*1 = 128
289 * 2: Digital Divide By 64*4*1 = 256
290 * 3: Digital Divide By 64*8*1 = 512
291 * 4: Digital Divide By 64*8*1 = 512
292 * 5: Digital Divide By 64*8*2 = 1024
293 * 6: Digital Divide By 64*8*4 = 2048
294 * 7: Digital Divide By 64*8*8 = 4096
295 ****************************************************************/
296 void Freq_Data_Select(unsigned int sel)
297 {
298 1 P2 = P2&0xF8;
299 1 P2 = P2|(sel&0x7);
300 1 }
301
302 /***************************************************************
C51 COMPILER V8.08 FREQTESTPRO 07/25/2008 09:13:03 PAGE 6
303 * Systenm Init
304 ****************************************************************/
305 void Sys_Init_Api()
306 {
307 1 /* Init I/O */
308 1 P1 = 0xff;
309 1 P1 = 0xff;
310 1 P2 = 0xff;
311 1 P3 = 0x1f;
312 1
313 1 /* Init Mc Control */
314 1 P2 = P2|(1<<6); // Divide By 64
315 1 //P2 = P2&(~(1<<6)); // Divide By 256
316 1
317 1 /* Init Int */
318 1 Int_Init_Api();
319 1
320 1 /* Init Uart */
321 1 Uart_Init_Api();
322 1
323 1 /* Select Freq */
324 1 Freq_Data_Select(0); // Digital Divide By 256
325 1
326 1 timecount = 0;
327 1
328 1 return;
329 1 }
330
331 #define UART_DEBUG
332 #ifdef UART_DEBUG
333 /***************************************************************
334 * Uart Teat
335 ****************************************************************/
336 void Uart_Run_Api(void)
337 {
338 1 unsigned char tmpc;
339 1
340 1 tmpc = Uart_Rx_Api();
341 1 if(tmpc == 0)
342 1 {
343 2 return;
344 2 }
345 1
346 1 Uart_Tx_Api(tmpc);
347 1
348 1 return;
349 1 }
350 #endif
351
352 /***************************************************************
353 * Led Test
354 ****************************************************************/
355 void Led_Run_Api(void)
356 {
357 1 Led_Ctl_Api(1, LED_ON);
358 1
359 1 udelay(20000);
360 1
361 1 Led_Ctl_Api(1, LED_OFF);
362 1 }
363
364 /***************************************************************
C51 COMPILER V8.08 FREQTESTPRO 07/25/2008 09:13:03 PAGE 7
365 * main
366 ****************************************************************/
367 void main()
368 {
369 1 Sys_Init_Api();
370 1
371 1 for(;;)
372 1 {
373 2 #ifdef UART_CMD
Cmd_Parse_Api();
#endif
376 2 Led_Run_Api();
377 2
378 2 //udelay(200*200);
379 2 //printf("\n SCUTUM 频率计界面 \n");
380 2
381 2 #ifdef UART_DEBUG
382 2 Uart_Run_Api();
383 2 #endif
384 2 udelay(100);
385 2 }
386 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 343 ----
CONSTANT SIZE = 49 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 40 ----
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 + -