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

📄 my01.lst

📁 OLED的应用程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 193   1                      for(j=1;j<=255;j+=2)
 194   1                              WriteData(d1[j]);       //屏幕显示,全亮
 195   1      
 196   1              WriteCommand (0xb5);    //设置显示位置—行
 197   1              WriteCommand (0x00);      //设置显示位置—列低地址
 198   1              WriteCommand (0x10);      //设置显示位置—列高地址
 199   1                      for(j=0;j<255;j+=2)
 200   1                              WriteData(d1[j]);        //屏幕显示,全亮
 201   1      //-----------------------------------------------------------------------
 202   1              WriteCommand (0x40);
 203   1              WriteCommand (0xb2);    //设置显示位置—行
 204   1              WriteCommand (0x00);      //设置显示位置—列低地址
 205   1              WriteCommand (0x10);      //设置显示位置—列高地址
 206   1                      for(j=1;j<=255;j+=2)
 207   1                              WriteData(d2[j]);       //屏幕显示,全亮
 208   1      
 209   1              WriteCommand (0xb3);    //设置显示位置—行
 210   1              WriteCommand (0x00);      //设置显示位置—列低地址
 211   1              WriteCommand (0x10);      //设置显示位置—列高地址
 212   1                      for(j=0;j<255;j+=2)
 213   1                              WriteData(d2[j]);        //屏幕显示,全亮
 214   1      //-----------------------------------------------------------------------
 215   1              WriteCommand (0x40);
 216   1              WriteCommand (0xb0);    //设置显示位置—行
 217   1              WriteCommand (0x00);      //设置显示位置—列低地址
 218   1              WriteCommand (0x10);      //设置显示位置—列高地址
 219   1                      for(j=1;j<=255;j+=2)
 220   1                              WriteData(d3[j]);       //屏幕显示,全亮
 221   1      
 222   1              WriteCommand (0xb1);    //设置显示位置—行
 223   1              WriteCommand (0x00);      //设置显示位置—列低地址
 224   1              WriteCommand (0x10);      //设置显示位置—列高地址
 225   1                      for(j=0;j<255;j+=2)
 226   1                              WriteData(d3[j]);        //屏幕显示,全亮
 227   1              TMOD=0X11;
 228   1          TH0=(65535-50000)/256;
 229   1          TL0=(65535-50000)%256;
 230   1          TR0=1;//启动计时器
 231   1          ET0=1;
 232   1              EA=1;
 233   1              while(1)
 234   1              {
 235   2                      if(!DOWN)
 236   2                      {       delay(10);
 237   3                              if(!DOWN)
 238   3                                      {
 239   4                                              cc=0;
 240   4                                              WriteCommand(0xAf); // AF=ON , AE=OFF
 241   4                                              b-=5;
C51 COMPILER V7.50   MY01                                                                  11/07/2006 20:14:31 PAGE 5   

 242   4                                              if(b<0) b=255;
 243   4                                              WriteCommand(0x81);
 244   4                                              WriteCommand(b);        
 245   4                                      }               
 246   3                      }
 247   2                      if(!UP)
 248   2                      {       delay(10);
 249   3                              if(!UP)
 250   3                                      {
 251   4                                              cc=0;
 252   4                                              WriteCommand(0xAF); // AF=ON , AE=OFF
 253   4                                              b+=5;
 254   4                                              if(b>255) b=0;
 255   4                                              WriteCommand(0x81);
 256   4                                              WriteCommand(b);
 257   4                                      }
 258   3                      }       //      key panduan                     
 259   2              }
 260   1      }
 261          /**************************实现函数********************************************
 262          *函数原型:              unsigned char ReadCommand(void);
 263          *功  能:              从oled上读当前命令到控制器。
 264          *******************************************************************************/
 265          void WriteCommand(unsigned com)
 266          {
 267   1              CS=1;
 268   1              DC=0;
 269   1              WR=0;   
 270   1              RD=1;
 271   1              CS=0;
 272   1              DAT=com;        
 273   1              CS=1;   
 274   1      }
 275          /**************************实现函数********************************************
 276          *函数原型:              void WriteData(unsigned dat);
 277          *功  能:              写数据到oled显示屏。
 278          *******************************************************************************/
 279          void WriteData(unsigned dat)
 280          {
 281   1              CS=1;
 282   1              DC=1;   
 283   1              WR=0;
 284   1              RD=1;
 285   1              CS=0;
 286   1              DAT=dat;
 287   1              CS=1;
 288   1      }
 289          /**************************实现函数********************************************
 290          *函数原型:              void esbusini(void);
 291          *功  能:              总线初始化。
 292          *******************************************************************************/
 293          void esbusini(void)
 294          {
 295   1              RES=0;
 296   1              RES=1;
 297   1      }
 298          /**************************实现函数********************************************
 299          *函数原型:              void ini_dis(void);
 300          *功  能:              显示初始化。
 301          *******************************************************************************/
 302          void ini_dis(void)
 303          {
C51 COMPILER V7.50   MY01                                                                  11/07/2006 20:14:31 PAGE 6   

 304   1              unsigned char i,j;
 305   1              for(i=0;i<8;i++)
 306   1              {
 307   2                      WriteCommand (0xb0+i);    //设置显示位置—行
 308   2                      WriteCommand (0x00);      //设置显示位置—列低地址
 309   2                      WriteCommand (0x10);      //设置显示位置—列高地址
 310   2                      for(j=0;j<128;j++)
 311   2                              WriteData(0x00);        //屏幕显示,全亮
 312   2              }
 313   1      }
 314          /**************************实现函数********************************************
 315          *函数原型:              void ini_oled(void);
 316          *功  能:              oled显示的准备工作。
 317          *******************************************************************************/
 318          void ini_oled(void)
 319          {
 320   1              esbusini();
 321   1              /*************************************************
 322   1              // SSD1303 Initialization Command
 323   1              *************************************************/
 324   1              // Lower Column Address
 325   1              WriteCommand(0x00); /* Set Lower Column Address */
 326   1              // High Column Address
 327   1              WriteCommand(0x10); /* Set Higher Column Address*/
 328   1              // Display Start Line
 329   1              WriteCommand(0x40); /* Set Display Start Line */
 330   1              // Contrast Control Register
 331   1              WriteCommand(0x81); /* Set Contrast Control */
 332   1              WriteCommand(0x20); /* 0 ~ 255 */
 333   1              // Re-map
 334   1              WriteCommand(0xA0); /* [A0]:column address 0 is map 
 335   1              to SEG0 , [A1]: columnaddress 131 is map to SEG0*/ 
 336   1              // Entire Display ON/OFF
 337   1              WriteCommand(0xA4); /* A4=ON */
 338   1              // Normal or Inverse Display
 339   1              WriteCommand(0XA6); /* Normal Display*/
 340   1              // Multiplex Ratio
 341   1              WriteCommand(0xA8); /* Set Multiplex Ratio */
 342   1              WriteCommand(0x3f); /* Set to 36 Mux*/
 343   1              // Set DC-DC
 344   1              WriteCommand(0xAD); /* Set DC-DC */
 345   1              WriteCommand(0x8A); /* 8B=ON, 8A=Off */
 346   1              // Display ON/OFF
 347   1              WriteCommand(0xAE); /* AF=ON , AE=OFF*/
 348   1              // Display Offset
 349   1              WriteCommand(0xD3); /* Set Display Offset */
 350   1              WriteCommand(0x00); /* No offset */
 351   1              // Display Clock Divide
 352   1              WriteCommand(0xD5); /* Set Clock Divide */
 353   1              WriteCommand(0x20); /* Set to 80Hz */
 354   1              // Area Color Mode
 355   1              WriteCommand(0xD8); /* Set Area Color On or Off*/
 356   1              WriteCommand(0x00); /* Mono Mode */
 357   1              // COM Pins Hardware Configuration
 358   1              WriteCommand(0xDA); /* Set Pins HardwareConfiguration */
 359   1              WriteCommand(0x12);
 360   1              // VCOMH
 361   1              WriteCommand(0xDB); /* Set VCOMH */
 362   1              WriteCommand(0x00);
 363   1              // VP
 364   1              WriteCommand(0xD9); /* Set VP */
 365   1              WriteCommand(0x22); /* P1=2 , P2=2 */
C51 COMPILER V7.50   MY01                                                                  11/07/2006 20:14:31 PAGE 7   

 366   1              WriteCommand(0xc0);//配置成标准应用
 367   1              ini_dis();
 368   1      }
 369          void delay(unsigned char m)
 370          {
 371   1              unsigned char i,j;
 372   1              while(--m)
 373   1                      {
 374   2                              for(i=0;i<50;i++)
 375   2                                      for(j=0;j<80;j++);
 376   2                      }
 377   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    876    ----
   CONSTANT SIZE    =   1024    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       3
   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 + -