📄 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 + -