📄 measure.lst
字号:
C51 COMPILER V7.06 MEASURE 04/09/2005 13:15:56 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MEASURE
OBJECT MODULE PLACED IN measure.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE measure.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "iic.h"
2 #include "ads1100.h"
3 #include "lcd.h"
4 #include "measure.h"
5 #include "math.h"
6 #include "system.h"
7
8 idata ushort value[7];
9 extern code ushort degree[7];
10
11 void displayvalue(float fvalue)
12 {
13 1 uchar i,buf[20];
14 1
15 1 for(i=0;i<18;i++)
16 1 buf[i] = ' ';
17 1 buf[i] = 0;
18 1 printstring16x(0,8,12,buf);
19 1
20 1 sprintf(buf,"%4.2fNTU",fvalue);
21 1 printstring16x(0,8,12,buf);
22 1 }
23
24 float calculate(ushort x)
25 {
26 1 float f;
27 1 uchar i;
28 1
29 1 for(i=0;i<7;i++)
30 1 {
31 2 if(x < value[i])
32 2 break;
33 2 }
34 1 if(i)
35 1 {
36 2 if(i>6)
37 2 f = 1000.0;
38 2 else
39 2 f = degree[i-1]+(float)(x-value[i-1])/(float)(value[i]-value[i-1])*(float)(degree[i]-degree[i-1]);
40 2 }
41 1 else
42 1 f = 0.0;
43 1
44 1 if(f > 1000.0)
45 1 f = 1000.0;
46 1
47 1 return f;
48 1 }
49
50 float calculates(ushort x)
51 {
52 1 float f;
53 1
54 1 f = x*1000.0/0x7fff;
55 1
C51 COMPILER V7.06 MEASURE 04/09/2005 13:15:56 PAGE 2
56 1 return f;
57 1 }
58
59 void sendtoprinter(float fvalue)
60 {
61 1 uchar second,minute,hour,date,month,year;
62 1
63 1 second = readsecond();
64 1 minute = readminute();
65 1 hour = readhour();
66 1 date = readdate();
67 1 month = readmonth();
68 1 year = readyear();
69 1
70 1 printf("\n===============\n");
71 1 printf("Measuring time:\n");
72 1 delay(10);
73 1 printf("20%02bx-%02bx-%02bx\n",year,month,date);
74 1 delay(10);
75 1 printf("%02bx:%02bx:%02bx\n",hour,minute,second);
76 1 delay(10);
77 1 printf("Water quality:\n");
78 1 delay(10);
79 1 printf(" %4.2fNTU\n",fvalue);
80 1 printf("===============\n\n");
81 1 }
82
83 void measure()
84 {
85 1 ushort adsvalue=0;
86 1 ushort oldvalue=0;
87 1 uchar i,tmp1,tmp2;
88 1 uchar flag;
89 1 float fvalue;
90 1
91 1 clear(0x0000);
92 1 clear(0x4000);
93 1 printstring16(0,0,0,"现已进入测量程序");
94 1 printstring16(0,28,26,"按1打印");
95 1 printstring16(0,28,28,"按2退出");
96 1
97 1 readiic(0x20,&flag);
98 1
99 1 for(i=0;i<7;i++)
100 1 {
101 2 readiic(i*2,&tmp1);
102 2 delay(1);
103 2 readiic(i*2+1,&tmp2);
104 2 delay(1);
105 2 value[i] = tmp2*256+tmp1;
106 2 }
107 1
108 1 while(1)
109 1 {
110 2 readads1100(&adsvalue);
111 2 if(adsvalue != oldvalue)
112 2 {
113 3 if(flag == 0x55)
114 3 fvalue = calculate(adsvalue);
115 3 else
116 3 fvalue = calculates(adsvalue);
117 3 oldvalue = adsvalue;
C51 COMPILER V7.06 MEASURE 04/09/2005 13:15:56 PAGE 3
118 3
119 3 displayvalue(fvalue);
120 3 }
121 2
122 2 printtime();
123 2
124 2 i = readkey();
125 2 if(i == KEY_1)
126 2 sendtoprinter(fvalue);
127 2 if(i == KEY_2)
128 2 break;
129 2 delay(500);
130 2 }
131 1 }
132
133
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 851 ----
CONSTANT SIZE = 163 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 53
IDATA SIZE = 14 ----
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 + -