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

📄 lcd_6963.lst

📁 6963控制其的液晶测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 265   1              dat1=j%256;   /* 显示RAM地址修正 */
 266   1              dat2=j/256;
 267   1              com=0x24;
 268   1              PR1();
 269   1              dat2=code_1+0x01; /* 写入左下半部汉字代码 */
 270   1              com=0xc0;
 271   1              PR11();
 272   1              dat2=code_1+0x03;  /* 写入右下半部汉字代码 */
 273   1              PR11();
 274   1           }
 275          
 276          CCWD_PR()             /* */
 277               {
 278   1              unsigned int i,j;
 279   1              i=para1;
 280   1              j=i*O_Y+O_X;
 281   1             
 282   1              dat1=j%256;
 283   1              dat2=j/256;
 284   1              com=0x24;  /* 设置显示地址 */
 285   1              PR1();
 286   1              dat2=code_1;  /* 写入左上半部汉字代码 */
 287   1              com=0xc0;
 288   1              PR11();
 289   1             
 290   1              j=j+i;
 291   1              dat1=j%256;   /* 显示RAM地址修正 */
 292   1              dat2=j/256;
 293   1              com=0x24;
 294   1              PR1();
 295   1             
 296   1              dat2=code_1+0x01; /* 写入左下半部汉字代码 */
 297   1              com=0xc0;
 298   1              PR11();
 299   1            
 300   1           }
 301          
 302          CCW2_PR()
 303              {
C51 COMPILER V6.20c  LCD_6963                                                              09/20/2005 12:21:28 PAGE 6   

 304   1           unsigned int i,j,count1;
 305   1                i=para1;
 306   1                j=i*O_Y+O_X+0x0800;
 307   1             for(count1=0;count1<16;count1++)
 308   1               {
 309   2                 dat1=j%256;
 310   2                 dat2=j/256;
 311   2                 com=0x24;
 312   2                 PR1();
 313   2                 
 314   2                 dat2=CCTAB[code_1][count1];   /* 写入汉字左侧代码 */
 315   2                 com=0xc0;
 316   2                 PR11();
 317   2                 
 318   2                 dat2=CCTAB[code_1][count1+16];  /* 写入汉字右侧代码 */
 319   2                 PR11();
 320   2                 j=j+i;
 321   2               }
 322   1            }
 323          
 324              
 325            /********************************/
 326          /*  西文字符写入(文本属性)函数  */
 327          /********************************/
 328              CW2_PR()
 329                 {
 330   1             unsigned int i,j;
 331   1              i=para1;
 332   1              j=i*O_Y+O_X;
 333   1              dat1=j%256;
 334   1              dat2=j/256;
 335   1              com=0x24;  /* 显示地址设置 */
 336   1              PR1();
 337   1            
 338   1              dat2=code_1;
 339   1              com=0xC0;  /* 数据写 */
 340   1              PR11();
 341   1            
 342   1              dat2=0x08;    
 343   1              com=0x24;
 344   1              PR1();
 345   1             
 346   1                  
 347   1             }
 348             
 349                
 350                
 351          /****************************/
 352          /*        绘点函数          */
 353          /****************************/
 354          W_DOT()
 355              {
 356   1            unsigned char i;
 357   1            unsigned int k;
 358   1               i=O_X%8;
 359   1               O_X=O_X/8;
 360   1               k=0x20*O_Y+O_X+0x0800;
 361   1               dat1=k%256;
 362   1               dat2=k/256;
 363   1               com=0x24;
 364   1               PR1();
 365   1               i=0x07-i;
C51 COMPILER V6.20c  LCD_6963                                                              09/20/2005 12:21:28 PAGE 7   

 366   1               com=i|0xf8;  /* 位操作 */
 367   1               PR12();
 368   1           }
 369          /****************************/
 370          /*    写指令和写数据函数    */
 371          /****************************/
 372          PR1()              /* 双字节参数指令写入入口 */
 373              {
 374   1            ST01();
 375   1            d_add=dat1;  /* 取第一参数单元数据 */
 376   1            PR11();
 377   1          }
 378          PR11()             /* 单字节参数指令写入入口 */
 379              {
 380   1            ST01();
 381   1            d_add=dat2;  /* 取第二参数单元数据 */
 382   1            PR12();
 383   1          }
 384          PR12()             /* 无参数指令写入入口 */
 385             {
 386   1           ST01();
 387   1           c_add=com;    /* 写入指令代码 */
 388   1         }
 389          /************************************************/
 390          /*  判状态位S1,S0 函数(读写指令和读写数据状态)  */
 391          /************************************************/
 392          ST01()
 393              {
 394   1            do
 395   1              {
 396   2              ACC=c_add;
 397   2              }
 398   1            while(Acc_0==0,Acc_1==0);
 399   1          }
 400          /************************************/
 401          /*  判状态位S2函数(数据自动读状态)  */
 402          /************************************/
 403          ST2()
 404             {
 405   1           do
 406   1           {
 407   2             ACC=c_add;
 408   2           }
 409   1          while(Acc_2==0);
 410   1         }
 411          /************************************/
 412          /*  判状态位S3函数(数据自动写状态)  */
 413          /************************************/
 414          ST3()
 415             {
 416   1           do
 417   1           {
 418   2             ACC=c_add;
 419   2           }
 420   1           while(Acc_3==0);
 421   1         }
 422           
 423          DISHAZIT(uchar x,uchar y,uchar d)  /*汉字写入(图文方式)*/
 424           {
 425   1         code_1=d;
 426   1         O_X=x;
 427   1         O_Y=y;
C51 COMPILER V6.20c  LCD_6963                                                              09/20/2005 12:21:28 PAGE 8   

 428   1         CCW2_PR();
 429   1         }
 430          
 431          
 432          DISDASC(uchar x,uchar y,uchar d)  /*汉字写入(文本方式)*/
 433           {
 434   1         code_1=d;
 435   1         O_X=x;
 436   1         O_Y=y;
 437   1         CCWD_PR();
 438   1         }
 439          DISASC(uchar x,uchar y,uchar d)
 440              {
 441   1                O_X=x;
 442   1                O_Y=y;
 443   1                code_1=d;               /*西文写WELCOME YOU */
 444   1                CW2_PR(); 
 445   1                }         
 446          
 447          ShowLine(uchar x,uchar y,uchar *puts,uchar le,uchar kk)
 448          {
 449   1                  uchar uk,jk,byte;
 450   1                for(uk=x,jk=0;jk<le;jk++)
 451   1                  {
 452   2                    byte=puts[jk];
 453   2                    if(kk==0){ DISHAZIT(uk,y,byte);}
 454   2                        else {FDISHAZIT(uk,y,byte);}
 455   2                    uk=uk+2;    /*汉字从0x80开始,包括0x80*/
 456   2                      /* else      {DISASC(x,k,byte);k=k+1;}         字母 ASCII码从0X20 开始*/
 457   2                       }
 458   1        }             
 459          FDISHAZIT(uchar x,uchar y,uchar d)  /*汉字写入(反图文方式)*/
 460           {
 461   1         code_1=d;
 462   1         O_X=x;
 463   1         O_Y=y;
 464   1         FCCW2_PR();
 465   1         }
 466          FCCW2_PR()
 467              {
 468   1           unsigned int i,j,count1;
 469   1                i=para1;
 470   1                j=i*O_Y+O_X+0x0800;
 471   1             for(count1=0;count1<16;count1++)
 472   1               {
 473   2                 dat1=j%256;
 474   2                 dat2=j/256;
 475   2                 com=0x24;
 476   2                 PR1();
 477   2                 
 478   2                 dat2=0xff-CCTAB[code_1][count1];   /* 写入汉字左侧代码 */
 479   2                 com=0xc0;
 480   2                 PR11();
 481   2                 
 482   2                 dat2=0xff-CCTAB[code_1][count1+16];  /* 写入汉字右侧代码 */
 483   2                 PR11();
 484   2                 j=j+i;
 485   2               }
 486   1            }
 487          
 488          GUANGBIAO(uchar x,uchar y)
 489          {
C51 COMPILER V6.20c  LCD_6963                                                              09/20/2005 12:21:28 PAGE 9   

 490   1              dat1=x;       /*光标定位*/
 491   1              dat2=y;
 492   1              com=0x21;
 493   1              PR1();
 494   1              }
 495           
 496          
 497           /***************************/
 498          /*       演示主程序        */
 499          /***************************/
 500          
 501          void main()
 502               {
 503   1      //       uchar code STR1[5]={0x00,0x01,0x02,0x03,0x04};
 504   1             INT_1();         /* 初始化函数 */
 505   1             CLEAR();         /* 清屏函数 */
 506   1             CGRAM();         /* 建立CGRAM内字库函数 */
 507   1       
 508   1                  /* 汉字写入(文本方式)方*/
 509   1       
 510   1           FDISHAZIT(0x16,0x00,0X00);
 511   1             /* 汉字写入(图文方式)红*/
 512   1           DISHAZIT(0x18,0x10,0X01); 
 513   1               /* 汉字写入(图文方式)绿*/
 514   1           
 515   1           DISDASC(0x01,0x08,0X82);
 516   1             /* 汉字写入(文本方式)(*/
 517   1           DISDASC(0x01,0x0a,0X84);    /* 汉字写入(文本方式)*/
 518   1      //    ShowLine(0x0a,0x70,STR1,5,1);
 519   1      //    ShowLine(0x0a,0x50,STR1,5,0); 
 520   1          }
 521          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1050    ----
   CONSTANT SIZE    =   1916    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      35
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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