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

📄 1602 zhongwen.lst

📁 液晶1602显示中文
💻 LST
字号:
C51 COMPILER V8.08   1602_ZHONGWEN                                                         09/05/2008 11:02:51 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE 1602_ZHONGWEN
OBJECT MODULE PLACED IN 1602 zhongwen.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 1602 zhongwen.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          uchar code table[]=" BM-TR/IS ";
   5          uchar code table1[]="  BM-R/IS  ";
   6          sbit lcden=P3^4;
   7          sbit lcdrs=P3^5;
   8          sbit dula=P2^6;
   9          sbit wela=P2^7;
  10          uchar num; 
  11          //----------------------------------------------------------------
  12          
  13          //----------------------------------------------------------------
  14          
  15          uchar tab[] ={  
  16                       0x04,0x04,0x1f,0x15,0x15,0x1f,0x04,0x04, //中
  17                       0x04,0x04,0x04,0x04,0x0A,0x0A,0x11,0x11, //人
  18                       0x0A,0x1B,0x0E,0x0B,0x04,0x1F,0x04,0x04, //华
  19                       0x1F,0x11,0x1F,0x14,0x1F,0x14,0x12,0x19, //民
  20                       0x0A,0x0A,0x1F,0x0A,0x1F,0x00,0x0A,0x11, //共
  21                       0x0C,0x18,0x0B,0x1F,0x1B,0x1B,0x08,0x08, //和
  22                       0x1F,0x1F,0x15,0x1F,0x15,0x17,0x1F,0x1F, //国
  23                       0x00,0x0A,0x1F,0x1F,0x1F,0x0E,0x04,0x00, //心型图案
  24                       };
  25          uchar code tab1[]={
  26                                  0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00, //℃,代码 0x00
  27                                  0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00, //一,代码 0x01
  28                                  0x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00, //二,代码 0x02
  29                                  0x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00, //三,代码 0x03
  30                                  0x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00, //四,代码 0x04
  31                                  0x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00, //五,代码 0x05
  32                                  0x00,0x04,0x00,0xff,0x00,0x0a,0x11,0x00, //六,代码 0x06
  33                                  0x00,0x1f,0x11,0x1f,0x11,0x11,0x1f,0x00, //日,代码 0x07
  34                                  };
  35          //----------------------------------------------------------------
  36          
  37          void delay(uint z)//延时子程序 
  38          {
  39   1          uint x,y;
  40   1          for(x=z;x>0;x--)
  41   1              for(y=100;y>0;y--);
  42   1      }
  43          
  44          
  45          
  46          void write_com(uchar com) //写命令 
  47          {
  48   1          lcdrs=0;
  49   1          P0=com;
  50   1          delay(1);
  51   1          lcden=1;
  52   1          delay(1);
  53   1          lcden=0;
  54   1      }
  55          
C51 COMPILER V8.08   1602_ZHONGWEN                                                         09/05/2008 11:02:51 PAGE 2   

  56          
  57          void write_data(uchar date)  //写数据 
  58          {
  59   1          lcdrs=1;
  60   1          P0=date;
  61   1          delay(1);
  62   1          lcden=1;
  63   1          delay(1);
  64   1          lcden=0;
  65   1      }
  66          
  67          
  68          void init() //初始化 
  69          {
  70   1          dula=0;
  71   1          wela=0;
  72   1          lcden=0;
  73   1          write_com(0x38);//显示模式设置
  74   1          write_com(0x0c);//不显示光标
  75   1          write_com(0x06);
  76   1          write_com(0x01);//显示清零 
  77   1          write_com(0x80+0x10);
  78   1      }
  79          
  80          
  81          //写地址函数
  82          void LCD_set_rc( uchar r, uchar c )
  83          {
  84   1          uchar address;    
  85   1          if (r == 1)
  86   1          address = 0x80 + c;
  87   1          else if(r == 2)
  88   1          address = 0xc0 + c;    
  89   1          write_com( address );
  90   1      }
  91          
  92          
  93          //写一个字符
  94          void LCD_write_char(uchar r, uchar c, uchar date)
  95          {
  96   1        LCD_set_rc( r, c );                 //写地址
  97   1        write_data( date );
  98   1      }
  99          
 100          //向CGRAM写入字模数据
 101          void write_CGRAM( uchar TAB[], uchar n )     //定义输入CGRAM的字模代码,字模的个数
 102          {
 103   1          uchar tmp;
 104   1          uchar i;
 105   1          uchar j;
 106   1          uchar k;
 107   1          tmp = 0x40;                       //设置CGRAM地址的格式字
 108   1          k = 0;
 109   1          for( j = 0; j < n; j++)
 110   1          {
 111   2              for(i = 0; i < 8; i++)
 112   2              {
 113   3                      write_com(tmp + i); // 设置自定义字符的 CGRAM 地址
 114   3                      write_data(TAB[k]);   // 向CGRAM写入自定义字符表的数据
 115   3                      k++;
 116   3               }
 117   2               tmp = tmp + 0x08;
C51 COMPILER V8.08   1602_ZHONGWEN                                                         09/05/2008 11:02:51 PAGE 3   

 118   2           }
 119   1      }
 120          
 121          //主函数
 122          void main(void)
 123          {
 124   1          uchar c;                  //定义显示的列位置
 125   1          uchar i;
 126   1          init();
 127   1          write_CGRAM(tab, 8);
 128   1          delay(2);
 129   1              while(1)
 130   1              {        
 131   2                  for( i = 0, c = 21; i < 7; i++)  //在液晶板上的第1行第19个位置显示中华人民共和国
 132   2                  {
 133   3                      LCD_write_char(1, c, i);
 134   3                      c++;
 135   3                  }
 136   2                  LCD_write_char(2, 17, 7);        //显示心型图案
 137   2                  LCD_write_char(2, 31, 7);       //显示心型图案        
 138   2      
 139   2              for(num=0;num<16;num++)                                           
 140   2              {
 141   3                  write_com(0x18);   //整屏左移 
 142   3                  delay(400);
 143   3                      }
 144   2                      delay(1000);    
 145   2                      write_com(1);
 146   2                      delay(1);
 147   2                      write_com(0x80+0x10);
 148   2              for(num=0;num<9;num++)
 149   2              {
 150   3                  write_data(table[num]);     //显示BM-TR/IS 
 151   3                  delay(100);
 152   3              }
 153   2                      write_com(0x80+0x52);
 154   2              for(num=0;num<9;num++)
 155   2              {
 156   3                  write_data(table1[num]); //显示BM-R/IS 
 157   3                  delay(100);
 158   3              } 
 159   2              for(num=0;num<16;num++)
 160   2              {
 161   3                  write_com(0x18);   //整屏左移 
 162   3                  delay(400);
 163   3                      }
 164   2                  delay(1000); 
 165   2                      write_com(1);
 166   2                      delay(1);       
 167   2              }
 168   1      
 169   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    397    ----
   CONSTANT SIZE    =     87    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     65       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V8.08   1602_ZHONGWEN                                                         09/05/2008 11:02:51 PAGE 4   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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