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

📄 lcd.lst

📁 设备增加温度、时钟显示电路源程序, 已编译的51单片机程序,学习研究都是不错的.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 1   


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

line level    source

   1          /***************************************************************
   2          功能:实现液晶显示LCD 122*32点阵驱动器为0713
   3          作者:MB
   4          时间:2005-02-28
   5          版本:V1.0
   6          /*---------------------------------------------------------------------------------
   7          CPU 端口定义
   8          ---------------------------------------------------------------------------------*/
   9          sfr  LCD_PORT   = 0x80;
  10          sbit LCD_DI     = 0xb3;
  11          sbit LCD_ENA2   = 0xb4;
  12          sbit LCD_ENA1   = 0xb5;
  13          /*---------------------------------------------------------------------------------
  14          西文字库点阵
  15          ---------------------------------------------------------------------------------*/
  16          unsigned char code Large_DianZen[]={
  17          //;--  0123456789  --  **  宋体, 12  **
  18          //; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=80x16,  调整后为: 80x16
  19          0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,  //0
  20          0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,  //1
  21          0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,  //2
  22          0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,  //3
  23          0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00,  //4
  24          0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00,  //5
  25          0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00,  //6
  26          0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00,  //7
  27          0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00,  //8
  28          0x00,0x00,0xE0,0x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00,  //9
  29           
  30          //;--  ABCDEF  --  **  宋体, 12  **
  31          //; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=48x16,  调整后为: 48x16
  32          0x00,0x20,0x00,0x3C,0xC0,0x23,0x38,0x02,0xE0,0x02,0x00,0x27,0x00,0x38,0x00,0x20, //A
  33          0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x20,0x70,0x11,0x00,0x0E,0x00,0x00, //B
  34          0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x38,0x08,0x00,0x00, //C
  35          0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00, //D
  36          0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0xE8,0x23,0x08,0x20,0x10,0x18,0x00,0x00, //E
  37          0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0xE8,0x03,0x08,0x00,0x10,0x00,0x00,0x00, //F
  38          //;--  :  --  **  宋体, 12  **
  39          //; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=8x16,  调整后为: 8x16
  40          0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,//:
  41          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //NULL                   
             -                                             
  42          };                                                                             
  43                                                                                         
  44          /*---------------------------------------------------------------------------------
  45          汉字字库点阵                                                                   
  46          ---------------------------------------------------------------------------------*/
  47          unsigned char code HanZi[]={
  48          //;--  ★电子工作室★  --  **  宋体, 12  **
  49          //; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=112x16,  调整后为: 112x16
  50          0x00,0x00,0x00,0x00,0x40,0x20,0x42,0x22,0x5C,0x22,0x48,0x22,0x40,0x22,0x40,0x22,
  51          0x7F,0x22,0x40,0x22,0x50,0x22,0x4E,0x22,0x44,0x22,0xC0,0x7F,0x00,0x00,0x00,0x00,
  52          
  53          0x08,0x00,0x08,0x00,0xE8,0x7F,0xA8,0x04,0xA9,0x24,0xAE,0x44,0xEA,0x3F,0x08,0x00,
  54          0x08,0x00,0xC8,0x1F,0x0C,0x40,0x0B,0x80,0xEA,0x7F,0x08,0x00,0x08,0x00,0x00,0x00,
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 2   

  55          
  56          0x10,0x02,0x21,0xFE,0x86,0x01,0x70,0x40,0x00,0x7F,0x7E,0x41,0x4A,0x41,0x4A,0x7F,
  57          0x4A,0x41,0x4A,0x41,0x4A,0x7F,0x7E,0x41,0x00,0x41,0x00,0x7F,0x00,0x40,0x00,0x00,
  58          
  59          0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x80,0x24,0x80,0x24,0x42,0xFC,0x46,0xA5,0x2A,
  60          0xA6,0x12,0xA4,0x12,0xFC,0x2A,0x24,0x26,0x24,0x42,0x24,0xC0,0x04,0x40,0x00,0x00,
  61          
  62          0x80,0x00,0x80,0x40,0x80,0x20,0x80,0x10,0xBE,0x0E,0xAA,0x10,0xAA,0x20,0xAA,0x3F,
  63          0xAA,0x44,0xAA,0x44,0xAA,0x44,0xBE,0x44,0x80,0x44,0x80,0x40,0x80,0x40,0x00,0x00,
  64          
  65          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67          
  68          
  69          //;--  现在是: :  :  --  **  宋体, 12  **
  70          //; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=104x16,  调整后为: 104x16
  71          0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x80,0x24,0x80,0x24,0x42,0xFC,0x46,0xA5,0x2A,
  72          0xA6,0x12,0xA4,0x12,0xFC,0x2A,0x24,0x26,0x24,0x42,0x24,0xC0,0x04,0x40,0x00,0x00,
  73          
  74          0x00,0x00,0xFC,0x07,0x44,0x04,0x44,0x04,0x44,0x04,0xFC,0x07,0x10,0x00,0x90,0x00,
  75          0x10,0x03,0x10,0x40,0x10,0x80,0xFF,0x7F,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,
  76          
  77          0x00,0x00,0xF8,0xFF,0x01,0x00,0x06,0x00,0x00,0x00,0xF0,0x07,0x92,0x04,0x92,0x04,
  78          0x92,0x04,0x92,0x04,0xF2,0x07,0x02,0x40,0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00,
  79          
  80          0x80,0x00,0x80,0x40,0x80,0x20,0x80,0x10,0xBE,0x0E,0xAA,0x10,0xAA,0x20,0xAA,0x3F,
  81          0xAA,0x44,0xAA,0x44,0xAA,0x44,0xBE,0x44,0x80,0x44,0x80,0x40,0x80,0x40,0x00,0x00,
  82          
  83          0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
  84          
  85          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  86          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  87          
  88          0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
  89          
  90          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  91          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  92          
  93          0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
  94          };
  95          
  96          
  97          unsigned char code LCD_Show_Tab[]={
  98          0x90,0x00,0x90,0x01,0x90,0x02,0x90,0x03,0x90,0x04,0x90,0x05,0x90,0x06,0x11,0x11,  //★电子工作室★
  99          0x90,0x07,0x90,0x08,0x90,0x09,0x90,0x0a,0x90,0x0b,0x90,0x0c,0x90,0x0d,0x11,0x11,  //现在是 ::。
 100          };
 101          
 102          
 103          /*-----------------------------------------------
 104          LCD接收命令子程序:F为主/从选择0主模块被选中
 105          ------------------------------------------------*/
 106          
 107          void LCD_Write_Set( unsigned char Com,bit F )
 108          {
 109   1              LCD_PORT = Com;
 110   1              LCD_DI = 0;
 111   1          if ( F )
 112   1          {
 113   2              LCD_ENA2 = 1;
 114   2              LCD_ENA2 = 0;
 115   2           }
 116   1           else
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 3   

 117   1           {
 118   2              LCD_ENA1 = 1;
 119   2              LCD_ENA1 = 0;
 120   2           }
 121   1      }
 122          
 123          /*-----------------------------------------------
 124          LCD接收数据子程序:F为主/从选择0主模块被选中
 125          ------------------------------------------------*/
 126          void LCD_Write_Data( unsigned char Com,bit F )
 127          {
 128   1              LCD_PORT = Com;
 129   1              LCD_DI = 1;
 130   1          if ( F )
 131   1          {
 132   2              LCD_ENA2 = 1;
 133   2              LCD_ENA2 = 0;
 134   2           }
 135   1           else
 136   1           {
 137   2              LCD_ENA1 = 1;
 138   2              LCD_ENA1 = 0;
 139   2           }
 140   1      }
 141          
 142          
 143          /*--------------------------------------------------------------
 144          //设置xPos,yPos(x,y行列坐标)
 145          ------------------------------------------------------------*/
 146          void Set_xyPos_LCD(unsigned char xPos,unsigned char yPos)       //112*32 0713 xPos(0---112)  yPos(0---3)
 147          {
 148   1              unsigned char i;
 149   1              if ( yPos < 2 )
 150   1                      i = 0xBA;
 151   1              else
 152   1                      i = 0xB6;
 153   1              if ( xPos > 60 )
 154   1              {
 155   2      
 156   2                      LCD_Write_Set(yPos + i,1);              //Page_LCD[i] i=0 first page i=7 seventh page
 157   2              //      LCD_Write_Set(((xPos - 57)>>4)&0x0F|0x10,1);    //set col address msb
 158   2                      LCD_Write_Set(xPos - 61,1);                             //set col address lsb
 159   2              }
 160   1              else
 161   1              {
 162   2                      LCD_Write_Set(yPos + i,0);              //Page_LCD[i] i=0 first page i=7 seventh page
 163   2              //      LCD_Write_Set((xPos>>4)&0x0F|0x10,0);   //set col address msb
 164   2                      LCD_Write_Set(xPos,0);                          //set col address lsb
 165   2              }
 166   1      }
 167          
 168          /*--------------------------------------------------------------
 169          //清除一行子程序
 170          ------------------------------------------------------------*/
 171          void Clear_H_LCD(unsigned char H)
 172          {
 173   1              unsigned char i,j;
 174   1              Set_xyPos_LCD(0, H << 1 );                              //set col address lsb
 175   1              for( i = 0;i < 2;i++ )
 176   1              {
 177   2                      for( j = 0;j < 61;j++ )
 178   2                              LCD_Write_Data( 0x00,0 );
C51 COMPILER V8.08   LCD                                                                   03/01/2008 06:32:25 PAGE 4   

 179   2                      Set_xyPos_LCD(0, (H << 1) + 1);         //set col address lsb
 180   2              }

⌨️ 快捷键说明

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