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

📄 disdrive.lst

📁 单片机控制的12864液晶显示器的驱动程序,通过按键控制
💻 LST
字号:
C51 COMPILER V7.50   DISDRIVE                                                              08/20/2006 14:48:05 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DISDRIVE
OBJECT MODULE PLACED IN DISDRIVE.OBJ
COMPILER INVOKED BY: E:\Program Files\keil\C51\BIN\C51.EXE DISDRIVE.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //2003.1.10
   2          //write by sunny
   3          
   4          #include "main.h"
   5          #include "disdrive.h"
   6          
   7          void HardInitialLED()
   8          {
   9   1              LedReset(FALSE);
  10   1              SetLedE_1();
  11   1              SetLedReadDataMode();
  12   1      
  13   1              DriveControlChip(0x00,0x00);
  14   1              SetLedZAddress(0x00);
  15   1              SetLedXAddress(0x00);
  16   1              SetLedYAddress(0x00);
  17   1              LedDisplay(TRUE);
  18   1      
  19   1              DriveControlChip(0x00,0x08);
  20   1              SetLedZAddress(0x00);
  21   1              SetLedXAddress(0x00);
  22   1              SetLedYAddress(0x00);
  23   1              LedDisplay(TRUE);
  24   1      }
  25          
  26          void DataOnLine(UCHAR ucSend)
  27          {
  28   1              P0 = ucSend; //put data to LED data line
  29   1      }
  30          void SetLedDI_D()
  31          {
  32   1              P20 = 1; //DI=1
  33   1      }
  34          
  35          void SetLedDI_I()
  36          {
  37   1              P20 = 0;//DI=0
  38   1      }
  39          
  40          void SetLedRW_R()
  41          {
  42   1              P21 = 1;//WR=1
  43   1      }
  44          
  45          void SetLedRW_W()
  46          {
  47   1              P21 = 0;//WR=0
  48   1      }
  49          
  50          void SetLedE_1()
  51          {
  52   1              P22 = 1;//E=1
  53   1      }
  54          
  55          void SetLedE_0()
C51 COMPILER V7.50   DISDRIVE                                                              08/20/2006 14:48:05 PAGE 2   

  56          {
  57   1              P22 = 0;//E=0
  58   1      }
  59          
  60          void SelectLeft()
  61          {
  62   1              P23 = 1;//pc4=1 CSA=1
  63   1              P24 = 0;//pc5=0 CSB=0
  64   1      }
  65          
  66          void SelectRight()
  67          {
  68   1              P23 = 0; //pc4=0  CSA=0
  69   1              P24 = 1; //pc5=1  CSB=0
  70   1      }
  71          
  72          void LedReset(UCHAR Reset)
  73          {
  74   1              if (Reset) //the LED can't work normal ;i don't know why
  75   1                      {
  76   2      //                      P25 = 0;//reset   pc7=0
  77   2      //                      delay(0xFFFF);
  78   2      //                      SendLedInstruction(0xE2);
  79   2                      }
  80   1      //        else P25 = 1; //reset off    pc7=1
  81   1                      P25 = 1; //reset off    pc7=1  RST=1
  82   1                      P25 = 1; //reset off    pc7=1  RST=1
  83   1      }
  84          
  85          //drive chips whih contral page and segment address
  86          void DriveControlChip(UCHAR page_x, UCHAR seg_y)
  87          {
  88   1              page_x = page_x;
  89   1              if ( seg_y < 8)  //select segmetn drive chip 0
  90   1              {
  91   2                      SelectLeft();
  92   2              }
  93   1              else             //select segmetn drive chip 1
  94   1              {
  95   2                      SelectRight();
  96   2              }
  97   1      }
  98          
  99          void SetLedWriteInstructionMode()
 100          {
 101   1              SetLedDI_I();//D/I select I
 102   1              SetLedRW_W();//R/W select W
 103   1      }
 104          
 105          void SetLedWriteDataMode()
 106          {
 107   1              SetLedDI_D();//D/I select D
 108   1              SetLedRW_W();//R/W select W
 109   1      }
 110          
 111          void SetLedReadDataMode()
 112          {
 113   1              SetLedDI_I();
 114   1              SetLedRW_R();
 115   1      }
 116          
 117          void SendLedData(UCHAR charData)
C51 COMPILER V7.50   DISDRIVE                                                              08/20/2006 14:48:05 PAGE 3   

 118          {
 119   1              DataOnLine(charData);
 120   1              SetLedE_0();
 121   1              SetLedWriteDataMode();
 122   1              SetLedE_1();
 123   1              SetLedE_0();
 124   1              SetLedReadDataMode();
 125   1              SetLedE_1();
 126   1      }
 127          
 128          void SendLedInstruction(UCHAR charData)
 129          {
 130   1              DataOnLine(charData);
 131   1              SetLedE_0();
 132   1              SetLedWriteInstructionMode();
 133   1              SetLedE_1();
 134   1              SetLedE_0();
 135   1              SetLedReadDataMode();
 136   1              SetLedE_1();
 137   1      }
 138          
 139          
 140          void LedDisplay(UCHAR On)
 141          {
 142   1              if (On) SendLedInstruction(0x3F);
 143   1              else SendLedInstruction(0x3E);
 144   1      }
 145          
 146          
 147          void SetLedXAddress(UCHAR cXaddress)
 148          {
 149   1              SendLedInstruction(0xB8 | cXaddress);
 150   1      }
 151          
 152          void SetLedYAddress(UCHAR cYaddress)
 153          {
 154   1              SendLedInstruction(0x40 | cYaddress);
 155   1      }
 156          
 157          void SetLedZAddress(UCHAR cZaddress)
 158          {
 159   1              SendLedInstruction(0xC0 | cZaddress);
 160   1      }
 161          


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