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

📄 lcd.lst

📁 这是一个产品的开发项目(基本程序)。有按键计算
💻 LST
字号:
C51 COMPILER V7.50   LCD                                                                   01/03/2009 21:23:34 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 SRC\lcd.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lcd.lst) OBJECT(lcd.obj)

line level    source

   1          #include "p89v51rx2.h"
   2          #include        <intrins.h>
   3          #include        <string.h>
   4          
   5          //-----------------------------------------------
   6          //TS12864并口相关设定//
   7          #define BUSY_FLAG       P0_7                                            //液晶模块忙标志
   8          //#define       BG_LED_SET      P1_7                                            //液晶背景光控制
   9          #define MPU_RS_CH       P2_6                                            //寄存器选择输入
  10          #define MPU_RW_CH       P2_7                                            //读写控制
  11          #define MPU_ENABLE      P2_3                                            //使能控制
  12          #define MPU_PS_CH       P2_3                                            //串/并传输控制
  13          #define MPU_RESET       P2_5                                            //液晶复位控制
  14          #define LCD_DATA        P0                                                      //液晶数据口
  15          #define LOW                     0                                                       //低电平
  16          #define HIGH            1                                                       //高电平
  17          //-----------------------------------------------
  18          //液晶模块定义集指令//
  19          #define cClearDisplay   0x01                                    //清显示指令
  20          #define cEntryModeSet   0x06                                    //设置输入模式
  21          #define cDisplayOnCtrl  0x0c                                    //设置开显控制
  22          #define cFunctionSetB   0x30                                    //功能设定(基本指令)
  23          #define cFunctionSetE   0x34                                    //功能设定(扩充指令)
  24          #define cFuncDrawOn             0x36                                    //设置绘图功能
  25          //unsigned char lcdPosX, lcdPosY;                                       //X,Y坐标
  26          //unsigned char halfScr, blStart, basicBlock;           //半屏,下半屏,16*8块
  27          //-----------------------------------------------
  28          extern void delayMs (unsigned char ms)   ;
  29          void lcdWriteCommand (unsigned char Command);
  30          void lcdClear (void);
  31          void checkLcdBusy (void);
  32          //===============================================
  33          void lcdInit (void)
  34          {
  35   1              MPU_RESET = LOW;
  36   1              delayMs(40);
  37   1              MPU_RESET = HIGH;
  38   1              delayMs(1);
  39   1              MPU_PS_CH = HIGH;
  40   1       
  41   1              lcdWriteCommand(cFunctionSetE);
  42   1              lcdWriteCommand(cFunctionSetB);
  43   1              lcdClear();
  44   1              lcdWriteCommand(cEntryModeSet);
  45   1              lcdWriteCommand(cDisplayOnCtrl);
  46   1      }
  47          //===============================================
  48          void lcdClear (void)
  49          {
  50   1      /*#define       cClearDisplay   0x01                                    //清显示指令
  51   1      */
  52   1              lcdWriteCommand(cClearDisplay);
  53   1      }
  54          //===============================================
  55          void lcdWriteCommand (unsigned char Command)
C51 COMPILER V7.50   LCD                                                                   01/03/2009 21:23:34 PAGE 2   

  56          {
  57   1              checkLcdBusy();
  58   1              MPU_RS_CH = LOW;
  59   1              MPU_RW_CH = LOW;
  60   1              LCD_DATA = Command;
  61   1              MPU_ENABLE = 1;
  62   1              delayMs(1);
  63   1              MPU_ENABLE = LOW;
  64   1      }
  65          //===============================================
  66          void lcdWriteData (unsigned char Data)
  67          {
  68   1              checkLcdBusy();
  69   1              MPU_RS_CH = HIGH;
  70   1              MPU_RW_CH = LOW;
  71   1              LCD_DATA = Data;
  72   1              MPU_ENABLE = HIGH;
  73   1              delayMs(1);
  74   1              MPU_ENABLE = LOW;
  75   1      }
  76          //===============================================
  77          void checkLcdBusy (void)
  78          {
  79   1              LCD_DATA = 0xff;
  80   1              MPU_RS_CH = LOW;
  81   1              MPU_RW_CH = HIGH;
  82   1              MPU_ENABLE = HIGH;
  83   1              while (BUSY_FLAG);
  84   1              MPU_ENABLE = LOW;
  85   1      }
  86          
  87          //===============================================
  88          void char_in_String_10(unsigned char _data, unsigned char y,signed char *msg,signed char sign)  {
  89   1      
  90   1          unsigned char *Ptr;
  91   1                Ptr=msg+y;
  92   1                      if(_data>99)_data=99;
  93   1                *(Ptr--)  =_data%10+0x30;
  94   1          *(Ptr--)  =(_data/10)+0x30;
  95   1              Ptr-- ;
  96   1              if(sign)
  97   1                      *(Ptr)  ='>';
  98   1          else        
  99   1                  *(Ptr)  =' ';
 100   1      }
 101          
 102          //===============================================
 103          void dispString (unsigned char X, Y, speed, unsigned char *msg)
 104          {
 105   1              if (X == 0)
 106   1              {
 107   2                      X = 0x80;
 108   2              }
 109   1              else if (X == 1)
 110   1              {
 111   2                      X = 0x90;
 112   2              }
 113   1              else if (X == 2)
 114   1              {
 115   2                      X = 0x88;
 116   2              }
 117   1              else if (X == 3)
C51 COMPILER V7.50   LCD                                                                   01/03/2009 21:23:34 PAGE 3   

 118   1              {
 119   2                      X = 0x98;
 120   2              }
 121   1              Y = X + Y;
 122   1              lcdWriteCommand(Y);
 123   1      
 124   1              while (*msg)
 125   1              {
 126   2                      lcdWriteData(*msg++);
 127   2                      delayMs(speed);
 128   2              }
 129   1      }
 130          //===============================================
 131          void delaySec (unsigned char sec)
 132          {
 133   1              unsigned char i;
 134   1              while (--sec)
 135   1              {
 136   2                      for (i = 0; i < 200; i++)
 137   2                      {
 138   3                              delayMs (6);
 139   3                      }
 140   2              }
 141   1      }
 142          //===============================================
 143          /**/


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