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

📄 ra8803.lst

📁 RA8803液晶控制器的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   RA8803                                                                02/27/2008 14:45:55 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE RA8803
OBJECT MODULE PLACED IN RA8803.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE RA8803.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          *                                                                            
   3          *       Filename:       RA8803.c
   4          * 
   5          *       Author:         Duke Chang
   6          *       Company:        RAiO Technology Inc.
   7          *       Case:           320x240
   8          *       Device:         MXIC MX10E8050IQC at 18.432MHz
   9          *       Date:           2005/10/1
  10          *       Modifier:       Duke Chang
  11          *       Modify Date:    2005/10/13
  12          *       Visions:        1.0
  13          *       Compiled Using Keil C v7.50
  14          *       
  15          *******************************************************************************/
  16          
  17          #include "RA8803.h"
  18          
  19          /******************************************************************************/
  20          /*Sub program area                                                                                                                        */
  21          /******************************************************************************/
  22          
  23          //==============================================================================
  24          //Subroutine:   LCD_Reset
  25          //Function:             
  26          //==============================================================================
  27          void LCD_Reset(void)
  28          {
  29   1              bRST = 0;
  30   1              Delay100ms(5);
  31   1              bRST = 1;
  32   1              Delay100ms(2);
  33   1      }
  34          
  35          //==============================================================================
  36          //Subroutine:   LCD_Initial
  37          //Function:             
  38          //==============================================================================
  39          void LCD_Initial(void)
  40          {
  41   1              LCD_CmdWrite(WLCR, B1100_0101);         //Normal Power 
  42   1              LCD_CmdWrite(MISC, B0000_0010);         //8Mhz
  43   1              
  44   1              LCD_CmdWrite(WCCR, B0110_1011);         //
  45   1      
  46   1              LCD_CmdWrite(AWRR, cAWRR);
  47   1              LCD_CmdWrite(AWBR, cAWBR);
  48   1              LCD_CmdWrite(AWLR, B0000_0000);
  49   1              LCD_CmdWrite(AWTR, B0000_0000);
  50   1              LCD_CmdWrite(DWRR, cDWRR);
  51   1              LCD_CmdWrite(DWBR, cDWBR);
  52   1              LCD_CmdWrite(DWLR, B0000_0000);
  53   1              LCD_CmdWrite(DWTR, B0000_0000);
  54   1      
  55   1              LCD_CmdWrite(SCCR, B0000_0111);         //Frame Rate
C51 COMPILER V8.08   RA8803                                                                02/27/2008 14:45:55 PAGE 2   

  56   1              LCD_CmdWrite(INTR, B0000_0000);
  57   1              LCD_CmdWrite(TPCR, B1100_0000);
  58   1              LCD_CmdWrite(TPSR, B0011_0101);
  59   1      
  60   1              LCD_CmdWrite(PNTR, B0000_0000);         //Fill Data=00
  61   1              LCD_CmdWrite(LCCR, B0000_0000);         //DAC Off
  62   1      
  63   1              LCD_CmdWrite(FNCR, cFNCR);              //GB Code or BIG5 Code
  64   1      }
  65          
  66          //==============================================================================
  67          //Subroutine:   LCD_CmdWrite
  68          //Function:             
  69          //==============================================================================
  70          void LCD_CmdWrite(uchar Addr, uchar Data)
  71          {
  72   1              LCD_ChkBusy();  
  73   1      
  74   1      #ifdef Parallel_8080
  75   1      while(BUSY==1);
  76   1              bCSZ = 0;
  77   1              bRS = 0;
  78   1              DATA_BUS = Addr;                //Reg Addr
  79   1              bWRZ = 0;
  80   1              bWRZ = 1;
  81   1      
  82   1              DATA_BUS = Data;                //Reg Data
  83   1              bWRZ = 0;
  84   1              bWRZ = 1;
  85   1              bCSZ = 1;
  86   1              DATA_BUS = 0xff;        
  87   1      #endif
  88   1      }
  89          
  90          //==============================================================================
  91          //Subroutine:   CmdRead
  92          //Function:             
  93          //==============================================================================
  94          uchar LCD_CmdRead(uchar Addr)
  95          {
  96   1              uchar Data;
  97   1              
  98   1      #ifdef Parallel_8080
  99   1              bCSZ = 0;
 100   1              bRS = 0;
 101   1              DATA_BUS = Addr;                //Reg Addr
 102   1              bWRZ = 0;
 103   1              bWRZ = 1;
 104   1              
 105   1              DATA_BUS = 0xff;
 106   1              bRDZ = 0;
 107   1              Data = DATA_BUS;
 108   1              bRDZ = 1;
 109   1              bCSZ = 1;
 110   1      #endif
 111   1              return Data;
 112   1      }
 113          
 114          //==============================================================================
 115          //Subroutine:   LCD_DataWrite
 116          //Function:             
 117          //==============================================================================
C51 COMPILER V8.08   RA8803                                                                02/27/2008 14:45:55 PAGE 3   

 118          void LCD_DataWrite(uchar Data)
 119          {
 120   1              LCD_ChkBusy();
 121   1              
 122   1      #ifdef Parallel_8080
 123   1          while(BUSY==1);
 124   1              bCSZ = 0;
 125   1              bRS = 1;
 126   1              DATA_BUS = Data;
 127   1              bWRZ = 0;
 128   1              bWRZ = 1;
 129   1              bCSZ = 1;
 130   1              DATA_BUS = 0xff;
 131   1      #endif
 132   1      }
 133          
 134          //==============================================================================
 135          //Subroutine:   LCD_DataRead
 136          //Function:             
 137          //==============================================================================
 138          uchar LCD_DataRead(void)
 139          {
 140   1              uchar Data;
 141   1      
 142   1              LCD_ChkBusy();
 143   1              
 144   1      #ifdef Parallel_8080
 145   1              bCSZ = 0;
 146   1              bRS = 1;
 147   1              bRDZ = 0;
 148   1              Data = DATA_BUS;
 149   1              bRDZ = 1;
 150   1              bCSZ = 1;
 151   1      #endif
 152   1      
 153   1              return Data;
 154   1      }
 155          
 156          //==============================================================================
 157          //Subroutine:   LCD_ChkBusy
 158          //Function:             
 159          //==============================================================================
 160          void LCD_ChkBusy(void)
 161          {
 162   1      //      uchar temp;
 163   1              
 164   1      //      do
 165   1      //      {
 166   1      //              temp = LCD_CmdRead(ISR);
 167   1      //      }while(temp & cTestb7);
 168   1      }
 169          
 170          //==============================================================================
 171          //Subroutine:   LCD_On
 172          //Function:
 173          //==============================================================================
 174          void LCD_ON(void)
 175          {
 176   1              uchar temp;
 177   1              
 178   1              temp = LCD_CmdRead(WLCR);
 179   1              temp |= cSetb2;
C51 COMPILER V8.08   RA8803                                                                02/27/2008 14:45:55 PAGE 4   

 180   1              LCD_CmdWrite(WLCR, temp);
 181   1      }
 182          
 183          void LCD_OFF(void)
 184          {
 185   1              uchar temp;
 186   1              
 187   1              temp = LCD_CmdRead(WLCR);
 188   1              temp &= cClrb2;
 189   1              LCD_CmdWrite(WLCR, temp);
 190   1      }
 191          
 192          //==============================================================================
 193          //Subroutine:   LCD_GotoXY
 194          //Function:             LCD Cursor X-Y
 195          //==============================================================================
 196          void LCD_GotoXY(uchar x, uchar y)
 197          {
 198   1              LCD_CmdWrite(CPXR, (x & B0011_1111));
 199   1              LCD_CmdWrite(CPYR, (y & B1111_1111));   
 200   1      }
 201          
 202          //==============================================================================
 203          //Subroutine:   LCD_Graphic
 204          //Function:
 205          //==============================================================================
 206          void LCD_Graphic(void)
 207          {
 208   1              uchar temp;
 209   1              
 210   1              temp = LCD_CmdRead(WLCR);
 211   1              temp &= cClrb3;
 212   1              LCD_CmdWrite(WLCR, temp);
 213   1      }
 214          
 215          void LCD_Text(void)
 216          {
 217   1              uchar temp;
 218   1              
 219   1              temp = LCD_CmdRead(WLCR);
 220   1              temp |= cSetb3;
 221   1              LCD_CmdWrite(WLCR, temp);
 222   1      }
 223          
 224          //==============================================================================
 225          //Subroutine:   LCD_PrintStr 1
 226          //Function:             
 227          //==============================================================================
 228          void LCD_PrintStrD100ms(uchar *ptr, uchar x, uchar y, uchar time)
 229          {
 230   1              LCD_GotoXY(x, y);
 231   1              
 232   1              while(*ptr != 0)
 233   1              {
 234   2                      LCD_DataWrite(*ptr);
 235   2                      ptr++;
 236   2                      Delay100ms(time);
 237   2              }
 238   1      }
 239          
 240          //==============================================================================
 241          //Subroutine:   LCD_PrintStr 2
C51 COMPILER V8.08   RA8803                                                                02/27/2008 14:45:55 PAGE 5   

 242          //Function:             
 243          //==============================================================================
 244          void LCD_PrintStr(uchar *ptr, uchar cXSize)
 245          {
 246   1              uchar temp;
 247   1      
 248   1              for(temp=0 ; temp<cXSize ; temp++)
 249   1              {
 250   2                      LCD_DataWrite(*ptr);
 251   2                      ptr++;
 252   2              }
 253   1      }
 254          
 255          //==============================================================================
 256          //Subroutine:   Bold
 257          //Function:
 258          //==============================================================================
 259          void LCD_Bold(void)
 260          {
 261   1              uchar temp;
 262   1              
 263   1              temp = LCD_CmdRead(WCCR);
 264   1              temp |= cSetb4;
 265   1              LCD_CmdWrite(WCCR, temp);
 266   1      }
 267          
 268          void LCD_NoBold(void)
 269          {
 270   1              uchar temp;
 271   1              

⌨️ 快捷键说明

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