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

📄 lcd12864.lst

📁 lcd1602显示系统 EWB Quartus2编译 电子综合设计试验箱程序
💻 LST
字号:
C51 COMPILER V7.50   LCD12864                                                              10/31/2007 12:04:35 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN lcd12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "LCD12864.h"
   2          
   3          void LCDStatusLeft(void) //判断左边屏幕的状态
   4          {
   5   1          while((LCD1_RS&0x80)|(LCD1_RS&0x10));//等待LCD完成复位并且空闲
   6   1      }
   7          
   8          
   9          void LCDStatusRight(void) //判断右边屏幕的状态
  10          {
  11   1          while((LCD2_RS&0x80)|(LCD2_RS&0x10));//等待LCD完成复位并且空闲
  12   1      }
  13          
  14          
  15          void LCD12864WriteCmdLeft(unsigned char cmd)
  16          {
  17   1          LCDStatusLeft();
  18   1              LCD1_ORG=cmd;
  19   1      }
  20          void LCD12864WriteCmdRight(unsigned char cmd)
  21          {
  22   1          LCDStatusRight();
  23   1              LCD2_ORG=cmd;
  24   1      }
  25          
  26          void LCD12864WriteDataLeft(unsigned char lcddata)
  27          {
  28   1          LCDStatusLeft();
  29   1              LCD1_WD=lcddata;
  30   1      }
  31          void LCD12864WriteDataRight(unsigned char lcddata)
  32          {
  33   1          LCDStatusRight();
  34   1              LCD2_WD=lcddata;
  35   1      }
  36          
  37          void LCD12864Init(void)  //LCD初始化
  38          {
  39   1              /*
  40   1                      delay(100);
  41   1                      CS2=1; CS1=0;
  42   1                      delay(100);
  43   1                      write_cmd(DISP_OFF);
  44   1                      write_cmd(PAGE);
  45   1                      write_cmd(START_LINE);
  46   1                      write_cmd(COL);
  47   1                      write_cmd(DISP_ON);
  48   1                      CS2=0; CS1=1;
  49   1                      delay(100);
  50   1                      write_cmd(DISP_OFF);
  51   1                      write_cmd(PAGE);
  52   1                      write_cmd(START_LINE);
  53   1                      write_cmd(COL);
  54   1                      write_cmd(DISP_ON);*/
  55   1                      //左半屏幕
C51 COMPILER V7.50   LCD12864                                                              10/31/2007 12:04:35 PAGE 2   

  56   1                  LCD12864WriteCmdLeft(DISP_OFF);
  57   1                      LCD12864WriteCmdLeft(PAGE);
  58   1                      LCD12864WriteCmdLeft(START_LINE);
  59   1                      LCD12864WriteCmdLeft(COL);
  60   1                      LCD12864WriteCmdLeft(DISP_ON);
  61   1                  //右半屏幕
  62   1                      LCD12864WriteCmdRight(DISP_OFF);
  63   1                      LCD12864WriteCmdRight(PAGE);
  64   1                      LCD12864WriteCmdRight(START_LINE);
  65   1                      LCD12864WriteCmdRight(COL);
  66   1                      LCD12864WriteCmdRight(DISP_ON);
  67   1      
  68   1      }
  69          
  70          
  71          
  72          void LCD12864Cls(void)    //清屏函数
  73          {
  74   1              /*
  75   1                      uchar j,k;
  76   1              CS2=1;CS1=0;
  77   1              for(k=0;k<8;k++)
  78   1              {
  79   1                      write_cmd(PAGE+k);
  80   1                          write_cmd(COL);       //列地址0
  81   1                          for(j=0;j<64;j++)     //列地址自动加一
  82   1                                  write_data(0x00);
  83   1               }
  84   1                   CS2=0;CS1=1;
  85   1                   for(k=0;k<8;k++)
  86   1                   {
  87   1                          write_cmd(PAGE+k);
  88   1                          write_cmd(COL);           //列地址0
  89   1                          for(j=0;j<64;j++)         //列地址自动加一
  90   1                                      write_data(0x00);
  91   1              }*/
  92   1          unsigned char j,k;
  93   1              for(k=0;k<8;k++)
  94   1              {
  95   2                   LCD12864WriteCmdLeft(PAGE+k);
  96   2               LCD12864WriteCmdLeft(COL);       //列地址0
  97   2                   for(j=0;j<64;j++)     //列地址自动加一
  98   2                       LCD12864WriteDataLeft(0x00);   
  99   2              }
 100   1      
 101   1      
 102   1              for(k=0;k<8;k++)
 103   1              {
 104   2                   LCD12864WriteCmdRight(PAGE+k);
 105   2               LCD12864WriteCmdRight(COL);       //列地址0
 106   2                   for(j=0;j<64;j++)     //列地址自动加一
 107   2                       LCD12864WriteDataRight(0x00);   
 108   2              }
 109   1      
 110   1      }
 111          
 112          
 113          
 114          /**************************************************************************************************
 115          *
 116          *显示12*16点阵的汉字函数
 117          *函数声明:void LCDDisplayChinese(uchar page,uchar col,uchar code *str,uchar n);
C51 COMPILER V7.50   LCD12864                                                              10/31/2007 12:04:35 PAGE 3   

 118          *函数参数:page为页地址(0-7),col为列地址(0-127),str为数组名,n为要显示第n个汉字点阵
 119          *函数作用:
 120          *
 121          **************************************************************************************************/
 122          void LCDDisplayChinese(unsigned char page,unsigned char col,unsigned char code *str,unsigned char n)
 123          {
 124   1            unsigned char i,j;
 125   1                unsigned char num;
 126   1                if(col<=52)
 127   1                {
 128   2                              for(j=0;j<2;j++)
 129   2                      {
 130   3                                LCD12864WriteCmdLeft(PAGE+page+j);LCD12864WriteCmdLeft(COL+col);
 131   3                                for(i=0;i<12;i++)
 132   3                                     LCD12864WriteDataLeft(str[n*24+12*j+i]);
 133   3                      }
 134   2                }
 135   1                else if(col>=64)
 136   1                {
 137   2                          col=col-64;
 138   2                              for(j=0;j<2;j++)
 139   2                      {
 140   3                                LCD12864WriteCmdRight(PAGE+page+j); LCD12864WriteCmdRight(COL+col);
 141   3                                for(i=0;i<12;i++)
 142   3                                       LCD12864WriteDataRight(str[n*24+12*j+i]);
 143   3                      }
 144   2                }
 145   1      
 146   1                
 147   1                else if(col>52&&col<64)    //处理跨屏幕的汉字书写的函数
 148   1                {
 149   2                    num=64-col;                                                                                 
 150   2                        for(j=0;j<2;j++)
 151   2                        {
 152   3                                LCD12864WriteCmdLeft(PAGE+page+j); LCD12864WriteCmdLeft(COL+col);
 153   3                                for(i=0;i<num;i++)
 154   3                                       LCD12864WriteDataLeft(str[n*24+12*j+i]);  
 155   3                        }
 156   2                        col=0;
 157   2                        for(j=0;j<2;j++)
 158   2                        {
 159   3                                LCD12864WriteCmdRight(PAGE+page+j);LCD12864WriteCmdRight(COL+col);
 160   3                                for(i=num;i<12;i++)
 161   3                                      LCD12864WriteDataRight(str[n*24+12*j+i]);  
 162   3                        }
 163   2      
 164   2      
 165   2                }
 166   1      
 167   1      }


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