?? main.lst
字號:
200 /*函數功能:溫度顯示
201 /*輸入參數:無
202 /*輸出參數:無
203 /*調用模塊:data_clr(),LPH7366_write_str(),LPH7366_write_doc()
204 /*建立時間:2005/11/21
205 /*作者:丁霄
206 /************************************************************/
207 void temp_display()
208 {
209 1 if(T_sign==0) //正數
210 1 {
211 2 if(sign_cross==1)
212 2 {
213 3 data_clr();
214 3 sign_cross=0;
215 3 }
216 2 if(t_bai!=0)
217 2 {
218 3 LPH7366_write_str(4,5,(t_bai+16));
219 3 LPH7366_write_str(4,6,(t_shi+16));
220 3 LPH7366_write_str(4,7,(t_ge+16));
221 3
222 3 LPH7366_write_doc(4,46,0x01); //C
223 3 LPH7366_write_doc(4,47,0x3c);
224 3 LPH7366_write_doc(4,48,0x42);
225 3 LPH7366_write_doc(4,49,0x42);
226 3 LPH7366_write_doc(4,50,0x42);
227 3 }
228 2
229 2 else
230 2 {
231 3 LPH7366_write_str(4,5,(t_shi+16));
232 3 LPH7366_write_str(4,6,(t_ge+16));
233 3 LPH7366_write_doc(4,39,0x80); //小數點
234 3 LPH7366_write_str(4,7,(t_feng+16));
235 3
236 3 LPH7366_write_doc(4,46,0x01); //C
237 3 LPH7366_write_doc(4,47,0x3c);
C51 COMPILER V7.06 MAIN 05/11/2008 18:49:25 PAGE 5
238 3 LPH7366_write_doc(4,48,0x42);
239 3 LPH7366_write_doc(4,49,0x42);
240 3 LPH7366_write_doc(4,50,0x42);
241 3 }
242 2 }
243 1
244 1 else //是負數
245 1 {
246 2 if(sign_cross==0)
247 2 {
248 3 data_clr();
249 3 sign_cross=1;
250 3 }
251 2 if(t_bai!=0)
252 2 {
253 3
254 3 LPH7366_write_str(4,5,13); //負號
255 3 LPH7366_write_str(4,6,(t_bai+16));
256 3 LPH7366_write_str(4,7,(t_shi+16));
257 3 LPH7366_write_str(4,8,(t_ge+16));
258 3
259 3
260 3 LPH7366_write_doc(4,52,0x01); //C
261 3 LPH7366_write_doc(4,53,0x3c);
262 3 LPH7366_write_doc(4,54,0x42);
263 3 LPH7366_write_doc(4,55,0x42);
264 3 LPH7366_write_doc(4,56,0x42);
265 3 }
266 2
267 2 else
268 2 {
269 3
270 3 LPH7366_write_str(4,5,13); //負號
271 3 LPH7366_write_str(4,6,(t_shi+16));
272 3 LPH7366_write_str(4,7,(t_ge+16));
273 3 LPH7366_write_doc(4,45,0x80); //小數點
274 3 LPH7366_write_str(4,8,(t_feng+16));
275 3
276 3 LPH7366_write_doc(4,52,0x01); //C
277 3 LPH7366_write_doc(4,53,0x3c);
278 3 LPH7366_write_doc(4,54,0x42);
279 3 LPH7366_write_doc(4,55,0x42);
280 3 LPH7366_write_doc(4,56,0x42);
281 3 }
282 2 }
283 1 }
284
285 /***********************溫度條部分動畫函數*******************/
286 /*函數原型:void temp_bar_move()
287 /*函數功能:溫度部分動畫
288 /*輸入參數:無
289 /*輸出參數:無
290 /*調用模塊:LPH7366_write_doc()
291 /*建立時間:2005/11/17
292 /*作者:丁霄
293 /************************************************************/
294 void temp_bar_move()
295 {
296 1 unsigned char k,i,n,j,l;
297 1 k=(unsigned char)temp;
298 1 i=k/8; //幾行
299 1 n=k%8; //幾小行
C51 COMPILER V7.06 MAIN 05/11/2008 18:49:25 PAGE 6
300 1
301 1 if(i>=0&&i<=5)
302 1 { if(i>0)
303 2 {for(j=5;j>(5-i);j--)
304 3 {
305 4 LPH7366_write_doc(j,80,temp_bar[7]); //正行全顯
306 4 for(l=1;l<=(5-i);l++) //清除上面不顯示的,主要是為了清楚以前殘留顯示
307 4 LPH7366_write_doc(l,80,0x00);
308 4 }
309 3 }
310 2 if(n>0) //一行顯示都不到
311 2 LPH7366_write_doc((5-i),80,temp_bar[n-1]);
312 2 }
313 1
314 1 LPH7366_write_doc(1,80,0x04); //確保溫度條圖形完整
315 1 }
316
317 /***********************行33-58清零函數**********************/
318 /*函數原型:void data_clr()
319 /*函數功能:行33-58清零函數
320 /*輸入參數:無
321 /*輸出參數:無
322 /*調用模塊:LPH7366_write_doc()
323 /*建立時間:2005/11/16
324 /*作者:丁霄
325 /************************************************************/
326 void data_clr()
327 {
328 1 unsigned char i;
329 1 for(i=33;i<59;i++)
330 1 {
331 2 LPH7366_write_doc(4,i,0x00);
332 2 }
333 1 }
334
335 /***********************檢查設置參數函數**********************/
336 /*函數原型:void tick_time_temp()
337 /*函數功能:檢查設置參數
338 /*輸入參數:無
339 /*輸出參數:無
340 /*調用模塊:delay()
341 /*建立時間:2005/11/25
342 /*作者:丁霄
343 /************************************************************/
344 void tick_time_temp()
345 {
346 1 if(ring_flag==1)
347 1 { if(alarm_time.hour==local_time.hour) //定時時間到
348 2 {
349 3 if(alarm_time.minute==local_time.minute)
350 3 {
351 4 if(local_time.second<30)
352 4 {
353 5 SPK=~SPK;
354 5 face_flag=4; //講話
355 5 }
356 4 else
357 4 SPK=0;
358 4 }
359 3 }
360 2 }
361 1
C51 COMPILER V7.06 MAIN 05/11/2008 18:49:25 PAGE 7
362 1 if(temp_time.hour==local_time.hour) //定時采集溫度數值
363 1 {
364 2 if(temp_time.minute==local_time.minute)
365 2 {
366 3 temp_move(); //溫度部分動畫
367 3 face_flag=7; //沉默
368 3 }
369 2 }
370 1
371 1 if(temp>(temp_TH+0.5)) //超過溫度上限數值
372 1 {
373 2 alarm_tick_time++;
374 2 if(alarm_tick_time==10) //如果連續10次都檢測到同一報警值,則動作.
375 2 {
376 3 alarm_tick_time=0;
377 3 LED=0;
378 3 face_flag=6; //驚訝
379 3 }
380 2 }
381 1
382 1 if(temp<(temp_TL-0.5)) //超過溫度下限數值
383 1 {
384 2 alarm_tick_time++;
385 2 if(alarm_tick_time==10)
386 2 {
387 3 alarm_tick_time=0;
388 3 LED=~LED;
389 3 face_flag=3; //苦惱
390 3 delay(2000);
391 3 }
392 2 }
393 1
394 1 }
395
396
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 919 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 5
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 + -