📄 common.lst
字号:
C51 COMPILER V7.50 COMMON 12/03/2005 12:09:11 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE COMMON
OBJECT MODULE PLACED IN COMMON.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE COMMON.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <head.h> // SFR declarations
2 void DisplayAll(void)
3 {
4 1 write_chinese(0,0,0x10,kong);
5 1 write_chinese(15,0,0x10,qi);
6 1 write_chinese(30,0,0x10,nong);
7 1 write_chinese(46,0,0x10,du);
8 1 write_chinese(62,0,0x10,kong);
9 1 write_chinese(77,0,0x10,qi);
10 1 write_chinese(92,0,0x10,nong);
11 1 write_chinese(107,0,0x10,du);
12 1 clear_screen(4);
13 1 write_chinese(0,0,0x10,wen);
14 1 write_chinese(0x0f,0,0x10,du);
15 1 write_chinese(0x3a,0,0x10,nong);
16 1 write_chinese(0x4a,0,0x10,du);
17 1 write_chinese(0,2,0x10,shi);
18 1 write_chinese(0x0f,2,0x10,du);
19 1 }
20
21 void DisplayNongdu(float value)
22 {
23 1 // unsigned char Nd100,Nd10;
24 1 unsigned char x,y,i;
25 1 unsigned int temp;
26 1 // Nudu100,Nudu10,Nudu1
27 1 temp = value*100;
28 1 x = 0x3a;
29 1 y = 0;
30 1 write_chinese(x,y,0x10,nong);
31 1 write_chinese(x+0x10,y,0x10,du);
32 1 Nudu100 = 0;
33 1 i = 4;
34 1 while(temp >= 100)
35 1 {
36 2 Nudu100++;
37 2 temp = temp - 100;
38 2 }
39 1 write_chinese(x+(i++)*0x08,y,0x08,number(Nudu100));
40 1 write_chinese(x+(i++)*0x08,y,0x08,dot);
41 1 Nudu10 = 0;
42 1 while(temp >= 10)
43 1 {
44 2 Nudu10++;
45 2 temp = temp - 10;
46 2 }
47 1 Nudu1 = temp;
48 1 write_chinese(x+(i++)*0x08,y,0x08,number(Nudu10));
49 1 write_chinese(x+(i++)*0x08,y,0x08,number(Nudu1));
50 1 }
51 unsigned char CalHumidity(unsigned int Count)
52 {
53 1 unsigned char temp;
54 1 if(Count >= 7351) return(0);
55 1 else if(Count >= 6728)
C51 COMPILER V7.50 COMMON 12/03/2005 12:09:11 PAGE 2
56 1 {
57 2 temp = (7351 - Count) * LOW50;
58 2 }
59 1 else if(Count >= 6186)
60 1 {
61 2 temp = 50 + (6728 - Count) * HIGH40;
62 2 }
63 1 else if(Count > 6033)
64 1 {
65 2 temp = 90 + (6186 - Count) * MAX10;
66 2 }
67 1 else
68 1 temp = 100;
69 1 return(temp);
70 1 }
71 float CalTemp(unsigned int Count)
72 {
73 1 float temp;
74 1 temp = Count*TempPara - 271.6667 - XIUZHENG;
75 1 return(temp);
76 1 }
77 void DisplayHumidity()
78 {
79 1 // unsigned char d10;
80 1 // Shidu10,Shidu1;
81 1 unsigned char x,y,i;
82 1 unsigned char temp;
83 1 temp = CalHumidity(HumidityFreq);
84 1 x = 0;
85 1 y = 2;
86 1 i = 2;
87 1 write_chinese(x,y,0x10,shi);
88 1 write_chinese(x+i*0x08-1,y,0x10,du);
89 1 i = 4;
90 1 Shidu10 = 0;
91 1 while(temp >= 10)
92 1 {
93 2 Shidu10++;
94 2 temp = temp - 10;
95 2 }
96 1 Shidu1 = temp;
97 1 write_chinese(x+(i++)*0x08-3,y,0x08,number(Shidu10));
98 1 write_chinese(x+(i++)*0x08-4,y,0x08,number(Shidu1));
99 1 write_chinese(x+(i++)*0x08-5,y,0x08,baifenhao);
100 1 }
101 void DisplayTemp()
102 {
103 1 // unsigned char d10;
104 1 //Wendu10,Wendu1
105 1 unsigned char x,y,i;
106 1 unsigned char temp;
107 1 temp = CalTemp(TempValue);
108 1 x = 0;
109 1 y = 0;
110 1 i = 2;
111 1 write_chinese(x,y,0x10,wen);
112 1 write_chinese(x+i*0x08-1,y,0x10,du);
113 1 i = 4;
114 1 Wendu10 = 0;
115 1 while(temp >= 10)
116 1 {
117 2 Wendu10++;
C51 COMPILER V7.50 COMMON 12/03/2005 12:09:11 PAGE 3
118 2 temp = temp - 10;
119 2 }
120 1 Wendu1 = temp;
121 1 write_chinese(x+(i++)*0x08-2,y,0x08,number(Wendu10));
122 1 write_chinese(x+(i++)*0x08-3,y,0x08,number(Wendu1));
123 1 write_chinese(x+(i++)*0x08-4,y,0x0e,sheshidu);
124 1 }
125 void TestProm(void)
126 {
127 1 unsigned char i;
128 1 if(ZEROFLAG==0)
129 1 {
130 2 ZeroCount = 0;
131 2 for(i=0;i<3;i++)
132 2 ZeroCount += TestLight();
133 2 ZeroCount /= 3;
134 2 ZEROFLAG = 1;
135 2 DisplayNongdu(0);
136 2 }
137 1 if(READFLAG==0)
138 1 {
139 2 ReadCount = 0;
140 2 for(i=0;i<3;i++)
141 2 ReadCount += TestLight();
142 2 ReadCount /= 3;
143 2 READFLAG = 1;
144 2 TestValue = formula(ReadCount,ZeroCount);
145 2 if(TestValue > 0.109999) JQOverFlag = 1;
146 2 else JQOverFlag = 0;
147 2 DisplayNongdu(TestValue);
148 2 }
149 1 {
150 2 HumidityCount++;
151 2 HumidityFreq += TestHumidity();
152 2 if(HumidityCount >= 10)
153 2 {
154 3 HumidityCount = 0;
155 3 DisplayHumidity();
156 3 HumidityFreq = 0;
157 3 }
158 2 }
159 1 {
160 2 TempCount++;
161 2 TempValue += Adc0_sample();
162 2 if(TempCount >= 10)
163 2 {
164 3 TempCount = 0;
165 3 DisplayTemp();
166 3 TempValue = 0;
167 3 }
168 2 }
169 1 }
170
171 unsigned int TestLight(void)
172 {
173 1 unsigned int temp;
174 1 TR1 = 0;
175 1 LED = 0; // led on
176 1 TH1 = 0;
177 1 TL1 = 0;
178 1 TR1 = 1;
179 1 TMR3H = 0x3C; // Timer 3 High Byte
C51 COMPILER V7.50 COMMON 12/03/2005 12:09:11 PAGE 4
180 1 TMR3L = 0xB0; // Timer 3 Low Byte
181 1 TMR3CN = 0x04; // Timer 3 Control Register
182 1 ENABLE = 1; // enable
183 1 while(!(TMR3CN & 0x80));
184 1 TMR3CN = 0x04;
185 1 while(!(TMR3CN & 0x80));
186 1 TMR3CN = 0x00;
187 1 LED = 1; // led off
188 1 ENABLE = 0; // disable
189 1 TR1 = 0;
190 1 temp = TH1*256 + TL1;
191 1 return(temp);
192 1 }
193 unsigned int TestHumidity(void)
194 {
195 1 unsigned int temp;
196 1
197 1 TR0 = 0;
198 1 TH0 = 0;
199 1 TL0 = 0;
200 1 TR0 = 1;
201 1 TMR3H = 0x3C; // Timer 3 High Byte
202 1 TMR3L = 0xB0; // Timer 3 Low Byte
203 1 TMR3CN = 0x04; // Timer 3 Control Register
204 1 while(!(TMR3CN & 0x80));
205 1 TMR3CN = 0x04;
206 1 while(!(TMR3CN & 0x80));
207 1 TMR3CN = 0x00;
208 1 TR0 = 0;
209 1 temp = TH0*256 + TL0;
210 1 return(temp);
211 1 }
212
213 unsigned int Adc0_sample(void)
214 {
215 1 // ADC0CN |= AD0BUSY; // Start Conversion
216 1 // AMX0CF = 0x00; // AMUX Configuration Register
217 1 AD0BUSY = 1;
218 1 while(!AD0INT); // Wait Conversion is over
219 1 AD0INT = 0; // Clear flag
220 1 // POWERMEAR
221 1 return ADC0;
222 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1470 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 21
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 + -