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

📄 lcd.lst

📁 PS2键盘和162液晶的检测并显示
💻 LST
字号:
C51 COMPILER V7.20   LCD                                                                   08/13/2008 21:53:02 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: D:\基地\Keil\C51\BIN\C51.EXE LCD.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg51.h"
   2          //#include<SST/SST89x5x4.h>
   3          #include "lcd.h"
   4          
   5          
   6          
   7          
   8          /*
   9          void Out_lcd(void)
  10          //void main()
  11          {
  12                  char i=0;
  13          
  14                  LcdInit();
  15                  
  16                  PutStr(0,0,"si ge  zi");
  17                  PutStr(0,1,"hu yang");
  18                  while(1);
  19          
  20          }
  21          
  22          
  23          /**************************************
  24          说明:LCD写函数,完成lcd写操作的物理时序
  25          value:写的具体数值
  26          RS:    0-写指令
  27                          1-写数据
  28          **************************************/
  29          
  30          void LcdWrite(unsigned char value,bit RS)
  31          {
  32   1              /*1.设置RS信号线*/
  33   1              Lcd_RS=RS;
  34   1              /*2、设置RW信号线为读*/
  35   1              Lcd_RW=0;
  36   1              /*设置LCD片选*/
  37   1              SELECT_LCD();
  38   1              /*4、通过P0端口写值*/
  39   1              P0=value;
  40   1              /*5、锁存*/
  41   1              SELECT_NONE();
  42   1      }
  43          
  44          
  45          
  46          
  47          
  48          
  49          
  50          /**************************************
  51          说明:  LCD读函数,完成LCD读操作的物理时序
  52          RS:    0-写指令
  53                          1-写数据
  54          Return:读出的具体值
  55          **************************************/
C51 COMPILER V7.20   LCD                                                                   08/13/2008 21:53:02 PAGE 2   

  56          
  57          unsigned char LcdRead(bit RS)
  58          {
  59   1              unsigned char rt;
  60   1              /*1 、设置RS信号线*/
  61   1        Lcd_RS=RS;
  62   1          /*2、设置RW信号线为读*/
  63   1        Lcd_RW=1;
  64   1              /*3、释放P0口*/
  65   1        P0=0xff;
  66   1          /*4、设置LCD片选*/
  67   1        SELECT_LCD();
  68   1        SELECT_LCD();
  69   1        SELECT_LCD();
  70   1        SELECT_LCD();
  71   1          /*5、通过P0端口读值*/
  72   1        rt=P0;
  73   1          /*6、锁存*/
  74   1        SELECT_NONE();
  75   1      
  76   1        return rt;
  77   1      
  78   1      }
  79          
  80          
  81          
  82          
  83          /******************************
  84          说明;   LCD写指令
  85          Value:写的具体值
  86          Attrib:0-不检测忙信号
  87                          1-监测忙信号
  88          ******************************/
  89          void LcdWriteCmd(unsigned char value,unsigned char attrib)
  90          {
  91   1              /*监测忙状态*/
  92   1              if(attrib)
  93   1                      while(LcdRead(0)&0x80);
  94   1      
  95   1              LcdWrite(value,0);
  96   1      }
  97          
  98          
  99          
 100          
 101          /****************************
 102          说明:  LCD写数据
 103           ***************************/
 104          void LcdWriteData(unsigned char value)
 105          {
 106   1              /*监测忙状态*/
 107   1              while(LcdRead(0)&0x80);
 108   1      
 109   1              LcdWrite(value,1);
 110   1      }
 111          
 112          
 113          /****************************
 114          说明:Lc读数据
 115           *************************
 116          unsigned char LcdReadData()
 117          {
C51 COMPILER V7.20   LCD                                                                   08/13/2008 21:53:02 PAGE 3   

 118                  //*监测忙状态*
 119                  while(LcdRead(0)&0x80);
 120                  return LcdRead(1);
 121          }
 122          */
 123          
 124          /**************************
 125          说明: 短延时,s5Ms
 126           **************************/
 127          void Delay5Ms(void)
 128          {
 129   1              unsigned int i=5552;
 130   1              while(i--);
 131   1      }
 132          
 133          
 134          /*************************
 135          说明:长延时,400Ms
 136          **************************/
 137          void Delay400Ms(void)
 138          {
 139   1              unsigned int i=80;
 140   1              while(i--)
 141   1                      Delay5Ms();
 142   1      }
 143          
 144          
 145          /*********************************************
 146          说明:  LCD初始化函数,需要按照产品说明书完成
 147           *********************************************/
 148          void LcdInit(void)
 149          {
 150   1              Delay400Ms();
 151   1      
 152   1              /*写指令0x38连续3次,不检测忙信号*/
 153   1              LcdWriteCmd(0x38,0);
 154   1              Delay5Ms();
 155   1      
 156   1              LcdWriteCmd(0x38,0);
 157   1              Delay5Ms();
 158   1      
 159   1              LcdWriteCmd(0x38,0);
 160   1              Delay5Ms();
 161   1              
 162   1              //*以后的读写操作均要监测判断忙信号*/
 163   1              LcdWriteCmd(0x38,1);
 164   1              //*先设置关屏*/
 165   1              LcdWriteCmd(0x08,1);
 166   1              //*清屏*/
 167   1              LcdWriteCmd(0x01,1);
 168   1              //*设置光标显示模式*/     
 169   1              LcdWriteCmd(0x06,1);
 170   1              //*开光标屏显示光

⌨️ 快捷键说明

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