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

📄 ks0108.lst

📁 LCD12864的嵌入式C程序 很有参考价值!
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   KS0108                                                                11/23/2005 17:17:07 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KS0108
OBJECT MODULE PLACED IN Ks0108.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Ks0108.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <regx52.h>
   2          #include <intrins.h>
   3          
   4          sbit    RS = P2^6;      /*"H" is send or read the data;"L" is the instruction*/
   5          sbit    RW = P3^6;
   6          sbit    E  = P2^5;      /*Operation enable*/
   7          sbit    CS1 = P2^4;
   8          sbit    CS2 = P2^3;
   9          sbit    CS3 = P2^2;
  10          
  11          
  12          #define DATA  P0        
  13          #define uchar unsigned char
  14          #define uint unsigned int
  15          
  16          /*----------------------------------------------------------------------------
  17          Delay some time
  18          ------------------------------------------------------------------------------*/
  19          void delay10ms(unsigned char x)
  20          {
  21   1              unsigned char i,j,k;
  22   1              for(i=0;i<x;i++)
  23   1                      for(j=0;j<15;j++)
  24   1                              for(k=0;k<120;k++);
  25   1      }
  26          /*----------------------------------------------------------------------------
  27          Send the instruction to the First KS0108 window
  28          ------------------------------------------------------------------------------
  29          --*/
  30          void OutFI(uchar i)
  31          { 
  32   1              unsigned char data_sta;
  33   1              EA=0;
  34   1              do{ 
  35   2                      E=0;RW=1;RS=0;CS1=0;_nop_();
  36   2                      E=1;_nop_();_nop_();_nop_();
  37   2                      data_sta=DATA;
  38   2                      _nop_();_nop_();
  39   2                      E=0;RW=0;CS1=1;
  40   2              }while(data_sta&0x80);
  41   1      
  42   1          E=0;RW=0;RS=0;CS1=0;_nop_();
  43   1          DATA=i;
  44   1          E=1;_nop_();_nop_();_nop_();
  45   1              E=0;RW=1;CS1=1;
  46   1              EA=1;
  47   1      }
  48          
  49          /*----------------------------------------------------------------------------
  50          Send the instruction to the Second KS0108 window.
  51          ------------------------------------------------------------------------------
  52          --*/
  53          void OutSI(uchar i)
  54          { 
  55   1              unsigned char data_sta;
C51 COMPILER V7.50   KS0108                                                                11/23/2005 17:17:07 PAGE 2   

  56   1              EA=0;
  57   1              do{ 
  58   2                      E=0;RW=1;RS=0;CS2=0;_nop_();
  59   2                      E=1;_nop_();_nop_();_nop_();
  60   2                      data_sta=DATA;
  61   2                      _nop_();_nop_();
  62   2      
  63   2                      E=0;RW=0;CS2=1;
  64   2              }while(data_sta&0x80);
  65   1      
  66   1          E=0;RW=0;RS=0;CS2=0;_nop_();
  67   1          DATA=i;
  68   1          E=1;_nop_();_nop_();_nop_();
  69   1              E=0;RW=1;CS2=1;
  70   1              EA=1;
  71   1      }
  72          /*----------------------------------------------------------------------------
  73          Send the instruction to the Third KS0108 window
  74          ------------------------------------------------------------------------------
  75          --*/
  76          void OutTI(uchar i)
  77          { 
  78   1              unsigned char data_sta;
  79   1              EA=0;
  80   1              do{ 
  81   2                      E=0;RW=1;RS=0;CS3=0;_nop_();
  82   2                      E=1;_nop_();_nop_();_nop_();
  83   2                      data_sta=DATA;
  84   2                      _nop_();_nop_();
  85   2                      E=0;RW=0;CS3=1;  
  86   2                      }while(data_sta&0x80);
  87   1      
  88   1          E=0;RW=0;RS=0;CS3=0;_nop_();
  89   1          DATA=i;
  90   1          E=1;_nop_();_nop_();_nop_();
  91   1              E=0;RW=1;CS3=1;
  92   1              EA=1;
  93   1      }
  94          
  95          /*----------------------------------------------------------------------------
  96          Send the data to the First ks0108 Window
  97          ------------------------------------------------------------------------------
  98          --*/
  99          void OutFD(uchar i)
 100          { 
 101   1              unsigned char data_sta;
 102   1              EA=0;
 103   1              do{ 
 104   2                      E=0;RW=1;RS=0;CS1=0;_nop_();
 105   2                      E=1;_nop_();_nop_();_nop_();
 106   2                      data_sta=DATA;
 107   2                      _nop_();_nop_();
 108   2                      E=0;RW=0;CS1=1;
 109   2              }while(data_sta&0x80);
 110   1      
 111   1          E=0;RW=0;RS=1;CS1=0;_nop_();
 112   1          DATA=i;     
 113   1          E=1;_nop_();_nop_();_nop_();
 114   1              E=0;RW=1;CS1=1; 
 115   1              EA=1;
 116   1      }
 117          /*----------------------------------------------------------------------------
C51 COMPILER V7.50   KS0108                                                                11/23/2005 17:17:07 PAGE 3   

 118          Send the data to the Second ks0108 Window
 119          ------------------------------------------------------------------------------
 120          --*/
 121          void OutSD(uchar i)
 122          { 
 123   1              unsigned char data_sta;
 124   1              EA=0;
 125   1              do{ 
 126   2                      E=0;RW=1;RS=0;CS2=0;_nop_();
 127   2                      E=1;_nop_();_nop_();_nop_();
 128   2                      data_sta=DATA;
 129   2                      _nop_();_nop_();
 130   2                      E=0;RW=0;CS2=1;
 131   2              }while(data_sta&0x80);
 132   1      
 133   1          E=0;RW=0;RS=1;CS2=0;_nop_();
 134   1          DATA=i;
 135   1          E=1;_nop_();_nop_();_nop_();
 136   1              E=0;RW=1;CS2=1;
 137   1              EA=1;
 138   1      }
 139          /*----------------------------------------------------------------------------
 140          Send the data to the Third ks0108 Window
 141          ------------------------------------------------------------------------------
 142          --*/
 143          void OutTD(uchar i)
 144          { 
 145   1              unsigned char data_sta;
 146   1              EA=0;
 147   1              do{ 
 148   2                      E=0;RW=1;RS=0;CS3=0;_nop_();
 149   2                      E=1;_nop_();_nop_();_nop_();
 150   2                      data_sta=DATA;
 151   2                      _nop_();_nop_();
 152   2                      E=0;RW=0;CS3=1;
 153   2              }while(data_sta&0x80);
 154   1      
 155   1          E=0;RW=0;RS=1;CS3=0;_nop_();
 156   1          DATA=i;
 157   1          E=1;_nop_();_nop_();_nop_();
 158   1              E=0;RW=1;CS3=1;
 159   1              EA=1;
 160   1      }
 161          /*------------------------------------------------------------------------------
 162          Initialize the LCD,The system reset,invoke First time
 163          --------------------------------------------------------------------------------
 164          -*/
 165          void InitLCD()
 166          {
 167   1              OutFI(0x40);                    /*Set the Y address 0 */
 168   1              OutSI(0x40);
 169   1              OutTI(0x40);
 170   1              OutFI(0xb8);                    /*Set the Page 0 */
 171   1              OutSI(0xb8);
 172   1              OutTI(0xb8);    
 173   1              OutFI(0xc0);                    /*Set the display start line 0 */
 174   1              OutSI(0xc0);
 175   1              OutTI(0xc0);    
 176   1              OutFI(0x3f);                    /*Display ON */
 177   1              OutSI(0x3f);
 178   1              OutTI(0x3f);    
 179   1      }
C51 COMPILER V7.50   KS0108                                                                11/23/2005 17:17:07 PAGE 4   

 180          /*------------------------------------------------------------------------------
 181          Clear the three ks0108's display ram. 
 182          Clrscr screen
 183          --------------------------------------------------------------------------------
 184          -*/
 185          void Clrscreen()
 186          {
 187   1              unsigned char i,j;
 188   1      
 189   1              for(i=0;i<8;i++)
 190   1              {
 191   2                      OutFI(0xb8|i);  
 192   2                      for(j=0;j<64;j++)
 193   2                      {
 194   3                              OutFI(j|0x40);
 195   3                              OutFD(0);
 196   3                      }
 197   2              }
 198   1              for(i=0;i<8;i++)
 199   1              {
 200   2                      OutSI(0xb8|i);  
 201   2                      for(j=0;j<64;j++)
 202   2                      {
 203   3                              OutSI(j|0x40);
 204   3                              OutSD(0);

⌨️ 快捷键说明

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