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

📄 handlekey.lst

📁 一个用于驱动TFT屏的驱动程序,使用IC:1828,program (无EEPROM 无IR,完整说明)IIC只写一个
💻 LST
📖 第 1 页 / 共 5 页
字号:
 212   2                              osd_size(bottom,0x05,0x01);                                                     // Set Content block size
 213   2                              osd_pos(bottom,0x66,0x35);                                                      // Set bottom block position
 214   2                              printSwitchInfo(0x01,0x00);
 215   2                              osdSwitch(0x03);
 216   2                              osd_pos_Highlight(content,0x01,0x0A,0x05,0x05);
 217   2                              osd_BackColor_H(content,Blue);
 218   2                              
 219   2                              break;
 220   2                              
 221   2                      default:break;
 222   2              }
 223   1      
 224   1              osdSwitch(0x03);
 225   1              DelayXms(0xFF);                                                                                         // Avoid error repress
 226   1      }
 227          
 228          //********************************************************************
 229          // 函数:void handleMenuValue()
 230          // 作用:DOWN.UP按下时的处理,
 231          // 参数:
 232          // remarks:     DOWN.UP同时也可以做声音的调节健
 233          //*********************************************************************
 234          void handleMenuValue()
 235          {
 236   1              bit add_flag;
 237   1              
 238   1              clearTimer();                                                                                           // 计时器osd_timer = 0
 239   1      
 240   1              if(!key_valueUp)
C51 COMPILER V7.50   HANDLEKEY                                                             09/29/2006 10:54:53 PAGE 5   

 241   1                      add_flag = 1;
 242   1              else
 243   1                      add_flag = 0;
 244   1              
 245   1              if (sel_hue)                                                                                            // Increase Brightness
 246   1              {
 247   2                      adjValue(&hue_value,add_flag,0x3F);     
 248   2                      adj_britclr(hue,hue_value);     
 249   2                      adjMsgBox(hue_value ,0x3F);
 250   2                      osdSwitch(0x03);
 251   2                      DelayXms(0x20);                                                                                 // avoid error repress
 252   2              }
 253   1      
 254   1              if (sel_satr)                                                                                           // Increase Brightness
 255   1              {
 256   2                      adjValue(&satr_value,add_flag,0xFF);
 257   2                      adj_britclr(satr,satr_value);   
 258   2                      adjMsgBox(satr_value ,0xFF);
 259   2                      osdSwitch(0x03);
 260   2                      DelayXms(0x20);                                                                                 // avoid error repress
 261   2              }
 262   1              
 263   1              if (sel_cont)                                                                                           // Increase Brightness
 264   1              {
 265   2                      adjValue(&contc_value,add_flag,0xFF);
 266   2                      adj_britclr(contc,contc_value); 
 267   2                      adjMsgBox(contc_value ,0xFF);
 268   2                      osdSwitch(0x03);
 269   2                      DelayXms(0x20);                                                                                 // avoid error repress
 270   2              }
 271   1              
 272   1              if (sel_brit)                                                                                           // Increase Brightness
 273   1              {
 274   2                      adjValue(&britc_value,add_flag,0xFF);
 275   2                      adj_britclr(britc,britc_value); 
 276   2                      adjMsgBox(britc_value,0xFF);
 277   2                      osdSwitch(0x03);
 278   2                      DelayXms(0x20);                                                                                 // avoid error repress          
 279   2              }
 280   1      
 281   1              if (sel_reset)                                                                                          // Reset Register
 282   1              {
 283   2                      //osd_timer      = 0;           
 284   2                      clearMenuFlag();
 285   2                                      
 286   2                      loadAppInitValue();
 287   2                      setICAppValue();
 288   2      
 289   2                      osd_madr(bottom,0xB0);
 290   2                      osd_size(bottom,0x05,0x01);                                                             // Set Content block size
 291   2                      osd_pos(bottom,0x66,0x35);                                                              // Set bottom block position
 292   2                      printSwitchInfo(0x03,0x00);
 293   2                      osdSwitch(0x03);
 294   2              
 295   2                      DelayXms(0xff);         
 296   2                      osdSwitch(0x00);                                                                                // Turn the OSD T/C/B block off                                 
 297   2              }
 298   1                      
 299   1              DelayXms(0xff);                                                                                         // Avoid error repress
 300   1      }
 301          
 302          //********************************************************************
C51 COMPILER V7.50   HANDLEKEY                                                             09/29/2006 10:54:53 PAGE 6   

 303          //函数:void handleSCMode()
 304          //作用:屏幕比例的切换
 305          //参数:
 306          //remarks:
 307          //*********************************************************************
 308          void handleSCMode()
 309          {
 310   1              unsigned char current_format;
 311   1      
 312   1              if(scMode_value != 0x00)
 313   1                      scMode_value = 0x00;
 314   1              else
 315   1                      scMode_value = 0x01;
 316   1              DelayXms(0x05);
 317   1      
 318   1              current_format = getCurrentFormat();
 319   1              //osd_madr(bottom,0xB0);
 320   1              //osd_size(bottom,0x05,0x01);                                                           // Set Content block size
 321   1              //osd_pos(bottom,0x66,0x35);                                                            // Set bottom block position
 322   1              setScreenMode(current_format,scMode_value);
 323   1              printModeInfo();
 324   1              printSwitchInfo(0x02,scMode_value);
 325   1              osdSwitch(0x05);
 326   1              DelayXms(0x20);                                                                                         // avoid error repress
 327   1      
 328   1              DelayXms(0xFF);
 329   1      }
 330          
 331          //********************************************************************
 332          //函数:void handleCh()
 333          //作用:通道的切换
 334          //参数:
 335          //remarks:
 336          //*********************************************************************
 337          void handleCh()
 338          {
 339   1              unsigned char ch_index;
 340   1              unsigned char current_format;
 341   1      
 342   1              clearMenuFlag();                                                                                        // Clear all menu flag  
 343   1              clearTimer();                                                                                           // 计时器osd_timer = 0
 344   1      
 345   1              ch_index       = getCurrentCh();
 346   1              current_format = getCurrentFormat();
 347   1      
 348   1              ch_index++;
 349   1              if (ch_index == 0x04)
 350   1                      ch_index = 0x01;
 351   1      
 352   1              change1828Ch(ch_index); 
 353   1         
 354   1              setCurrentCh(ch_index);
 355   1              displayCap(ch_index,current_format);
 356   1      
 357   1              DelayXms(0xff);                                                                                         // avoid error repress
 358   1      }
 359          
 360          //********************************************************************
 361          // 函数:void adjValue(unsigned char * value,bit add_flag,unsigned char MAX_value)
 362          // 作用:在0~MAX_value,内使值加一减1
 363          // 参数:  value      => 更改的值
 364          //       add_flag        => 加减标志
C51 COMPILER V7.50   HANDLEKEY                                                             09/29/2006 10:54:53 PAGE 7   

 365          //        MAX_value      => 允许的最大值
 366          // remarks:     
 367          //*********************************************************************
 368          void adjValue(unsigned char * value,bit add_flag,unsigned char MAX_value)
 369          {
 370   1              if(add_flag)
 371   1              {
 372   2                      if(value < MAX_value)
 373   2                              (*value)++;
 374   2              }
 375   1              else
 376   1                      if(value > 0x00)
 377   1                              (*value)--;                             
 378   1              
 379   1      }
 380          
 381          //********************************************************************
 382          // 函数:void adjMsgBox(unsigned char value,unsigned char max_value)
 383          // 作用:在Bottom 处显示一个块
 384          // 参数:  value      => 显示的值
 385          //        max_value  =>
 386          // remarks:     
 387          //*********************************************************************
 388          void adjMsgBox(unsigned char value,unsigned char max_value)
 389          {
 390   1              unsigned char idata temp[0x16];
 391   1              unsigned char idata i,j;
 392   1              unsigned char       count;
 393   1              char idata                      *ptr;
 394   1      
 395   1              if(max_value == 0xFF)
 396   1              {
 397   2                      i = value/16;
 398   2                      j = value%16;
 399   2                      j = j/2;
 400   2                      j = j + 0x70;
 401   2              }
 402   1              else if (max_value== 0x3F)
 403   1              {
 404   2                      i = value/4;
 405   2                      j = value%4;
 406   2                      j = j++;
 407   2                      j = j*2;
 408   2                      j = j + 0x70;
 409   2              }
 410   1      
 411   1              temp[0] = 0x51;
 412   1              ptr = &temp[1];
 413   1              for (count = i;count > 0;count--)
 414   1              {
 415   2                      *ptr = 0x78;
 416   2                      ptr++;
 417   2              }
 418   1              *ptr = j;
 419   1              ptr++;
 420   1              j = 0x10;
 421   1              j = j - i;
 422   1              for (count = j;count > 0;count--)
 423   1              {
 424   2                      *ptr = 0x70;
 425   2                      ptr++;
 426   2              }
C51 COMPILER V7.50   HANDLEKEY                                                             09/29/2006 10:54:53 PAGE 8   

 427   1              temp[17] = 0x52;
 428   1              temp[18] = 0x6D;
 429   1              temp[19] = value/100 + 0x62;                                                            // 1
 430   1              i = value%100;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -