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

📄 serial.lst

📁 12864显示程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 184   3                      wr_lcd (comm,y+j);
 185   3                      wr_lcd (comm,x1+i);
 186   3                      wr_lcd (comm,0x30);
 187   3                      wr_lcd (dat,img[j*16+i*2]);
 188   3                      wr_lcd (dat,img[j*16+i*2+1]);
 189   3              }
 190   2              }
 191   1              for(j=32;j<64;j++)
 192   1              {
 193   2              for(i=0;i<8;i++)
 194   2              {
 195   3                      wr_lcd (comm,0x34);
 196   3                      wr_lcd (comm,y+j-32);
 197   3                      wr_lcd (comm,x2+i);
 198   3                      wr_lcd (comm,0x30);
 199   3                      wr_lcd (dat,img[j*16+i*2]);
 200   3                      wr_lcd (dat,img[j*16+i*2+1]);
 201   3              }
 202   2              }
 203   1              wr_lcd (comm,0x36);
 204   1      }
 205          /*-------------下半屏显示图形--------------*/
 206          void img_disp1 (uchar code *img)
 207          {
 208   1              uchar i,j;
 209   1              for(j=0;j<32;j++)
 210   1              {
 211   2              for(i=0;i<8;i++)
 212   2              {
 213   3                      wr_lcd (comm,0x34);
 214   3                      wr_lcd (comm,y+j);
 215   3                      wr_lcd (comm,x2+i);
 216   3                      wr_lcd (comm,0x30);
 217   3                      wr_lcd (dat,img[j*16+i*2]);
 218   3                      wr_lcd (dat,img[j*16+i*2+1]);
 219   3              }
 220   2              }
 221   1              wr_lcd (comm,0x36);
 222   1      }
 223          /*--------------显示点阵----------------*/
 224          void lat_disp (uchar data1,uchar data2)
 225          {
 226   1              uchar i,j,k,x;
 227   1              x=x1;
 228   1              for(k=0;k<2;k++)
 229   1              {
 230   2              for(j=0;j<16;j++)
 231   2              {
 232   3                      for(i=0;i<8;i++)
 233   3                      {
 234   4                              wr_lcd (comm,0x34);
 235   4                              wr_lcd (comm,y+j*2);
 236   4                              wr_lcd (comm,x+i);
 237   4                              wr_lcd (comm,0x30);
 238   4                              wr_lcd (dat,data1);
 239   4                              wr_lcd (dat,data1);
 240   4                      }
 241   3                      for(i=0;i<8;i++)
C51 COMPILER V7.06   SERIAL                                                                05/24/2009 04:43:52 PAGE 5   

 242   3                      {
 243   4                              wr_lcd (comm,0x34);
 244   4                              wr_lcd (comm,y+j*2+1);
 245   4                              wr_lcd (comm,x+i);
 246   4                              wr_lcd (comm,0x30);
 247   4                              wr_lcd (dat,data2);
 248   4                              wr_lcd (dat,data2);
 249   4                      }
 250   3              }
 251   2              x=x2;
 252   2              }
 253   1              wr_lcd (comm,0x36);
 254   1      }
 255          /*-----------------------------------------------*/
 256          //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
 257          void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
 258          {//    con_disp (0xff,0xff,0x8c,0x80,2,16);x0=0x8c,y0=0x80, x1=2,y1=16
 259   1              uchar i,j;
 260   1              for(j=0;j<yl;j++)
 261   1              {
 262   2              for(i=0;i<xl;i++)
 263   2              {
 264   3                      wr_lcd (comm,0x34);
 265   3                      wr_lcd (comm,y0+j);
 266   3                      wr_lcd (comm,x0+i);
 267   3                      wr_lcd (comm,0x30);
 268   3                      wr_lcd (dat,data1);
 269   3                      wr_lcd (dat,data2);
 270   3              }
 271   2              }
 272   1              wr_lcd (comm,0x36);
 273   1      }
 274          /*--------------清DDRAM------------------*/
 275          void clrram (void)
 276          {
 277   1              wr_lcd (comm,0x30);
 278   1              wr_lcd (comm,0x01);
 279   1              delay (180);
 280   1      }
 281          /*---------------------------------------*/
 282          void wr_lcd (uchar dat_comm,uchar content)
 283          {
 284   1              uchar a,i,j;
 285   1              delay (50);
 286   1              a=content;
 287   1              cs=1;
 288   1              sclk=0;
 289   1              sid=1;
 290   1              for(i=0;i<5;i++)
 291   1              {
 292   2              sclk=1;
 293   2              sclk=0;
 294   2              }
 295   1              sid=0; //0表示数据从MCU到LCD,即write
 296   1              sclk=1;
 297   1              sclk=0;
 298   1              if(dat_comm)
 299   1              sid=1;   //data
 300   1              else
 301   1              sid=0;   //command
 302   1              sclk=1;
 303   1              sclk=0;
C51 COMPILER V7.06   SERIAL                                                                05/24/2009 04:43:52 PAGE 6   

 304   1              sid=0; //第一个字节最后一位规定为0
 305   1              sclk=1;
 306   1              sclk=0;
 307   1              for(j=0;j<2;j++) //先高四位,再低四位
 308   1              {
 309   2              for(i=0;i<4;i++)
 310   2              {
 311   3                      a=a<<1;
 312   3                      sid=CY; //CY为进位标志位,移位时用到,见reg52.h(CY=PSW^7)
 313   3                      sclk=1;
 314   3                      sclk=0;
 315   3              }
 316   2              sid=0;
 317   2              for(i=0;i<4;i++)
 318   2              {
 319   3                      sclk=1;
 320   3                      sclk=0;
 321   3              }
 322   2              }
 323   1      }
 324          /*-----------------------------------*/
 325          void delay (uint us)   //delay time
 326          {
 327   1              while(us--);
 328   1      }
 329          void delay1 (uint ms)
 330          {
 331   1              uint i,j;
 332   1              for(i=0;i<ms;i++)
 333   1                      for(j=0;j<15;j++)
 334   1                              delay(1);
 335   1      }
 336          /*------------------主程序--------------------*/
 337          void main ()
 338          {
 339   1              SP=0x5f;
 340   1              init_lcd ();
 341   1              while (1)
 342   1              {
 343   2              lat_disp (0x00,0x00);
 344   2              chn_disp (tab1);
 345   2              con_disp (0xff,0xff,0x8c,0x80,2,16);
 346   2              delay1 (8000);
 347   2              clrram();
 348   2              lat_disp (0xcc,0xcc);
 349   2              delay1 (8000);
 350   2              lat_disp (0x00,0x00);
 351   2              chn_disp1 (tab31);
 352   2              img_disp1 (tab32);
 353   2              delay1 (8000);
 354   2              clrram();
 355   2              lat_disp (0xff,0x00);
 356   2              delay1 (8000);
 357   2              img_disp (tab5);
 358   2              delay1 (8000);
 359   2              }
 360   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1100    ----
   CONSTANT SIZE    =   1634    ----
C51 COMPILER V7.06   SERIAL                                                                05/24/2009 04:43:52 PAGE 7   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      34
   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 + -