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

📄 jrmlcd.lst

📁 用keil和proteus做的液晶驱动。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 177                                         
 178          {0x00,0x48,0x54,0x54,0x54,0x20},//s              
C51 COMPILER V8.08   JRMLCD                                                                08/19/2008 15:03:57 PAGE 4   

 179                                          
 180          {0x00,0x04,0x3f,0x44,0x44,0x24},//t               
 181                                         
 182          {0x00,0x3c,0x40,0x40,0x20,0x7e},//u             
 183                                         
 184          {0x00,0x1d,0x20,0x40,0x20,0x1c},//v               
 185                                                                   
 186          {0x00,0x3c,0x40,0x30,0x40,0x3c},//w               
 187                                         
 188          {0x00,0x44,0x28,0x10,0x28,0x44},//x               
 189                                         
 190          {0x00,0x06,0x48,0x48,0x48,0x3e},//y               
 191                                         
 192          {0x00,0x44,0x64,0x54,0x4c,0x44},//z              
 193          
 194          {0x00,0x00,0x08,0x36,0x41,0x00},//{
 195          
 196          {0x00,0x00,0x00,0x7e,0x00,0x00},//|
 197                                         
 198          {0x00,0x00,0x41,0x36,0x08,0x00},//} 
 199           
 200          {0x00,0x04,0x08,0x04,0x08,0x04} //~
 201          };
 202          
 203          /*----------------------------------
 204          函数功能:初始化LCD
 205          输入:无
 206          输出:无
 207          -----------------------------------*/
 208          void InitLCD()
 209          {
 210   1              WriteCmdLCD(0,LCD_RESET);                //初始化
 211   1              WriteCmdLCD(0,LCD_DUTY32);
 212   1              WriteCmdLCD(0,LCD_DRIVER_ON);      //开驱动
 213   1              WriteCmdLCD(0,LCD_DISPLAY_ON);          //开显示
 214   1              WriteCmdLCD(0,0xA1);                         //设置ADC
 215   1      
 216   1              WriteCmdLCD(1,LCD_RESET);                //初始化
 217   1              WriteCmdLCD(1,LCD_DUTY32);
 218   1              WriteCmdLCD(1,LCD_DRIVER_ON);      //开驱动
 219   1              WriteCmdLCD(1,LCD_DISPLAY_ON);          //开显示
 220   1              WriteCmdLCD(1,0xA1);                         //设置ADC
 221   1      //      SetLineLCD(0);                   //设置行
 222   1      //      SetColumnLCD(0);                 //设置显示列 
 223   1      //      SetPageLCD(0);                   //设置页地址   
 224   1      }
 225          
 226          /*----------------------------------
 227          函数功能:读LCD的状态
 228          输入:无
 229          输出:   0:空闲
 230                  1:忙
 231          -----------------------------------*/
 232          bit ReadStateLCD()
 233          {
 234   1              E1 = 0;
 235   1              CDout = 0xFF;        //输出1,准备读数据
 236   1              A0 = 0;
 237   1              RW = 1;
 238   1              nop6;
 239   1              E1 = 1;
 240   1              nop6;
C51 COMPILER V8.08   JRMLCD                                                                08/19/2008 15:03:57 PAGE 5   

 241   1              return BF;               //返回最高位
 242   1      }
 243          
 244          /*---------------------------------
 245          函数功能:发送一条指令
 246          输入:  cmd:发送的指令
 247          输出: 无
 248          ----------------------------------*/
 249          void WriteCmdLCD(bit selchip,uint8 cmd)
 250          {       
 251   1              A0 = 0;
 252   1              RW = 0;
 253   1              if(!selchip)
 254   1              {
 255   2                      E1 = 0;
 256   2                      nop6;
 257   2                      E1 = 1;
 258   2                      CDout = cmd;
 259   2                      nop6;
 260   2                      E1 = 0;
 261   2              }
 262   1              else
 263   1              {
 264   2                      E2 = 0;
 265   2                      nop6;
 266   2                      E2 = 1;
 267   2                      CDout = cmd;
 268   2                      nop6;
 269   2                      E2 = 0; 
 270   2              }
 271   1      }
 272          
 273          /*-------------------------------------
 274          函数功能:向其一发送一个字节
 275          输入:selchip :选择芯片0:第一个,1:第二个
 276               nadata :输入的数据
 277          输出:无
 278          --------------------------------------*/
 279          void WriteRamLCD(bit selchip,uint8 ndata)
 280          {
*** WARNING C235 IN LINE 280 OF JRMLCD.C: parameter 2: different types
 281   1          A0=1;
 282   1          RW=0;
 283   1          if(!selchip)
 284   1          {
 285   2              E1=1;
 286   2              CDout=ndata;
 287   2              nop6;
 288   2                      E1=0;
 289   2              nop6;
 290   2          }
 291   1          else
 292   1          {
 293   2              E2=1;
 294   2              CDout=ndata;
 295   2              nop3;
 296   2                      E2=0;
 297   2                      nop6;
 298   2          }
 299   1      }
 300          
 301          /*----------------------------------------------------
C51 COMPILER V8.08   JRMLCD                                                                08/19/2008 15:03:57 PAGE 6   

 302          函数功能:向其一RAM写一个字符,即6个字节
 303          输入:selchip :选择芯片0:第一个,1:第二个
 304               ndata   :要发送的字符
 305          输出:无
 306          ----------------------------------------------------*/
 307          void WriteCharLCD(bit selchip,uint8 ndata)
 308          {
 309   1              uint8 i;
 310   1              for(i=0; i<6; i++)
 311   1                      WriteRamLCD(selchip,ASCII[ndata-32][i]);        
 312   1      }
 313          
 314          /*-----------------------------------------------------
 315          函数功能:向LCD写一串数据,数据以字符的形式存在数组中
 316          输入:   selchip:选择芯片,0:第一个,1:第二个
 317                          count :字符的个数,count要小于等于10
 318                  ndata:字符的首地址
 319          输出:无
 320          ------------------------------------------------------*/
 321          void WriteStrLCD(bit selchip,uint8 count,uint8 *ndata)
 322          {
 323   1              uint8 i;
 324   1      
 325   1              if(count>10)
 326   1                      return;
 327   1              for(i=0; i<count; i++)
 328   1                      WriteCharLCD(selchip, ndata[i]);                
 329   1      }
 330          
 331          /*----------------------------------------------------
 332          函数功能:写其中一个RAM的一页
 333          输入:  npage: 页数
 334                 ndata: 61个字节的首地址   
 335          ----------------------------------------------------*/
 336          /*void WritePageLCD(uint8 npage,uint8 *ndata)
 337          {
 338              uint8 i;
 339              bit selchip = npage%3;
 340              SetPageLCD(npage%4);
 341              SetColumnLCD(0);
 342              for(i=0;i<61;i++)
 343                  WriteRamLCD(selchip,ndata[i]);
 344          }  */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    282    ----
   CONSTANT SIZE    =    570    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       4
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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