📄 frequencymeter.lst
字号:
C51 COMPILER V7.20 FREQUENCYMETER 02/10/2009 18:41:23 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE FREQUENCYMETER
OBJECT MODULE PLACED IN frequencymeter.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE frequencymeter.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************************************************************************************************
2 * FUNCTION NAME:等精度频率计 *
3 *`CREATE DATE :2007.7.02 *
4 * CREATED BY :wu zhi zhong ,ChongQing Institute of Technology *
5 * MODEIFY DATE :2007.7.05 *
6 * INPUT :frequency *
7 * OUTPUT :frequency *
8 *
9 /*************************************************************************************************/
10 #include<reg51.h>
11 #include<stdio.h>
12 #include<lcd.c>
13 #include<math.h>
14 sbit p32=P3^2;
15 main()
16 {
17 1 unsigned long int period,k,i=0;
18 1 float f,m;
19 1 char buff[30];
20 1 init_LCD();
21 1 P2=0x00;
22 1 while(1)
23 1 {
24 2 TMOD=0X09;
25 2 TH0=0;
26 2 TL0=0;
27 2 while(p32==1);
28 2 TR0=1;
29 2 while(p32==0);
30 2 while(p32==1);
31 2 TR0=0;
32 2 period=TH0*256+TL0;
33 2 while(period<=500) /*判断是否分频及计算分频次数*/
34 2 { P2++;
35 3 i++;
36 3 period=period*10;
37 3 if(i==6)
38 3 {P2=0x00;
39 4 break;
40 4 }
41 3 }
42 2 k=pow(10,i); /* 10的i次方*/
43 2 f=(1000000.0/(2*period))*k;
44 2 if(f<1000)
45 2 sprintf(buff,"f=%8.4fHZ",f);
46 2 else
47 2 {m=f/1000.0;
48 3 sprintf(buff,"f=%8.4fKHZ",m);
49 3 }
50 2 lcdprintf(0,0,buff);
51 2 }
52 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.20 FREQUENCYMETER 02/10/2009 18:41:23 PAGE 2
CODE SIZE = 545 ----
CONSTANT SIZE = 45 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 46
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 + -