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

📄 lcd.lst

📁 这是用W77E58编写的控制GSM模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
 226   1                  LCD_objectSendByte4(0x2CC0);
 227   1                  LCD_objectSendByte4(0x68F0);
 228   1                  LCD_objectSendByte4(0);
 229   1                  CLEAR_LCD_STROBE;
 230   1      
 231   1                  LCD_objectSendByte1(0x42);        /* Address */
 232   1                  SET_LCD_STROBE;                   /* CE  */
 233   1                                      
 234   1                  LCD_objectSendByte4(0x0B04); 
 235   1                  LCD_objectSendByte4(0x0FC0);
 236   1                  LCD_objectSendByte4(0);
 237   1                  LCD_objectSendByte4(0x8000);
 238   1                  CLEAR_LCD_STROBE;
 239   1      
 240   1                  LCD_objectSendByte1(0x42);        /* Address */
 241   1                  SET_LCD_STROBE;                   /* CE  */
 242   1      
 243   1                  LCD_objectSendByte4(0xFA00);
 244   1                  LCD_objectSendByte4(0x04DC);
 245   1                  LCD_objectSendByte4(0);
 246   1                  LCD_objectSendByte4(0x4000);
 247   1                  CLEAR_LCD_STROBE;
 248   1                  CLEAR_LCD_DATA;
 249   1      
 250   1      }
 251          
 252          
 253          void updateDisplay_Char(void)
 254          {
 255   1              unsigned char Char_4 = 0;
 256   1              unsigned char Char_5 = 0;
 257   1              unsigned char Char_6 = 0;
 258   1              unsigned char Char_7 = 0;
 259   1              unsigned char Char_8 = 0;
 260   1              unsigned char Char_9 = 0;
 261   1              unsigned char Char_10 = 0;
 262   1      
 263   1              if(Display_Char == 0xBDCAA){         /*MEMORY*/
 264   2                 Char_9 = Chanel/10;
 265   2                 Char_10 = Chanel%10;
 266   2              } else {
 267   2                 Char_9 = 10;
 268   2                 Char_10 = 10;
 269   2              }
 270   1      
 271   1              if(Display_Char == 0xE0BAA){         /*VOLUME*/
 272   2                 Char_9 = volume_level/10;
 273   2                 Char_10 = volume_level%10;
 274   2              } else {
 275   2                 Char_9 = 10;
 276   2                 Char_10 = 10;
 277   2              }
 278   1      
 279   1              Char_8 = Display_Char & 0x0F;
 280   1              Display_Char >>=4;
 281   1              Char_7 = Display_Char & 0x0F;
 282   1              Display_Char >>=4;
 283   1              Char_6 = Display_Char & 0x0F;
 284   1              Display_Char >>=4;
 285   1              Char_5 = Display_Char & 0x0F;
 286   1              Display_Char >>=4;
C51 COMPILER V6.23a  LCD                                                                   08/20/2002 17:07:42 PAGE 6   

 287   1              Char_4 = Display_Char & 0x0F;
 288   1              Display_Char >>=4;
 289   1      
 290   1      
 291   1                  SET_LCD_DOUT;
 292   1                  CLEAR_LCD_STROBE;                 
 293   1                  CLEAR_LCD_DATA;                   
 294   1                  SET_LCD_CLK;                      
 295   1      
 296   1      
 297   1                  CLEAR_LCD_STROBE;                 
 298   1                  LCD_objectSendByte1(0x42);        
 299   1                  SET_LCD_STROBE;                   
 300   1      
 301   1                  LCD_objectSendByte4(0);
 302   1                  LCD_objectSendByte4(seg4_char[Char_4]);        
 303   1                  LCD_objectSendByte4(seg5_char[Char_5] | seg6_char_H[Char_6]);     
 304   1                  LCD_objectSendByte4(0);
 305   1                  CLEAR_LCD_STROBE;
 306   1      
 307   1                  LCD_objectSendByte1(0x42);        
 308   1                  SET_LCD_STROBE;                   
 309   1                                      
 310   1                  LCD_objectSendByte4(seg6_char_L[Char_6] | seg7_char[Char_7]); 
 311   1                  LCD_objectSendByte4(seg8_char[Char_8]);
 312   1                  LCD_objectSendByte4(seg9_char[Char_9] | seg10_char_H[Char_10]);
 313   1                  LCD_objectSendByte4(0x8000);
 314   1                  CLEAR_LCD_STROBE;
 315   1      
 316   1                  LCD_objectSendByte1(0x42);        
 317   1                  SET_LCD_STROBE;                   
 318   1      
 319   1                  LCD_objectSendByte4(seg10_char_L[Char_10]);
 320   1                  LCD_objectSendByte4(0);
 321   1                  LCD_objectSendByte4(0);
 322   1                  LCD_objectSendByte4(0x4000);
 323   1                  CLEAR_LCD_STROBE;
 324   1                  CLEAR_LCD_DATA;
 325   1      
 326   1      }
 327          
 328          
 329          
 330          void LCD_objectSendByte1(unsigned char SendByte)
 331          {
 332   1          unsigned char i;
 333   1      
 334   1          for (i = 0; i < 8; i++) {
 335   2               if (SendByte & 0x01) {
 336   3                   SET_LCD_DATA;
 337   3               } else {
 338   3                  CLEAR_LCD_DATA;
 339   3               }
 340   2      
 341   2              CLEAR_LCD_CLK;
 342   2              CLEAR_LCD_CLK;
 343   2              SendByte >>= 1;
 344   2              SET_LCD_CLK;
 345   2      
 346   2          }
 347   1      }
 348          
C51 COMPILER V6.23a  LCD                                                                   08/20/2002 17:07:42 PAGE 7   

 349          
 350          
 351          void  LCD_objectSendByte4(unsigned int dispdata)
 352          {
 353   1               unsigned int i;
 354   1      
 355   1               dispdata >>= 2;
 356   1               for (i = 0; i < 14; i++){
 357   2                    if (dispdata & 0x01) {
 358   3                        SET_LCD_DATA;
 359   3                    } else {
 360   3                        CLEAR_LCD_DATA;
 361   3                    }
 362   2      
 363   2                    CLEAR_LCD_CLK;
 364   2                    dispdata >>= 1;
 365   2                    SET_LCD_CLK;
 366   2               }
 367   1      
 368   1      }
 369          
 370          
 371          
 372          
 373          unsigned char Read_key(void)
 374          {
 375   1             unsigned char i;
 376   1             unsigned long key_value = 0;
 377   1      
 378   1             if(LCD_DOUT) return 0;
 379   1      
 380   1             CLEAR_LCD_STROBE;
 381   1             LCD_objectSendByte1(0x43);        /* Address */
 382   1      
 383   1             SET_LCD_STROBE;
 384   1             CLEAR_LCD_CLK;
 385   1      
 386   1             for (i = 0; i < 32; i++)
 387   1             {
 388   2                  key_value >>=1;
 389   2      
 390   2                  SET_LCD_CLK;
 391   2                  if(LCD_DOUT){
 392   3                     key_value |= 0x80000000;
 393   3                  } 
 394   2      
 395   2                  CLEAR_LCD_CLK;
 396   2             }
 397   1      
 398   1             CLEAR_LCD_STROBE;
 399   1             SET_LCD_DOUT;
 400   1      
 401   1      
 402   1             key_value |= 0x302013;
 403   1      
 404   1             if((key_value & 0x0000FF) != 0x000013){       
 405   2                 KeyData = key_value & 0xFF;
 406   2      
 407   2             } else if((key_value & 0x00FF00) != 0x002000){
 408   2                        key_value >>= 8;
 409   2                        KeyData = key_value & 0xFF;
 410   2      
C51 COMPILER V6.23a  LCD                                                                   08/20/2002 17:07:42 PAGE 8   

 411   2             } else if((key_value & 0xFF0000) != 0x300000){
 412   2                        key_value >>= 16;
 413   2                        KeyData = key_value & 0xFF;      /* jy add & chang */
 414   2             }
 415   1      
 416   1      
 417   1             if(timer2 == 0) Old_key = 0;
 418   1      
 419   1             if(KeyData == Old_key){
 420   2                return 0;
 421   2             } else {
 422   2                Old_key = KeyData; 
 423   2                return KeyData;
 424   2             }
 425   1      
 426   1      }
 427          
 428          
 429          #if 0
              void  LCD_Turn_char(void)
              {             
                                CLEAR_LCD_STROBE;                 /* CE  */
                                LCD_objectSendByte1(0x42);        /* Address */
                                SET_LCD_STROBE;                   /* CE  */
              
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0);
                                CLEAR_LCD_STROBE;
              
                                LCD_objectSendByte1(0x42);        /* Address */
                                SET_LCD_STROBE;                   /* CE  */
              
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0x8000);
                                CLEAR_LCD_STROBE;
              
                                LCD_objectSendByte1(0x42);        /* Address */
                                SET_LCD_STROBE;                   /* CE  */
              
                                LCD_objectSendByte4(turn_char[_timer0]);
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0);
                                LCD_objectSendByte4(0x4000);
                                CLEAR_LCD_STROBE;
                                //CLEAR_LCD_DOUT;
              }
              #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1622    ----
   CONSTANT SIZE    =    316    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      14
   IDATA SIZE       =      6    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V6.23a  LCD                                                                   08/20/2002 17:07:42 PAGE 9   


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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