⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 用3310显示温度与数字钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
 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 + -