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

📄 main.lst

📁 nokia3310多功能温度计设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
 196          /*函数功能:温度显示
 197          /*输入参数:无
 198          /*输出参数:无
 199          /*调用模块:data_clr(),LPH7366_write_str(),LPH7366_write_doc()
 200          
 201          /************************************************************/
 202          void temp_display()
 203          {
 204   1         if(T_sign==0)   //正数
 205   1       {  
 206   2          if(sign_cross==1)
 207   2              {
 208   3               data_clr();
 209   3               sign_cross=0;
 210   3              }
 211   2          if(t_bai!=0)
 212   2        { 
 213   3                LPH7366_write_str(4,5,(t_bai+16));
 214   3                LPH7366_write_str(4,6,(t_shi+16));
 215   3                LPH7366_write_str(4,7,(t_ge+16));
 216   3              
 217   3              LPH7366_write_doc(4,46,0x01);  //C
 218   3          LPH7366_write_doc(4,47,0x3c);
 219   3          LPH7366_write_doc(4,48,0x42);
 220   3          LPH7366_write_doc(4,49,0x42);
 221   3          LPH7366_write_doc(4,50,0x42);
 222   3        }
 223   2       
 224   2          else
 225   2        { 
 226   3          LPH7366_write_str(4,5,(t_shi+16));
 227   3          LPH7366_write_str(4,6,(t_ge+16));
 228   3              LPH7366_write_doc(4,39,0x80);  //小数点
 229   3          LPH7366_write_str(4,7,(t_feng+16));
 230   3      
 231   3              LPH7366_write_doc(4,46,0x01);  //C
 232   3          LPH7366_write_doc(4,47,0x3c);
 233   3          LPH7366_write_doc(4,48,0x42);
 234   3          LPH7366_write_doc(4,49,0x42);
 235   3          LPH7366_write_doc(4,50,0x42);
 236   3        }
 237   2       }
C51 COMPILER V8.05a   MAIN                                                                 04/15/2009 22:04:17 PAGE 5   

 238   1      
 239   1         else    //是负数
 240   1       {  
 241   2         if(sign_cross==0)
 242   2              {
 243   3               data_clr();
 244   3               sign_cross=1;
 245   3              }
 246   2         if(t_bai!=0)
 247   2        { 
 248   3      
 249   3                LPH7366_write_str(4,5,13); //负号
 250   3            LPH7366_write_str(4,6,(t_bai+16));
 251   3            LPH7366_write_str(4,7,(t_shi+16));
 252   3            LPH7366_write_str(4,8,(t_ge+16));
 253   3      
 254   3      
 255   3              LPH7366_write_doc(4,52,0x01);  //C
 256   3          LPH7366_write_doc(4,53,0x3c);
 257   3          LPH7366_write_doc(4,54,0x42);
 258   3          LPH7366_write_doc(4,55,0x42);
 259   3          LPH7366_write_doc(4,56,0x42);
 260   3        }
 261   2       
 262   2          else
 263   2        {  
 264   3               
 265   3           LPH7366_write_str(4,5,13);  //负号
 266   3           LPH7366_write_str(4,6,(t_shi+16));
 267   3           LPH7366_write_str(4,7,(t_ge+16));
 268   3               LPH7366_write_doc(4,45,0x80);  //小数点
 269   3           LPH7366_write_str(4,8,(t_feng+16));   
 270   3      
 271   3              LPH7366_write_doc(4,52,0x01);  //C
 272   3          LPH7366_write_doc(4,53,0x3c);
 273   3          LPH7366_write_doc(4,54,0x42);
 274   3          LPH7366_write_doc(4,55,0x42);
 275   3          LPH7366_write_doc(4,56,0x42);
 276   3        }
 277   2       }
 278   1      }
 279          
 280          /***********************温度条部分动画函数*******************/
 281          /*函数原型:void temp_bar_move()
 282          /*函数功能:温度部分动画
 283          /*输入参数:无
 284          /*输出参数:无
 285          /*调用模块:LPH7366_write_doc()
 286          
 287          /************************************************************/
 288          void temp_bar_move()
 289          {
 290   1        unsigned char k,i,n,j,l;
 291   1        k=(unsigned char)temp;
 292   1        i=k/8;  //几行
 293   1        n=k%8;  //几小行
 294   1      
 295   1         if(i>=0&&i<=5)
 296   1        { if(i>0)
 297   2         {for(j=5;j>(5-i);j--)
 298   3          {
 299   4          LPH7366_write_doc(j,80,temp_bar[7]);  //正行全显
C51 COMPILER V8.05a   MAIN                                                                 04/15/2009 22:04:17 PAGE 6   

 300   4              for(l=1;l<=(5-i);l++)  //清除上面不显示的,主要是为了清楚以前残留显示
 301   4              LPH7366_write_doc(l,80,0x00);
 302   4          }
 303   3         }
 304   2         if(n>0)   //一行显示都不到
 305   2         LPH7366_write_doc((5-i),80,temp_bar[n-1]);
 306   2        }
 307   1      
 308   1         LPH7366_write_doc(1,80,0x04);  //确保温度条图形完整
 309   1      }
 310          
 311          /***********************行33-58清零函数**********************/
 312          /*函数原型:void data_clr()
 313          /*函数功能:行33-58清零函数
 314          /*输入参数:无
 315          /*输出参数:无
 316          /*调用模块:LPH7366_write_doc()
 317          
 318          /************************************************************/
 319          void data_clr()
 320          {
 321   1       unsigned char i;
 322   1       for(i=33;i<59;i++)
 323   1       {
 324   2        LPH7366_write_doc(4,i,0x00);
 325   2       }
 326   1      }
 327          
 328          /***********************检查设置参数函数**********************/
 329          /*函数原型:void tick_time_temp()
 330          /*函数功能:检查设置参数
 331          /*输入参数:无
 332          /*输出参数:无
 333          /*调用模块:delay()
 334          
 335          /************************************************************/
 336          void tick_time_temp()
 337          {
 338   1        if(ring_flag==1)
 339   1       { if(alarm_time.hour==local_time.hour)  //定时时间到
 340   2        {
 341   3          if(alarm_time.minute==local_time.minute)
 342   3              {
 343   4                if(local_time.second<30)
 344   4                {
 345   5                 SPK=~SPK;
 346   5                 face_flag=4;  //讲话
 347   5                }
 348   4                else
 349   4                SPK=0;
 350   4              }
 351   3        }
 352   2       }
 353   1      
 354   1        if(temp_time.hour==local_time.hour) //定时采集温度数值
 355   1        {
 356   2          if(temp_time.minute==local_time.minute)
 357   2              {
 358   3                temp_move();  //温度部分动画
 359   3                face_flag=7;  //沉默
 360   3              }
 361   2        }
C51 COMPILER V8.05a   MAIN                                                                 04/15/2009 22:04:17 PAGE 7   

 362   1      
 363   1        if(temp>(temp_TH+0.5))  //超过温度上限数值
 364   1        {
 365   2          alarm_tick_time++;
 366   2              if(alarm_tick_time==10)  //如果连续10次都检测到同一报警值,则动作.
 367   2          {
 368   3               alarm_tick_time=0;
 369   3               LED=0;
 370   3               face_flag=6;  //惊讶
 371   3              }
 372   2        }
 373   1      
 374   1        if(temp<(temp_TL-0.5)) //超过温度下限数值
 375   1        { 
 376   2          alarm_tick_time++;
 377   2              if(alarm_tick_time==10)
 378   2          {
 379   3               alarm_tick_time=0;
 380   3           LED=~LED;
 381   3               face_flag=3;  //苦恼
 382   3           delay(2000);
 383   3              }
 384   2        }
 385   1      
 386   1      }
 387          
 388          


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