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

📄 text12.lst

📁 金鹏ocm320240液晶碰程序。已经调试
💻 LST
📖 第 1 页 / 共 4 页
字号:
 623          "E_mail:syl@gptlcm.cn  support@gptlcm.cn "
 624          };
 625          /*---------------延时子程序----------------*/
 626          void delay (uint us) 
 627          {
 628   1        while(us--);
 629   1      }
 630          void delay1 (uint ms) 
 631          {
 632   1        uint i,j;
 633   1        for(i=0;i<ms;i++)
 634   1        for(j=0;j<1000;j++)
 635   1        ;
 636   1      }
 637          void chk_busy (void)               //忙检测
 638          {
 639   1        //P1=0xff;
 640   1        a0=0;
 641   1        wr=1;
 642   1        rd=0;
 643   1        while(busy==1)
 644   1        ;
 645   1        rd=1;
 646   1      }
 647          void wr_comm (uchar comm)     //写命令
 648          {
 649   1        chk_busy ();
 650   1        a0=1;
 651   1        rd=1;
 652   1        data_ora=comm;
 653   1        wr=0;
 654   1        // delay(2);
 655   1        wr=1;
 656   1      }
 657          
 658          void wr_data (uchar dat)        //写数据
 659          {
 660   1        chk_busy ();
 661   1        a0=0;
 662   1        rd=1;
 663   1        data_ora=dat;
 664   1        wr=0;
 665   1        //  delay(2);
 666   1        wr=1;
 667   1      }
 668          
 669          uchar rd_data (uchar dat)        //读数据
 670          {
 671   1        a0=1;
 672   1        wr=1;
 673   1        rd=0;
 674   1        ;
 675   1        dat=data_ora;
C51 COMPILER V7.06   TEXT12                                                                05/25/2009 21:56:28 PAGE 12  

 676   1        rd=1;
 677   1        return dat;
 678   1      }
 679          void wr_xd (uint dat)       //写一个16进制数据
 680          {
 681   1        uchar datl,dath;
 682   1        datl=dat;
 683   1        dath=dat>>8;
 684   1        wr_data (datl);        //送低八位
 685   1        wr_data (dath);        //送高八位
 686   1      }
 687          //........显示点阵..........
 688          void lcd_lattice(uchar dat1,uchar dat2) 
 689          {
 690   1      uchar i,j,k;
 691   1      //wr_comm(0x4c);     //光标自动移动方向--向右
 692   1      wr_comm(0x46);
 693   1      wr_xd(0x04b0);
 694   1      wr_comm(0x42);
 695   1       for(i=0;i<60;i++)
 696   1       {
 697   2         for(j=0;j<80;j++)
 698   2            wr_data(dat1);
 699   2         for(k=0;k<80;k++)
 700   2            wr_data(dat2);
 701   2       }
 702   1      }
 703          
 704          /*--------------显示字符------------------*/
 705          void disp_eng(uchar code *eng) 
 706          {
 707   1        uchar i,j;
 708   1        wr_comm(0x46);
 709   1        wr_data(0x00);
 710   1        wr_data(0x00);
 711   1        //wr_xd(0x0000);
 712   1        wr_comm(0x42);
 713   1        for(i=0;i<7;i++)
 714   1        for(j=0;j<40;j++)  
 715   1        wr_data(eng[40*i+j]);
 716   1        for(i=0;i<96;i++)
 717   1        {  
 718   2          wr_data(0x20+i);
 719   2        }
 720   1        for(i=0;i<24;i++)
 721   1        {
 722   2         wr_data(0xa0+i);
 723   2        }
 724   1      }
 725          //..........显示中文...............
 726          void disp_character(uchar x,uchar y,uchar x1,uchar y1,uchar x2,uchar y2,uchar code *chn) 
 727          {                               //在x,y处显示大小x1,y1的字,显示x2行,每行y2个字     
 728   1        uchar i,j,k,l;                //x为字节数,y为点行数
 729   1        for(i=0;i<x2;i++)
 730   1        for(j=0;j<y2;j++)
 731   1        for(k=0;k<y1;k++)
 732   1        for(l=0;l<x1;l++)
 733   1        { 
 734   2           wr_comm(0x46);
 735   2               wr_xd(0x04b0+x+40*y+l+k*40+j*x1+i*y1*40);
 736   2               wr_comm(0x42);
 737   2           wr_data(*chn);
C51 COMPILER V7.06   TEXT12                                                                05/25/2009 21:56:28 PAGE 13  

 738   2           ++chn;
 739   2        }
 740   1      }
 741          
 742          //............显示图形..........
 743          void disp_photo(uchar x,uchar y,uchar x1,uchar y1,uchar code *pho)
 744          {  
 745   1        uchar i,j;                               //在x,y处显示大小x1,y1的图形
 746   1        wr_comm(0x46);                           
 747   1        wr_xd(0x04b0+x+40*y);
 748   1        wr_comm(0x42);
 749   1        for(i=0;i<y1;i++)
 750   1        for(j=0;j<x1;j++)
 751   1        {
 752   2          wr_data(*pho);
 753   2          ++pho;
 754   2        }
 755   1      }
 756          //.......清屏............
 757          void lcd_clear(void) 
 758          {
 759   1      uint i,j;
 760   1      wr_comm(0x46);    //显示光标地址
 761   1      //wr_xd(0x0000);
 762   1        wr_data(0x00);
 763   1        wr_data(0x00);
 764   1      wr_comm(0x42);
 765   1      for(i=0;i<135;i++)
 766   1      for(j=0;j<80;j++)
 767   1      wr_data(0x00);
 768   1      }
 769          
 770          //.......初始化........... 
 771          void init_lcd (void) 
 772          {
 773   1       uchar i;
 774   1       rst=1;
 775   1       cs=0;
 776   1       wr_comm(0x40);         //WRITE SYSTEMSET 指令和参数
 777   1       for(i=0;i<8;i++)
 778   1       wr_data(systab[i]);
 779   1       wr_comm(0x44);         //WRITE SCROLL 指令和参数
 780   1       for(i=0;i<10;i++)
 781   1       wr_data(scrtab[i]);
 782   1       wr_comm(0x5a);    //显示画面水平移动量:00--07点
 783   1       wr_data(0x00);
 784   1       wr_comm(0x5b);    //显示属性:DM1(DM2)=0,文本方式;DM1(DM2)=1,图形方式;OV=1,三重合成;OV=0,两重合成
 785   1       wr_data(0x08);
 786   1       wr_comm(0x5d);
 787   1       wr_data(0x07);
 788   1       wr_data(0x8f);    
 789   1       wr_comm(0x4c);    //光标自动移动方向--向右
 790   1       wr_comm(0x59);    //DISP       ON
 791   1       wr_data(0x56);   
 792   1      }
 793          
 794          //...............主程序...............
 795          void main()
 796          {
 797   1       delay(12);
 798   1      // SP=0x5f;
 799   1      
C51 COMPILER V7.06   TEXT12                                                                05/25/2009 21:56:28 PAGE 14  

 800   1       init_lcd ();
 801   1       lcd_clear();
 802   1       
 803   1      
 804   1       while(1)
 805   1       {
 806   2      
 807   2      
 808   2       disp_photo(0,160,40,80,tab1);
 809   2       
 810   2       
 811   2       
 812   2       disp_character(4,19,3,19,4,12,tab);
 813   2       
 814   2       
 815   2       }
 816   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    674    ----
   CONSTANT SIZE    =   6235    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      17
   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 + -