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

📄 lcd.lst

📁 数据采集系统的好参考资料,高精度的传感器采集系统
💻 LST
字号:
C51 COMPILER V7.50   LCD                                                                   09/13/2006 09:30:07 PAGE 1   


C51 COMPILER V7.50, 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          //                      copyright by wangmeng 2005.8.22
   3          //-----------------------------------------------------
   4          #include"reg51.h"
   5          sbit di=P3^5;                           //RS 1数据/0命令选择端
   6          sbit rw=P3^4;                           //WR 1读/0写选择端
   7          sbit en=P3^3;                           //E 
   8          #define LCMPORT P1                      //数据端口
   9          //------------------------------------------------------
  10          //函数:void checkstate(void)
  11          //功能:检测液晶是否处于忙状态
  12          //------------------------------------------------------
  13          void checkstate(void)
  14          {
  15   1              unsigned char dat;
  16   1              di=0;
  17   1              rw=1;
  18   1              do
  19   1              {
  20   2              en=1; dat=LCMPORT; en=0;
  21   2              dat=0x80 & dat; //仅当第7位为0时才可操作
  22   2          }while(!(dat==0x00));
  23   1      }
  24          //-----------------------------------------------------
  25          //函数:void sendcmd(unsigned char command)
  26          //功能:送命令码到液晶
  27          //参数:把命令字传送到液晶中
  28          //-----------------------------------------------------
  29          void sendcmd(unsigned char command)
  30          {
  31   1              checkstate();
  32   1              rw=0;di=0;
  33   1              en=1;
  34   1              LCMPORT=command;
  35   1              en=0;
  36   1      }
  37          //------------------------------------------------------
  38          //函数:void senddata(unsigned char dat)
  39          //功能:送数据到液晶
  40          //参数:把命数据传送到液晶中
  41          //------------------------------------------------------
  42          void senddata(unsigned char dat)
  43          {
  44   1              checkstate();
  45   1              rw=0;di=1;
  46   1              en=1;
  47   1              LCMPORT=dat;
  48   1              en=0;
  49   1      }
  50          //------------------------------------------------------
  51          //函数:void Write_char(unsigned char hanzi)
  52          //功能:将要显示的汉字输入液晶
  53          //参数:向液晶里写入汉字
  54          //------------------------------------------------------
  55          void Write_char(unsigned char hanzi)
C51 COMPILER V7.50   LCD                                                                   09/13/2006 09:30:07 PAGE 2   

  56          {
  57   1              senddata(hanzi);
  58   1      }
  59          void Write_str(char *str) 
  60          {
  61   1              char *s;
  62   1              for(s=str;*s!=0x00;s++)
  63   1              Write_char(*s);
  64   1      } 
  65          //------------------------------------------------------
  66          //函数:void Lcd_init(void)
  67          //功能:初始化LCM
  68          //------------------------------------------------------
  69          void Lcd_init(void)
  70          {
  71   1              sendcmd(0x30);//命令格式详见函数SetShowMode()
  72   1              sendcmd(0x0d);//指令码00001DCB
  73   1                        //D控制整体显示的开关1为开显示0为关显示;
  74   1                        //C控制光标的开与关1为有光标0为无光标;
  75   1                                        //B控制光标是否闪烁1为闪烁0不闪烁。
  76   1              sendcmd(0x01);//清除显示内容
  77   1      }
  78          //----------------------------------------------------------
  79          //函数:void Scr_clr(void)
  80          //功能:清显示屏幕
  81          //----------------------------------------------------------
  82          void Scr_clr(void)
  83          {
  84   1              sendcmd(0x01);
  85   1      }
  86          //-----------------------------------------------------------
  87          //函数:void Set_addr(unsigned char line,unsigned char colum)
  88          //功能:在指定地址写入汉字
  89          //参数:line写入的行,colum写入的列
  90          //-----------------------------------------------------------
  91          void Set_addr(unsigned char line,unsigned char colum)
  92          {
  93   1              unsigned char addr;
  94   1              switch(line)
  95   1              {
  96   2              case 1:
  97   2                              addr=0x00+(colum-1);break;
  98   2                      case 2:
  99   2                              addr=0x10+(colum-1);break;
 100   2                      case 3:
 101   2                              addr=0x08+(colum-1);break;
 102   2                      case 4:
 103   2                              addr=0x18+(colum-1);break;
 104   2                      default:
 105   2                              break;
 106   2              }
 107   1              addr=addr|0x80;  //命令码为10xxxxxx
 108   1              sendcmd(addr);
 109   1              sendcmd(0x0c);          //关闭光标
 110   1      }
 111          //---------------------------------------------------------
 112          //函数原型;void ClearGrap(void)
 113          //函数功能;清除绘图显示RAM
 114          //函数参数;无
 115          //---------------------------------------------------------
 116          void Clr_grap(void) 
 117          {
C51 COMPILER V7.50   LCD                                                                   09/13/2006 09:30:07 PAGE 3   

 118   1              unsigned char x,y;
 119   1              sendcmd(0x34);                          //扩展功能设定
 120   1              for(x=0;x<16;x++) 
 121   1              {
 122   2                      for(y=0;y<32;y++)
 123   2                      {
 124   3                      sendcmd(0x80+y);        //先送y的坐标
 125   3                      sendcmd(0x80+x);        //再送x的坐标
 126   3                      senddata(0x00);senddata(0x00);
 127   3                      }
 128   2               }
 129   1              sendcmd(0x30);                          //基本功能设定
 130   1      }
 131          //---------------------------------------------------------------
 132          //函数:void DrawGrap(uchar x,uchar y,uchar hdata,uchar ldata)
 133          //功能:在用户定义的坐标位置画长度为16的点
 134          //参数:x,y为坐标;ldata,hdata为要写的数据
 135          //---------------------------------------------------------------
 136          void Draw_grap(unsigned char x,unsigned char y,unsigned char ldata,unsigned char hdata) 
 137          {
 138   1         sendcmd(0x34);   //扩展功能设定
 139   1         sendcmd(0x80+y);
 140   1         sendcmd(0x80+x);
 141   1         senddata(ldata);senddata(hdata);
 142   1         sendcmd(0x30);  //基本功能设定
 143   1      }
 144          void Open_grap(void)
 145          {
 146   1              sendcmd(0x36); //打开绘图RAM
 147   1      }
 148          //---------------------------------------------------------
 149          //函数:void Open_cur(void)
 150          //功能:打开光标           
 151          //---------------------------------------------------------
 152          void Open_cur(void)
 153          {
 154   1              sendcmd(0x0d);
 155   1      }
 156          //---------------------------------------------------------
 157          //函数:void Close_cur(void)
 158          //功能:关闭光标
 159          //---------------------------------------------------------
 160          void Close_cur(void)
 161          {
 162   1              sendcmd(0x0c);
 163   1      }
 164          


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