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

📄 lcd12864a.lst

📁 RF24L01例程(FLY2000-51)
💻 LST
📖 第 1 页 / 共 3 页
字号:
             -x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 205          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x80,0x00,0x00,0x00,0
             -x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 206          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,         /*"!", 入口地址7*/
 207          
 208          
C51 COMPILER V7.06   LCD12864A                                                             08/18/2010 16:03:38 PAGE 5   

 209          };
 210          
 211          
 212          
 213          /*************************************************/
 214           /*延时*/
 215          /*************************************************/
 216          void delay(void)    
 217           {unsigned char i,j;
 218   1         for(i=32;i>0;i--)
 219   1          for(j=255;j>0;j--);
 220   1       }
 221          
 222           /*************************************************/
 223           /*延时*/
 224          /*************************************************/
 225          void delay1(void)    
 226           {unsigned char i,j;
 227   1         for(i=255;i>0;i--)
 228   1          {
 229   2              for(j=255;j>0;j--) 
 230   2              {nop();
 231   3               nop();
 232   3               nop();
 233   3               nop();
 234   3               nop();
 235   3               nop();
 236   3               nop();
 237   3               nop();}
 238   2              }
 239   1       }
 240          /*************************************************/
 241          //初始化
 242          /*************************************************/
 243          void lcd_init(void)
 244          {
 245   1        rst=0;
 246   1        delay();
 247   1        rst=1;
 248   1        delay();
 249   1        wcom(0xa3);        //LCD BIAS SET ( A2 1/8;A3 1/65DUTY)
 250   1        wcom(0xa0);        //ADC  select,NORMAL   0-->127
 251   1        wcom(0xaf);        // DISPLAY ON/OFF
 252   1        wcom(0x2f);        //power control(VB,VR,VF=1,1,1)
 253   1        wcom(0x23);        // VOLT REGULATOR RADIO SET 
 254   1        wcom(0x81);        //ELECTRONIC VOLUME mode setting 100B 对比度命令
 255   1        wcom(0x28);        //REFERENCE VOLT REG  set
 256   1        wcom(0xc0);        //SHL SELECT
 257   1        wcom(0xaf);        //DISPLAY ON/OFF
 258   1        wcom(0x40);        // DISPLAY START LINE SET
 259   1        nop();
 260   1        nop();
 261   1      }
 262          
 263          
 264          
 265          /*************************************************/
 266          //写命令
 267          /*************************************************/
 268          
 269          void wcom(unsigned char com)
 270           { 
C51 COMPILER V7.06   LCD12864A                                                             08/18/2010 16:03:38 PAGE 6   

 271   1         cs1=0;
 272   1         nop();
 273   1         a0=0;                   //a0='0',写入命令
 274   1         nop();
 275   1         write(com);
 276   1         nop();
 277   1         nop(); 
 278   1         cs1=1;
 279   1      }
 280          
 281          /*************************************************/
 282          //写数据
 283          /*************************************************/
 284          
 285          void wdata(unsigned char dat)
 286           {
 287   1         cs1=0;
 288   1         nop();
 289   1         a0=1;                  //a0='1',写入数据
 290   1         nop();
 291   1         write(dat);  
 292   1         nop();
 293   1         nop(); 
 294   1         cs1=1;
 295   1      }
 296          /*************************************************
 297          //串口移位输出, SPI方式写入8bit 数据
 298          /*************************************************/
 299          
 300          void write(unsigned char dat)
 301           {  unsigned char s,temp;
 302   1          int i;
 303   1          sclk=0;
 304   1          s=dat;
 305   1      
 306   1          for(i=8;i>0;i--)
 307   1            {sclk=0;
 308   2             nop();
 309   2             nop();
 310   2             temp=s & 0x80;                   //先送高位,再送低位
 311   2             if(temp)
 312   2                  {di=1;}
 313   2             else {di=0;}
 314   2      
 315   2             sclk=1;   
 316   2             s=s<<1;  
 317   2            }
 318   1       } 
 319          
 320          /********************************************/
 321          /*  西文字符写入函数:CW_PR  8*8             */
 322          
 323          void cwpr(unsigned char cod,unsigned char page,unsigned char seg)
 324          { unsigned char zmseg;
 325   1      
 326   1              wcom(0xaf);// 开显示
 327   1                  wcom(0xb0+page);   // 设定页地址,设定page命令是0xB0,共 9 page                                       
 328   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 329   1              wcom(0x0f&seg);             // 写低四位列地址                   
 330   1                      for(zmseg=0;zmseg<8;zmseg++)
 331   1              {   
C51 COMPILER V7.06   LCD12864A                                                             08/18/2010 16:03:38 PAGE 7   

 332   2                              wdata(success[cod*8+zmseg]);  // 连续写入8个数据
 333   2      
 334   2      }
 335   1      }
 336          
 337          
 338          /********************************************/
 339          /*  西文字符写入函数:CW_PR    16*16         */
 340          
 341          void cwpr16(unsigned char cod,unsigned char page,unsigned char seg)
 342          { unsigned char zmseg;
 343   1      
 344   1              wcom(0xaf);// 开显示
 345   1                  wcom(0xb0+page);   // 设定页地址,设定page命令是0xB0,共 9 page                                       
 346   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 347   1              wcom(0x0f&seg);             // 写低四位列地址                   
 348   1                      for(zmseg=0;zmseg<16;zmseg++)
 349   1              {   
 350   2                              wdata(largedigtal[cod*32+zmseg]);  // 连续写入16个数据
 351   2              }
 352   1                  wcom(0xb0+page-1);   // 设定页地址,设定page命令是0xB0,共 9 page                                     
             -  
 353   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 354   1              wcom(0x0f&seg);             // 写低四位列地址                   
 355   1                      for(zmseg=16;zmseg<32;zmseg++)
 356   1              {   
 357   2                              wdata(largedigtal[cod*32+zmseg]);  // 连续写入16个数据
 358   2              }
 359   1      
 360   1      }
 361          
 362          
 363          
 364          /********************************************/
 365          /*  西文字符写入函数:CW_PR    16*8         */
 366          /*  写入数字和英文字母    16行 8列                  */
 367          /********************************************/
 368          void writedigital(unsigned char cod,unsigned char page,unsigned char seg)
 369          { unsigned char zmseg;
 370   1      
 371   1              wcom(0xaf);// 开显示
 372   1                  wcom(0xb0+page);   // 设定页地址,设定page命令是0xB0,共 9 page                                       
 373   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 374   1              wcom(0x0f&seg);             // 写低四位列地址                   
 375   1                      for(zmseg=8;zmseg>0;zmseg--)
 376   1              {   
 377   2                              wdata(largedigtal[cod*16+zmseg]);  // 连续写入16个数据
 378   2              }
 379   1                  wcom(0xb0+page-1);   // 设定页地址,设定page命令是0xB0,共 9 page                                     
             -  
 380   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 381   1              wcom(0x0f&seg);             // 写低四位列地址                   
 382   1                      for(zmseg=16;zmseg>8;zmseg--)
 383   1              {   
 384   2                              wdata(largedigtal[cod*16+zmseg]);  // 连续写入16个数据
 385   2              }
 386   1      
 387   1      }
C51 COMPILER V7.06   LCD12864A                                                             08/18/2010 16:03:38 PAGE 8   

 388          
 389          
 390          
 391          /********************************************/
 392          /*  中文字符写入函数:CW_PR    16*16         */
 393          /*            写入一个汉字                  */
 394          /*                                          */
 395          /********************************************/
 396          void writeone(unsigned char cod,unsigned char page,unsigned char seg)
 397          { unsigned char zmseg;
 398   1      
 399   1              wcom(0xaf);// 开显示
 400   1                  wcom(0xb0+page);   // 设定页地址,设定page命令是0xB0,共 9 page                                       
 401   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 402   1              wcom(0x0f&seg);             // 写低四位列地址                   
 403   1                      for(zmseg=16;zmseg>0;zmseg--)
 404   1              {   
 405   2                              wdata(hanzi[cod*32+zmseg]);  // 连续写入16个数据
 406   2              }
 407   1                  wcom(0xb0+page-1);   // 设定页地址,设定page命令是0xB0,共 9 page                                     
             -  
 408   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 409   1              wcom(0x0f&seg);             // 写低四位列地址                   
 410   1                      for(zmseg=32;zmseg>16;zmseg--)
 411   1              {   
 412   2                              wdata(hanzi[cod*32+zmseg]);  // 连续写入16个数据
 413   2              }
 414   1      }
 415          
 416          
 417          /********************************************/
 418          /*  中文字符写入函数:CW_PR    32*32         */
 419          /*            写入一个汉字                  */
 420          /*                                          */
 421          /********************************************/
 422          void writeonebig(unsigned char cod,unsigned char page,unsigned char seg)
 423          { unsigned char zmseg;
 424   1      
 425   1              wcom(0xaf);// 开显示
 426   1                  wcom(0xb0+page);   // 设定页地址,设定page命令是0xB0,共 9 page                                       
 427   1              wcom(0x10+(0x0f&(seg>>4))); // 设定列地址, 设定列地址命令0x01 , 列制止范围 0~131    , 写高四位列地
             -址                      
 428   1              wcom(0x0f&seg);             // 写低四位列地址                   
 429   1                      for(zmseg=32;zmseg>0;zmseg--)
 430   1              {   
 431   2                              wdata(hanzibig[cod*128+zmseg]);  // 连续写入32个数据
 432   2              }
 433   1      

⌨️ 快捷键说明

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