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

📄 mra8806.lst

📁 ra8806触摸屏控制芯片完全c51底层驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 1   


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

line level    source

   1          
   2          
   3          #include<mra8806.h>
   4          extern uchar code gImage_pic1[];
   5          sbit bWRZ=P3^4;
   6          sbit bRDZ=P3^5;
   7          sbit bCSZ=P3^7;
   8          sbit RS=P1^0;
   9          sbit RST=P1^1;
  10          sbit DATA=P0;
  11          void delay1ms(unsigned int z)
  12          {
  13   1          unsigned int x,y;
  14   1      
  15   1          for(x=z;x>0;x--)
  16   1              for(y=110;y>0;y--);
  17   1      }
  18          void Delay2us(uchar Counter)
  19          {
  20   1              while(--Counter);
  21   1      }
  22          void delay100us(uchar Counter)
  23          {
  24   1              while(Counter--)
  25   1              {       Delay2us(150);
  26   2              }
  27   1      }
  28          unsigned char Read_Status(void)
  29          {
  30   1              unsigned char temp=0;
  31   1              RS=1;
  32   1              bCSZ=0;
  33   1              bWRZ=1;
  34   1              bRDZ=0;
  35   1              temp=P0;
  36   1              bRDZ=1;
  37   1              bCSZ=1;
  38   1              P0=0xff;
  39   1              RS=0;
  40   1              return (temp);
  41   1      }
  42          void Wr_Data(unsigned char Addr,unsigned char Data)
  43          {
  44   1              RS=1;
  45   1              bCSZ=0;
  46   1              bWRZ=0;
  47   1              bRDZ=1;
  48   1              P0=Addr;
  49   1              bWRZ=1;
  50   1              bCSZ=1;
  51   1              RS=0;
  52   1              bCSZ=0;
  53   1              bWRZ=0;
  54   1              P0=Data;
  55   1              bWRZ=1;
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 2   

  56   1              bCSZ=1;
  57   1              RS=1;
  58   1              P0=0xff;
  59   1      
  60   1      }
  61          void Wrr_Addr(unsigned char cmd)
  62          {
  63   1              _nop_();
  64   1              bCSZ = 0;
  65   1              RS   = 1;
  66   1              bWRZ = 0;
  67   1              P0   = cmd;
  68   1              bWRZ = 1;
  69   1              bCSZ = 1;
  70   1              P0   = 0xff;
  71   1              RS   = 0;
  72   1      }
  73          void Wrr_Data(unsigned char Data)
  74          {
  75   1              _nop_();
  76   1              bCSZ = 0;
  77   1              RS   = 0; 
  78   1              bWRZ = 0;
  79   1              P0   = Data;
  80   1              bWRZ = 1;
  81   1              bCSZ = 1;
  82   1              P0   = 0xff;
  83   1              RS   = 1;
  84   1      }
  85          unsigned char Read_Data(void)
  86          {
  87   1              uchar temp;
  88   1              bWRZ = 1;
  89   1              bCSZ = 0;
  90   1              RS   = 0;
  91   1              bRDZ = 0;
  92   1              temp = P0;
  93   1          bRDZ = 1;
  94   1              bCSZ = 1;
  95   1              RS   = 1;
  96   1              return(temp);
  97   1      }
  98          void Rst()
  99          {
 100   1              
 101   1              RST=0;
 102   1              delay1ms(30);
 103   1              RST=1;
 104   1              delay1ms(20);
 105   1      }
 106          
 107          void Lcd_On(void)
 108          {
 109   1              uchar temp;
 110   1      
 111   1              Wrr_Addr(WLCR);
 112   1              temp = Read_Data();
 113   1              temp |= cSetb2;
 114   1              Wrr_Addr(WLCR);
 115   1              Wrr_Data(temp);
 116   1      }
 117          void Lcd_Graphic(void)
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 3   

 118          {
 119   1              unsigned char temp;
 120   1              temp=0;
 121   1              Wrr_Addr(0);
 122   1              temp = Read_Data();
 123   1              temp &= 0xf7;
 124   1              Wrr_Addr(0);
 125   1              Wrr_Data(temp); 
 126   1      }
 127          void Access_2Pages(void)
 128          {
 129   1              unsigned char temp;
 130   1              temp=0;
 131   1              Wrr_Addr(0x12);
 132   1              temp=Read_Data();
 133   1              temp|=0x02;
 134   1              temp|=0x01;
 135   1              Wrr_Addr(0x12);
 136   1              Wrr_Data(temp);
 137   1      }
 138          void Set_Fill_PNTR_to_DDRAM(void)
 139          {
 140   1              unsigned temp;
 141   1              temp=0;
 142   1      
 143   1              Wrr_Addr(0xf0);
 144   1              temp=Read_Data();
 145   1              temp|=0x08;
 146   1              Wr_Data(0xf0,temp);
 147   1              do{
 148   2                      _nop_();
 149   2                      _nop_();
 150   2                      }while(Read_Status()&0x80);
 151   1      }
 152          void Lcd_Clear(void)
 153          {
 154   1              Lcd_Graphic();
 155   1              //Access_2Pages();
 156   1              
 157   1              Wr_Data(0xe0,0x00);
 158   1              Set_Fill_PNTR_to_DDRAM();       
 159   1      }
 160          void Access_Page1(void)
 161          {
 162   1              uchar temp;
 163   1              
 164   1              Wrr_Addr(MAMR);
 165   1              temp = Read_Data();
 166   1              temp &= cClrb1;
 167   1              temp |= cSetb0;
 168   1              Wrr_Addr(MAMR);
 169   1              Wrr_Data(temp);
 170   1      }
 171          void Access_Page2(void)
 172          {
 173   1              uchar temp;
 174   1              
 175   1              Wrr_Addr(MAMR);
 176   1              temp = Read_Data();
 177   1              temp &= cClrb0;
 178   1              temp |= cSetb1;
 179   1              Wrr_Addr(MAMR);
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 4   

 180   1              Wrr_Data(temp);
 181   1      }
 182          void Only_Show_Page1(void)
 183          {
 184   1              uchar temp;
 185   1              
 186   1              Wrr_Addr(MAMR);
 187   1              temp = Read_Data();
 188   1              temp &= cClrb6;
 189   1              temp &= cClrb5;
 190   1              temp |= cSetb4;
 191   1              Wrr_Addr(MAMR);
 192   1              Wrr_Data(temp);
 193   1      }
 194          void Only_Show_Page2(void)
 195          {
 196   1              uchar temp;
 197   1              
 198   1              Wrr_Addr(MAMR);
 199   1              temp = Read_Data();
 200   1              temp &= cClrb6;
 201   1              temp &= cClrb4;
 202   1              temp |= cSetb5;
 203   1              Wrr_Addr(MAMR);
 204   1              Wrr_Data(temp);
 205   1      }
 206          void Show_Two_Layer(void)
 207          {
 208   1              uchar temp;
 209   1              
 210   1              Wrr_Addr(MAMR);
 211   1              temp = Read_Data();
 212   1              temp &= cClrb6;
 213   1              temp |= cSetb5;
 214   1              temp |= cSetb4;
 215   1              Wrr_Addr(MAMR);
 216   1              Wrr_Data(temp);
 217   1      }
 218          void LCD_Text(void)
 219          {
 220   1              uchar temp;
 221   1              
 222   1              Wrr_Addr(WLCR);
 223   1              temp = Read_Data();
 224   1              temp |= cSetb3;
 225   1              Wrr_Addr(WLCR);
 226   1              Wrr_Data(temp);
 227   1      }
 228          void LCD_GotoXY(uchar x, uchar y)
 229          {
 230   1              Wrr_Addr(CURX);
 231   1              Wrr_Data(x);
 232   1      
 233   1              
 234   1      
 235   1              Wrr_Addr(CURY);
 236   1              Wrr_Data(y);
 237   1      
 238   1      }
 239          void LCD_FontSize(uchar buf)//15为四倍字体,10为三倍字体,5为两倍字体
 240          {
 241   1              uchar temp;
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 5   

 242   1              buf = buf << 4;
 243   1              temp = (buf & 0xF0) | (0x0F);   
 244   1              Wrr_Addr(FVHT);
 245   1              Wrr_Data(temp);
 246   1      }
 247          void LCD_Inv(void)//写入数据取反显示
 248          {
 249   1              uchar temp;
 250   1              
 251   1              Wrr_Addr(WCCR);
 252   1              temp = Read_Data();
 253   1              temp |= cSetb5;                 
 254   1              Wrr_Addr(WCCR);
 255   1              Wrr_Data(temp);
 256   1      }
 257          void LCD_NoInv(void)
 258          {
 259   1              uchar temp;
 260   1      
 261   1              Wrr_Addr(WCCR);
 262   1              temp = Read_Data();
 263   1              temp &= cClrb5;                         
 264   1              Wrr_Addr(WCCR);
 265   1              Wrr_Data(temp);
 266   1      }
 267          void LCD_Bold(void)//显示粗体字
 268          {
 269   1              uchar temp;
 270   1              
 271   1              Wrr_Addr(WCCR);
 272   1              temp = Read_Data();
 273   1              temp |= cSetb4;
 274   1              Wrr_Addr(WCCR);
 275   1              Wrr_Data(temp);
 276   1      }
 277          void LCD_NoBold(void)
 278          {
 279   1              uchar temp;
 280   1              
 281   1              Wrr_Addr(WCCR);
 282   1              temp = Read_Data();
 283   1              temp &= cClrb4;
 284   1              Wrr_Addr(WCCR);
 285   1              Wrr_Data(temp);
 286   1      }
 287          void Gray_Mode(void)//灰度模式,不支持汉字
 288          {
 289   1              uchar temp;
 290   1              

⌨️ 快捷键说明

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