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

📄 lcd.lst

📁 可视门铃的主机软件
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  LCD                                                                    03/10/2006 14:34:51 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE LCD.C DB OE SMALL ROM(LARGE) 

stmt level    source

   1          
   2          #include "defineh.h"
   3          #include "externh.h"
   4          #include "lcd.h"
   5          //#include "gloge.h"
   6          
   7          sbit mLcdRs     = P1^0;         /*LCD数据和命令选择低为命令,高为数据*/
   8          sbit mLcdClk    = P1^1;         /*LCD读写时钟*/
   9          void d_work1(void);  //显示有信息,请按井字键查询
  10          
  11          /************************************************/
  12          void disttime(void)
  13          {
  14   1       uchar i;
  15   1       cleardis_buffer();
  16   1       for(i=0;i<20;i++)
  17   1         dis_buffer[i]=display21[i];
  18   1       i=time[0];
  19   1       i>>=4;
  20   1       if(i>0x02) i=0;  //月份的十位//判断显示的时间是否为符合正常要求
  21   1       dis_buffer[2]=distable[i];
  22   1       i=time[0];
  23   1       i&=0x0f;
  24   1       if(i>0x0a) i=0;  //月份的个位//判断显示的时间是否为符合正常要求
  25   1       dis_buffer[3]=distable[i]; 
  26   1       i=time[1];
  27   1       i>>=4;
  28   1       if(i>0x04) i=0;  //日期的十位://判断显示的时间是否为符合正常要求
  29   1       dis_buffer[6]=distable[i];
  30   1       i=time[1];
  31   1       i&=0x0f;
  32   1       if(i>0x0a) i=0;  //日期的个位://判断显示的时间是否为符合正常要求
  33   1       dis_buffer[7]=distable[i];
  34   1       i=time[2];
  35   1       i>>=4;
  36   1       if(i>0x06) i=0;  //小时的十位//判断显示的时间是否为符合正常要求
  37   1       dis_buffer[12]=distable[i];
  38   1       i=time[2];
  39   1       i&=0x0f;
  40   1       if(i>0x0a) i=0;  //小时的个位 //判断显示的时间是否为符合正常要求
  41   1       dis_buffer[13]=distable[i];
  42   1       i=time[3];
  43   1       i>>=4;
  44   1       if(i>0x06) i=0;  //分钟的十位//判断显示的时间是否为符合正常要求
  45   1       dis_buffer[15]=distable[i];
  46   1       i=time[3];
  47   1       i&=0x0f;
  48   1       if(i>0x0a) i=0;  //分钟的个位 //判断显示的时间是否为符合正常要求
  49   1       dis_buffer[16]=distable[i];
  50   1       disLCD(SECONDLINE);
  51   1      }
  52          /************************************************/
  53          void dis(uchar disnum)
  54          {
  55   1       switch(disnum)
C51 COMPILER V6.02  LCD                                                                    03/10/2006 14:34:51 PAGE 2   

  56   1        {
  57   2         case 1: 
  58   2               #if  DOORFIVE
                        {
                        display(FIRSTLINE,display101);
                        display(SECONDLINE,display102); 
                        }
                        #else
  64   2                
  65   2                display(FIRSTLINE,display1);
  66   2                display(SECONDLINE,display2); 
  67   2                #endif
  68   2                break;          
  69   2                
  70   2         case 2: display(FIRSTLINE,display3);display(SECONDLINE,display4); break;
  71   2         case 3: 
  72   2                #if  DOORSEVEN            
                             display(SECONDLINE,display107);            
                       #elif DOORFIVE
                             display(SECONDLINE,display106); 
                       #endif
  77   2                #if  DOORFIVE
                        {
                          display(FIRSTLINE,display105);
                                    
                        } 
                        
                        #else 
  84   2                {
  85   3                 display(FIRSTLINE,display5);
  86   3                 display(SECONDLINE,display6); 
  87   3                }
  88   2               #endif
  89   2               
  90   2               
  91   2               break;
  92   2         case 4: display(FIRSTLINE,display7);display(SECONDLINE,display8); break;
  93   2         case 5: display(FIRSTLINE,display9);display(SECONDLINE,display10); break;
  94   2         case 6: d_work1();   //显示短信息  
  95   2         		 break;
  96   2         case 7: { if(timedis_bit) //显示时间
  97   3                     {
  98   4                   	 display(FIRSTLINE,display20);
  99   4                  	 disttime(); 
 100   4                  	 //timedis_bit=0; 
 101   4                  	} 
 102   3                   else  {
 103   4                   		 distime=DELATIMEEND;
 104   4                  		 //display(FIRSTLINE,display1);
 105   4                  		 //display(SECONDLINE,display2);
 106   4                  		 }
 107   3                   }                 
 108   2                   break; 
 109   2         
 110   2        /* case 7: display(FIRSTLINE,disENROOM); break;
 111   2         case 8: display(FIRSTLINE,disWAIT); break;
 112   2         case 9: display(FIRSTLINE,disMIMA); break;
 113   2         case 10: display(FIRSTLINE,disSORRY); break;
 114   2         case 11: display(SECONDLINE,disERROR); break;
 115   2         case 12: display(FIRSTLINE,disPLEASE); break;
 116   2         case 13: display(FIRSTLINE,disUSER); break;
 117   2         case 14: display(SECONDLINE,disCEN); break;
C51 COMPILER V6.02  LCD                                                                    03/10/2006 14:34:51 PAGE 3   

 118   2         case 15: display(THREELINE,disSYS); break;
 119   2         case 16: display(FIRSTLINE,disUSERMI); break;
 120   2         case 17: display(FIRSTLINE,disCENMI); break;
 121   2         case 18: display(SECONDLINE,disONOFF); break;
 122   2         case 19: display(THREELINE,disIDCARD); break;
 123   2         case 20: display(FIRSTLINE,disIDADD); break;
 124   2         case 21: display(SECONDLINE,disIDSUB); break;
 125   2      
 126   2         case 23: display(FIRSTLINE,disLOUNUM); break;
 127   2         case 24: display(SECONDLINE,disMASTER); break;
 128   2         case 26: display(FOURLINE,disTRYUSE); break;     */
 129   2      
 130   2         default:                         break;
 131   2        }
 132   1      }
 133          void d_work1(void)
 134          {
 135   1      uchar wu;
 136   1      disclr();
 137   1      for(wu=0;wu<20;wu++)
 138   1      {
 139   2       dis_buffer[wu]=0x20;
 140   2      }
 141   1      dis_buffer[0]=0x20;
 142   1      dis_buffer[1]=0x20;
 143   1      dis_buffer[2]=0x20;
 144   1      dis_buffer[3]=0x20;
 145   1      dis_buffer[4]=0xD3;
 146   1      dis_buffer[5]=0xD0;
 147   1      dis_buffer[6]=0x20;
 148   1      dis_buffer[7]=0x20;
 149   1      dis_buffer[8]=0xD0;
 150   1      dis_buffer[9]=0xC5;
 151   1      dis_buffer[10]=0x20;
 152   1      dis_buffer[11]=0x20;
 153   1      dis_buffer[12]=0xCF;
 154   1      dis_buffer[13]=0xA2;
 155   1      //disLCD(FIRSTLINE);
 156   1      display(FIRSTLINE,disp22);
 157   1      
 158   1      /*dis_buffer[0]=0x20;
 159   1      dis_buffer[1]=0x20;
 160   1      dis_buffer[2]=0xc7;
 161   1      dis_buffer[3]=0xe8;
 162   1      dis_buffer[4]=0xd4;
 163   1      dis_buffer[5]=0xc4;
 164   1      dis_buffer[6]=0xD0;
 165   1      dis_buffer[7]=0xC5;
 166   1      dis_buffer[8]=0xCF;
 167   1      dis_buffer[9]=0xA2;
 168   1      for(wu=10;wu<20;wu++)
 169   1      {
 170   1       dis_buffer[wu]=0x20;
 171   1      }
 172   1      for(wu=0;wu<20;wu++)
 173   1      {
 174   1       dis_buffer[wu]=0x20;
 175   1      }
 176   1      disLCD(SECONDLINE);
 177   1      */
 178   1      
 179   1      //display(SECONDLINE,disp23);
C51 COMPILER V6.02  LCD                                                                    03/10/2006 14:34:51 PAGE 4   

 180   1      
 181   1      }
 182          /************************************************/
 183           void disLCD(uchar linenum) 
 184          {
 185   1       uchar i;
 186   1       ET0=0; //关闭TIME0 TIMEE2中断
 187   1       ET2=0;
 188   1       writereg(linenum);
 189   1       delays100us();
 190   1       for(i=0;i<20;i++)
 191   1         {
 192   2          writedata(dis_buffer[i]);
 193   2          delays100us();
 194   2         }
 195   1       ET0=1; //重新开中断
 196   1       ET2=1;
 197   1      }
 198          
 199           void disLCDinint(uchar linenum) 
 200          {
 201   1       uchar i;
 202   1       ET0=0; //关闭TIME0 TIMEE2中断
 203   1       ET2=0;
 204   1       writereg(linenum);
 205   1       delays100us();
 206   1       for(i=0;i<20;i++)
 207   1         {
 208   2          writedata(dis_buffer[i]);
 209   2          delays100us();
 210   2         }
 211   1       ET0=1; //重新开中断
 212   1       ET2=1;
 213   1      }
 214          /**********************************************/
 215          void writereg(uchar wrdata)         /*写命令到LCD寄存器*/
 216          {

⌨️ 快捷键说明

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