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

📄 lcd_fucntion.lst

📁 RFID读卡器TRH031开发源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   LCD_FUCNTION                                                          11/02/2005 12:55:38 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE LCD_FUCNTION
OBJECT MODULE PLACED IN LCD_Fucntion.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD_Fucntion.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***********************************************************
   2          * Company       :       3ALOGICS                                   *
   3          ************************************************************/
   4          #include <stdio.h>
   5          #include "common.h"
   6          #include "base.h"
   7          
   8          #define LCDP P2                            
   9          #define EN   P2_0
  10          
  11          void Delay_ms(int p)                  // X=0.001/(1/11.0592/12)*8=115(1ms 狼 掉饭捞 拌魂) 
  12          {
  13   1       int i,j;
  14   1       for(i=0;i<p;i++)
  15   1        {
  16   2         for(j=0;j<141;j++);
  17   2        }
  18   1      }  
  19          
  20          void Instruction_Out(BYTE b) //INSTRUCTIN 免仿阑 困茄 窃荐
  21          {
  22   1         LCDP=b&0xf0;                       //惑困 4BIT 免仿 
  23   1         EN=1;                              //ENABLE 
  24   1         EN=0;                              //DISABLE
  25   1         LCDP=(b&0x0f)<<4;                  //窍困 4BIT 免仿
  26   1         EN=1;                              //ENABLE
  27   1         EN=0;                              //DISABLE
  28   1         //Busy();                            //疙飞绢 荐青捞 肯丰瞪嫐鳖瘤 瘤楷
  29   1         Delay_ms(2);
  30   1         
  31   1      }
  32          
  33          void Char_Out(BYTE b)        //LCD俊 茄巩磊 免仿窍绰 窃荐
  34          {
  35   1         
  36   1         LCDP=(b&0xf0)|0x04;                //惑困 4BIT 免仿
  37   1         EN=1;                              //ENABLE
  38   1         EN=0;                              //DISABLE 
  39   1         LCDP=((b&0x0f)<<4)|0x04;           //窍困 4BIT 免仿
  40   1         EN=1;                              //ENABLE
  41   1         EN=0;                              //DISABLE
  42   1         //Busy();                            //疙飞绢 荐青捞 肯丰瞪锭鳖瘤 瘤楷
  43   1         Delay_ms(2);
  44   1         
  45   1      }
  46          
  47          void Lcd_Initial(void)                //LCD檬扁拳 风凭
  48          {
  49   1         
  50   1         EN=0;                           
  51   1         Delay_ms(100);                        
  52   1         Instruction_Out(0x28);             //LCD FUNCTION SET(16*2LINE, 4BIT, 5*8DOT)            
  53   1         Delay_ms(100);                        
  54   1         Instruction_Out(0x0c);             //LCD DISPLAY ON,CURSOR OFF,BLINK OFF
  55   1         Delay_ms(100);                        
C51 COMPILER V7.20   LCD_FUCNTION                                                          11/02/2005 12:55:38 PAGE 2   

  56   1         Instruction_Out(0x01);             //LCD CLEAR
  57   1         Delay_ms(100);                        
  58   1         Instruction_Out(0x06);             //LCD ENTRY MODE SET
  59   1         Delay_ms(100);                        
  60   1         Instruction_Out(0x02);             //RETURN HOME
  61   1         
  62   1      }
  63          
  64          void String_Out(BYTE *str)   //巩磊凯 免仿阑 困茄 窃荐
  65          {
  66   1        unsigned int i=0;
  67   1        do{
  68   2           Char_Out(str[i]);
  69   2           }while(str[++i]!='\0');
  70   1      }
  71          
  72          void Int_String_Out(BYTE *str)   //巩磊凯 免仿阑 困茄 窃荐
  73          {
  74   1        unsigned int i=0;
  75   1        do{
  76   2           Char_Out(str[i]);
  77   2           }while(str[++i]!='\0');
  78   1      }
  79          
  80          void Hex_String_Out(BYTE str[2])   //巩磊凯 免仿阑 困茄 窃荐
  81          {
  82   1           Char_Out(str[0]);
  83   1               Char_Out(str[1]);
  84   1      }
  85          
  86          void Line1_Display (void)
  87          {
  88   1              Instruction_Out(0x80);
  89   1              }
  90          
  91          void Line2_Display (void)
  92          {
  93   1              Instruction_Out(0xc0);
  94   1              }
  95          
  96          void Lcd_Clear (void)
  97          {
  98   1              Instruction_Out(0x01);
  99   1              }
 100          
 101          void Dec2Hex (BYTE deci, BYTE hexa[2])
 102          {
 103   1              BYTE Lower=0,Upper=0;
 104   1              Lower = (deci&0x0f);
 105   1              Upper = (deci&0xf0)>>4;
 106   1      
 107   1              if(Lower>9)
 108   1              {
 109   2                      hexa[1] = Lower+55;
 110   2              }
 111   1              else
 112   1              {
 113   2                      hexa[1] = Lower+48;
 114   2              }
 115   1      
 116   1              if(Upper>9)
 117   1              {
C51 COMPILER V7.20   LCD_FUCNTION                                                          11/02/2005 12:55:38 PAGE 3   

 118   2                      hexa[0] = Upper+55;
 119   2              }
 120   1              else
 121   1              {
 122   2                      hexa[0] = Upper+48;     
 123   2              }
 124   1      }
 125          
 126          void Dec2HexOut (BYTE deci)
 127          {
 128   1              BYTE hexa[2];
 129   1              Dec2Hex(deci,hexa);
 130   1              Hex_String_Out(hexa);
 131   1      }
 132          
 133          /*void Display_ID(BYTE *BUf)
 134          {
 135                  i=0;
 136                  do{Buf[i]
 137          
 138                  }while(Buf[++i]!='\0');*/
 139          
 140          void FIFO_Read(void)
 141          {
 142   1              BYTE FIFOLength;
 143   1              BYTE i;
 144   1              FIFOLength = Read(0x04);
 145   1      
 146   1              if(FIFOLength != 0)
 147   1              {
 148   2                      printf("\n FIFO Data Read :: Length = %02X [Hex] \n ", (int)FIFOLength);
 149   2                      for(i=0; i<FIFOLength; i++)
 150   2                      {
 151   3                              printf("FIFO Byte[%02X] = %02X \n " ,  (int)i, (int)Read(0x02) );       
 152   3                  }
 153   2              }
 154   1              else {
 155   2                      printf("\n FIFO EMPTY !! \n ");
 156   2              }
 157   1      }
 158          
 159          void Display_SFR(void)
 160          {
 161   1              BYTE PriSta;
 162   1              BYTE FIFOLength;
 163   1              BYTE Command;
 164   1              BYTE temp;
 165   1              PriSta = (((Read(0x03))&0x70)>>4);
 166   1              FIFOLength = Read(0x04);
 167   1              if(FIFOLength!=0x00){
 168   2                      Command = ((Read(0x01))&0x3f);
 169   2                      Line1_Display();
 170   2                      String_Out("Pri:    FIFO:   ");
 171   2                      Instruction_Out(0x85);
 172   2                      Dec2HexOut(PriSta);
 173   2                      Instruction_Out(0x8e);
 174   2                      Dec2HexOut(FIFOLength);
 175   2                      Line2_Display();
 176   2                      String_Out("Com:           ");
 177   2                      Instruction_Out(0xc5);
 178   2                      Dec2HexOut(Command);
 179   2                      Delay_ms(1000);
C51 COMPILER V7.20   LCD_FUCNTION                                                          11/02/2005 12:55:38 PAGE 4   

 180   2                      Lcd_Clear();
 181   2      
 182   2      //IRQ Check
 183   2                      temp = Read(0x03);
 184   2                      if((temp&0x08)>>3)
 185   2                      {
 186   3                              temp=Read(0x07);
 187   3                              if((temp&0x20)>>5)
 188   3                              {
 189   4                                      Line1_Display();
 190   4                                      String_Out("IRQ TimerlRq");
 191   4                                      Delay_ms(1000);
 192   4                                      Lcd_Clear();
 193   4                              }
 194   3                              if((temp&0x10)>>4)
 195   3                              {
 196   4                                      Line1_Display();
 197   4                                      String_Out("IRQ TxlRq");
 198   4                                      Delay_ms(1000);
 199   4                                      Lcd_Clear();
 200   4                              }
 201   3                              if((temp&0x08)>>3)
 202   3                              {
 203   4                                      Line1_Display();
 204   4                                      String_Out("IRQ RxlRq");
 205   4                                      Delay_ms(1000);
 206   4                                      Lcd_Clear();
 207   4                              }
 208   3                              if((temp&0x04)>>2)
 209   3                              {
 210   4                                      Line1_Display();
 211   4                                      String_Out("IRQ IdleRq");
 212   4                                      Delay_ms(1000);
 213   4                                      Lcd_Clear();
 214   4                              }
 215   3                              if((temp&0x02)>>1)
 216   3                              {
 217   4                                      Line1_Display();
 218   4                                      String_Out("IRQ HiAlertRq");
 219   4                                      Delay_ms(1000);
 220   4                                      Lcd_Clear();
 221   4                              }
 222   3                              if (temp&0x01)
 223   3                              {
 224   4                                      Line1_Display();
 225   4                                      String_Out("IRQ LowAlertRq");
 226   4                                      Delay_ms(1000);
 227   4                                      Lcd_Clear();

⌨️ 快捷键说明

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