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

📄 yejing12864.lst

📁 LCD1602.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
 157          };
 158          
 159          
 160          
 161          
 162          //函数声明
 163          void  initializeLCD(void);
 164          void  check_busy(void);
 165          void  l_w_code(char l_code);
 166          void  l_w_data(char l_data);
 167          void  r_w_code(char r_code);
 168          void  r_w_data(char r_data);
 169          void  l_display(void);
 170          void  r_display(void);
 171          
 172          //初始化
 173          void  initializeLCD(void)
 174                {
 175   1            l_w_code(0x3f);         //开显示设置      
 176   1            l_w_code(0xc0);         //设置显示起始行为第一行      
 177   1            l_w_code(0xb8);         //页面地址设置    
 178   1            l_w_code(0x40);         //列地址设为0
 179   1            r_w_code(0x3f);
C51 COMPILER V8.02   YEJING12864                                                           04/27/2007 17:07:10 PAGE 4   

 180   1            r_w_code(0xc0);   
 181   1            r_w_code(0xb8);
 182   1            r_w_code(0x40);
 183   1            }     
 184                      
 185          //检测忙状态
 186          void  check_busy(void)
 187                {
 188   1      
 189   1            E=1;
 190   1            RS=0;
 191   1            RW=1;
 192   1            
 193   1            P0=0xff;
 194   1            ACC=P0; 
 195   1            while(!busy);                        //这边我觉得应该是while(busy);可是不行,
 196   1                                                 // 看别人这么写的,也就采用了,可把它屏蔽了也没关系,
 197   1                                                 //不信的可以试试,我试过了,没这句也可以
 198   1      
 199   1      
 200   1            }
 201                
 202          //写指令代码(左)
 203          void  l_w_code(char     l_code)
 204                {
 205   1            check_busy();
 206   1            P2=0xf2;                            //1111 0010;E=1,RW=0,RS=0,CS2=1,CS1=0
 207   1            P0=l_code;
 208   1            E=1;
 209   1            E=0;
 210   1            }
 211                
 212          //写显示数据(左)      
 213          void  l_w_data(char l_data)
 214                {
 215   1            check_busy();
 216   1            P2=0xf6;                            //1111 0110;E=1,RW=0,RS=1,CS2=1,CS1=0
 217   1            P0=l_data;
 218   1            E=1;
 219   1            E=0;
 220   1            }
 221                
 222                
 223          //写指令代码(右)
 224          void  r_w_code(char     r_code)
 225                {
 226   1            check_busy();
 227   1            P2=0xf1;                            //1111 0001;E=1,RW=0,RS=0,CS2=0,CS1=1
 228   1            P0=r_code;
 229   1            E=1;
 230   1            E=0;
 231   1            }
 232                
 233          //写显示数据(右)      
 234          void  r_w_data(char r_data)
 235                {
 236   1            check_busy();
 237   1            P2=0xf5;                            //1111 0101;E=1,RW=0,RS=1,CS2=0,CS1=1
 238   1            P0=r_data;
 239   1            E=1;
 240   1            E=0;
 241   1            }     
C51 COMPILER V8.02   YEJING12864                                                           04/27/2007 17:07:10 PAGE 5   

 242           
 243          void  display()
 244                {k=0; 
 245   1            for(i=0xb8;i<0xc0;i++)
 246   1                  {
 247   2                  l_w_code(i);                  //写入页地址
 248   2                  l_w_code(0x40);               //第一列开始
 249   2                  for(j=64;j>0;j--)
 250   2                        {
 251   3                        l_w_data(tab1[k++]);
 252   3                        }
 253   2                  r_w_code(i);                  //写入页地址
 254   2                  r_w_code(0x40);               //第一列开始
 255   2                  for(j=64;j>0;j--)
 256   2                        {
 257   3                        r_w_data(tab1[k++]);
 258   3                        }
 259   2                  }
 260   1              }
 261          void  display1()
 262                {k=0; 
 263   1            for(i=0xb8;i<0xc0;i++)
 264   1                  {
 265   2                  l_w_code(i);                  //写入页地址
 266   2                  l_w_code(0x40);               //第一列开始
 267   2                  for(j=64;j>0;j--)
 268   2                        {
 269   3                        l_w_data(tab2[k++]);
 270   3                        }
 271   2                  r_w_code(i);                  //写入页地址
 272   2                  r_w_code(0x40);               //第一列开始
 273   2                  for(j=64;j>0;j--)
 274   2                        {
 275   3                        r_w_data(tab2[k++]);
 276   3                        }
 277   2                  }
 278   1              }
 279          
 280          
 281          void  main(void)
 282                {
 283   1            P0=0x00;
 284   1            initializeLCD();
 285   1            while(1)
 286   1                  {
 287   2                  k=0;
 288   2                  //l_display();
 289   2                  //r_display();
 290   2            
 291   2                  display();
 292   2                 for (k=0;k<50000;k++);
 293   2                  display1();  
 294   2                  for (k=0;k<50000;k++);
 295   2                  }
 296   1            }
 297                
 298                
 299          
 300                      
 301                      
 302                      
 303                      
C51 COMPILER V8.02   YEJING12864                                                           04/27/2007 17:07:10 PAGE 6   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    394    ----
   CONSTANT SIZE    =   2048    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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