📄 freqtest.lst
字号:
C51 COMPILER V7.01 FREQTEST 12/16/2008 10:47:50 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE FREQTEST
OBJECT MODULE PLACED IN FreqTest.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FreqTest.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <REG51.h>
2 #include <1602_Drive.h>
3
4 /******************************************************************
5 * 定义接口: *
6 * 液晶显示器的接口“1602_Drive.h”库函数中已经定义 *
7 * 定义待测方波频率的接口: *
8 * *
9 ******************************************************************/
10 sbit FreqIN=P3^2;
11
12 //==================================================================
13 //定义中间变量
14 unsigned int tmp;
15 float cnttime;
16 unsigned char outcnt[8];
17 //==================================================================
18 //将测量的整数装换为标准有效的字符串
19 void NumToChar(void)
20 { unsigned char i;
21 1 outcnt[0]=tmp/10000+48;tmp%=10000;
22 1 outcnt[1]=tmp/1000+48;tmp%=1000;
23 1 outcnt[2]=tmp/100+48;tmp%=100;
24 1 outcnt[3]=tmp/10+48;tmp%=10;
25 1 outcnt[4]=tmp+48;
26 1 outcnt[5]='H';
27 1 outcnt[6]='z';
28 1 outcnt[7]='\0';
29 1 for(i=0;i<4;i++) //将字符中数字的最高有效位之前的'0'清空为‘ ’。
30 1 { if(outcnt[i]=='0')outcnt[i]=' ';
31 2 else break;
32 2 }
33 1 }
34 //==================================================================
35 //静态显示文本
36 void Static_LCD_Print()
37 { GotoXY(0,0);
38 1 Print("Loading....");
39 1 GotoXY(1,1);
40 1 Print("Made by wanxun");
41 1 }
42 //==================================================================
43 //动态显示数据
44 void Dynamic_LCD_Print()
45 { NumToChar();
46 1 GotoXY(0,0);
47 1 Print("Freq is: ");
48 1 Print(outcnt);
49 1 }
50
51 /******************************************************************
52 *以下为用测量脉冲周期来测量频率的方法 *
53 ******************************************************************/
54 void Initial_C51()
55 { TH0=TL0=0;
C51 COMPILER V7.01 FREQTEST 12/16/2008 10:47:50 PAGE 2
56 1 TR0=0;
57 1 TMOD=0x09;
58 1 }
59
60 void chkfreq()
61 { while(FreqIN==0);
62 1 while(FreqIN==1);
63 1 TR0=1;
64 1 while(FreqIN==0);
65 1 while(FreqIN==1);
66 1 TR0=0;
67 1 cnttime=500000/(TH0*256+TL0);
68 1 TH0=TL0=0;
69 1 tmp=(int)cnttime;
70 1 Dynamic_LCD_Print();
71 1 }
72
73
74 void main(void)
75 {
76 1 Initial_C51();
77 1 LCD_Initial();
78 1 Static_LCD_Print();
79 1 chkfreq();
80 1 while(1);
81 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 464 ----
CONSTANT SIZE = 37 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 1
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -