📄 lcmservice.lst
字号:
180 1
181 1 nTemp=data1&0x7F;
182 1 OutputChar(position[start+4],22,0); //off
183 1 if ((data1&0x80)==0x80) //最高位为1表示为负数
184 1 OutputChar(position[start+3],18,0); //显示一个负号'-'
185 1 else
186 1 OutputChar(position[start+3],(nTemp/100),0);//显示一个最高位
187 1 //采用固定小数点方式显示
188 1 OutputChar(position[start],(data2%10),0);
189 1 OutputChar(position[start+1],(nTemp%10),1);
190 1 OutputChar(position[start+2],((nTemp/10)%10),0);
191 1
192 1 //DelayTime(2,_LCM_KEEP_T); //显示停留
193 1 }
194 /*------------------------------------------------*/
195 #if _SYS_TEST>0 //提供给测试用的输出开关
/*------------------------------------------------*/
/*
名称: OutputThreeChar
功能: 显示三个字节数据/日期和时钟页面
注意: [xx-xx-xx]
*/
void OutputThreeChar(uchar data1,uchar data2,uchar data3,uchar space)
{
LCM_Clear();
OutputChar(position[0],17,0);
OutputChar(position[9],16,0); //|_ 16:字型编号
OutputChar(position[3],space,0); //间隔符号
OutputChar(position[6],space,0);
OutputChar(position[1],(data3%10),0);
OutputChar(position[2],(data3/10),0);
OutputChar(position[4],(data2%10),0);
OutputChar(position[5],(data2/10),0);
OutputChar(position[7],(data1%10),0);
OutputChar(position[8],(data1/10),0);
DelayTime(2,_LCM_KEEP_T); //显示停留
LCM_Clear();
}
#endif
220 /*------------------------------------------------*/
221 /*
222 名称: OutputLcmBuf
223 功能: 显示特定页面缓冲的内容ClkLcmBuf[10]
224 注意: [xx-xx-xx]
225 */
226 void OutputLcmBuf(uchar *start)
227 {
228 1 uchar i;
229 1 LCM_Clear();
230 1 for(i=0;i<_MAX_LCM_NUM;i++)
231 1 {
232 2 OutputChar(position[9-i],*start++,0);
233 2 }
234 1 DelayTime(2,_LCM_KEEP_T); //显示停留
235 1 LCM_Clear();
236 1 }
237 /*------------------------------------------------*/
238 /*------------------------------------------------*/
239 #if _SYS_TEST>0 //提供给测试用的输出开关
/*------------------------------------------------*/
C51 COMPILER V7.20 LCMSERVICE 11/09/2002 21:11:14 PAGE 5
/*
名称: OutputFrequency
功能: 显示检测到频率值页面 <64K HZ
注意: [ [00]
*/
void OutputFrequency(uint Myfre)
{
LCM_Clear();
OutputChar(position[9],16,0); //[ 16:字型编号
OutputChar(position[0],17,0); //]
OutputChar(position[1],0,0); //]
OutputChar(position[2],0,0); //]
OutputChar(position[3],0,0); //]
OutputChar(position[4],Myfre%10,1);
OutputChar(position[5],(Myfre%100)/10,0);
OutputChar(position[6],(Myfre%1000)/100,0);
OutputChar(position[7],(Myfre%10000)/1000,0);
OutputChar(position[8],Myfre/10000,0);
DelayTime(1,_LCM_KEEP_T); //显示停留
LCM_Clear();
}
/*------------------------------------------------*/
#endif
266 /*------------------------------------------------*/
267 /*
268 名称: DispLayTaskRun()
269 功能: 执行需要的显示任务
270 注意: 要不断的检测标志
271 */
272 void DispLayTaskRun()
273 {
274 1 //#if _SYS_TEST>0
275 1 //OutputFrequency(UartRecBuf[0]);
276 1 //#else
277 1 uchar LcmBuf[3];
278 1 /*根据模式将各模式需要显示的数据装载到显示缓冲中*/
279 1 LCM_Clear();
280 1 switch(SystemState)
281 1 {
282 2 case _CMD_NORMAL_RUN:
283 2 /*检测是否配置了传感器监控功能*/
284 2 OutputTHValue(TempInteger,TempDecimal,6);
285 2 OutputTHValue(HumiInteger,HumiDecimal,0);
286 2 OutputChar(position[4],22,0); //off
287 2 OutputChar(position[5],22,0); //[ 16:字型编号
288 2 DelayTime(1,_LCM_KEEP_T);
289 2 break;
290 2
291 2 case _CMD_CTRL_RUN:
292 2 #if _CLOCK_TASK>0
293 2 ReadClock(ClkLcmBuf); //更新时钟数据
294 2 #endif
295 2 switch(LcmMode)
296 2 {
297 3 case _TIME_RUN:
298 3 LcmBuf[0]=ClkLcmBuf[_ID_HOUR];
299 3 LcmBuf[1]=ClkLcmBuf[_ID_MINUTE];
300 3 LcmBuf[2]=ClkLcmBuf[_ID_SECOND];
301 3 CopyBuffer(TimePage,ClkLcmBuf);
302 3 ClkLcmBuf[_ID_HOUR_H]=LcmBuf[0]/10;
C51 COMPILER V7.20 LCMSERVICE 11/09/2002 21:11:14 PAGE 6
303 3 ClkLcmBuf[_ID_HOUR_L]=LcmBuf[0]%10;
304 3 ClkLcmBuf[_ID_MINUTE_H]=LcmBuf[1]/10;
305 3 ClkLcmBuf[_ID_MINUTE_L]=LcmBuf[1]%10;
306 3 ClkLcmBuf[_ID_SECOND_H]=LcmBuf[2]/10;
307 3 ClkLcmBuf[_ID_SECOND_L]=LcmBuf[2]%10;
308 3 break;
309 3 case _DATE_RUN:
310 3 LcmBuf[0]=ClkLcmBuf[_ID_YEAR];
311 3 LcmBuf[1]=ClkLcmBuf[_ID_MONTH];
312 3 LcmBuf[2]=ClkLcmBuf[_ID_DAY];
313 3 CopyBuffer(DatePage,ClkLcmBuf);
314 3 ClkLcmBuf[_ID_YEAR_H]=LcmBuf[0]/10;
315 3 ClkLcmBuf[_ID_YEAR_L]=LcmBuf[0]%10;
316 3 ClkLcmBuf[_ID_MONTH_H]=LcmBuf[1]/10;
317 3 ClkLcmBuf[_ID_MONTH_L]=LcmBuf[1]%10;
318 3 ClkLcmBuf[_ID_DAY_H]=LcmBuf[2]/10;
319 3 ClkLcmBuf[_ID_DAY_L]=LcmBuf[2]%10;
320 3
321 3 #if _SYS_TEST >0
OutputThreeChar(LcmBuf[0],LcmBuf[1],LcmBuf[2],_CHAR_FH);
#endif
324 3 break;
325 3 case _WEEKLY_RUN:
326 3 LcmBuf[0]=ClkLcmBuf[_ID_WEEKLY];
327 3 CopyBuffer(WeekPage,ClkLcmBuf);
328 3 ClkLcmBuf[_ID_WEEKLY_H]=LcmBuf[0]/10;
329 3 ClkLcmBuf[_ID_WEEKLY_L]=LcmBuf[0]%10;
330 3 break;
331 3 case _COMBUSY_RUN:
332 3 CopyBuffer(BusyPage,ClkLcmBuf);
333 3 break;
334 3 case _ERROR_RUN:
335 3 CopyBuffer(ErrorPage,ClkLcmBuf);
336 3 break;
337 3
338 3 default:
339 3 CopyBuffer(ErrorPage,ClkLcmBuf); //出错
340 3 break;
341 3 }
342 2 OutputLcmBuf(ClkLcmBuf);
343 2 break;
344 2 default:
345 2 CopyBuffer(ErrorPage,ClkLcmBuf); //出错
346 2 OutputLcmBuf(ClkLcmBuf);
347 2 break;
348 2 }
349 1 //#endif
350 1 }
351 /*------------------------------------------------*/
352 #endif
353
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 955 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 22
IDATA SIZE = ---- ----
BIT SIZE = ---- 4
END OF MODULE INFORMATION.
C51 COMPILER V7.20 LCMSERVICE 11/09/2002 21:11:14 PAGE 7
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -