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

📄 lcd.lst

📁 IC卡的单片机程序proteus仿真
💻 LST
📖 第 1 页 / 共 2 页
字号:
  42   2                      Delay(1);
  43   2                      LCD_EN = 1;
  44   2                      BusyFlag = (bit)((LCD_DATA && 0x80)>>7);
  45   2                      if(!BusyFlag)break;
  46   2                      LCD_EN =0;
  47   2              }
  48   1      }
  49          
  50          /************************************************
  51          ** 函数名称: LCD_Wr_Command
  52          ** 功能描述: 给LCD写指令
  53          ** 输   入: 命令com
  54          ** 输   出: 无
  55          ** 全局变量: 
  56          ** 设    计: 简小木     时间:2008-10-12
  57          *************************************************/
  58          void LCD_Wr_Command(unsigned char com)
  59          {
  60   1              LCD_Busy();
  61   1              LCD_DATA = com;
  62   1              LCD_RS = 0;
  63   1              Delay(1);
  64   1              LCD_RW = 0;
  65   1              Delay(1);
  66   1              LCD_EN = 0;
  67   1      }
  68          
  69          /************************************************
  70          ** 函数名称: LCD_Wr_Data
  71          ** 功能描述: 给LCD写数据
  72          ** 输   入: 数据dat
  73          ** 输   出: 无
  74          ** 全局变量: 
  75          ** 设    计: 简小木     时间:2008-10-12
  76          *************************************************/
  77          void LCD_Wr_Data(unsigned char dat)
  78          {
  79   1              LCD_Busy();
  80   1              LCD_DATA = dat;
C51 COMPILER V8.02   LCD                                                                   03/26/2009 15:06:07 PAGE 6   

  81   1              LCD_RS = 1;
  82   1              Delay(1);
  83   1              LCD_RW = 0;
  84   1              Delay(1);
  85   1              LCD_EN = 0;
  86   1      }
  87          
  88          /************************************************
  89          ** 函数名称: LCD_Wr_Char
  90          ** 功能描述: 写字符
  91          ** 输   入: 列:x, 行:y, 字符:c
  92          ** 输   出: 无
  93          ** 全局变量: 
  94          ** 设    计: 简小木     时间:2008-10-12
  95          *************************************************/
  96          void LCD_Wr_Char(unsigned char x,unsigned char y,unsigned char c)
  97          {
  98   1              if(y==0)
  99   1                      LCD_Wr_Command(0x80+x);
 100   1              else if(y==1)
 101   1                      LCD_Wr_Command(0xc0+x);
 102   1      
 103   1              else if(y>1){}
 104   1      
 105   1              LCD_Wr_Data(c);
 106   1      }
 107          
 108          /************************************************
 109          ** 函数名称: LCD_Wr_String
 110          ** 功能描述: 写字符串
 111          ** 输   入: 列:x, 行:y, 字符串指针:str
 112          ** 输   出: 无
 113          ** 全局变量: 
 114          ** 设    计: 简小木     时间:2008-10-12
 115          *************************************************/
 116          void LCD_Wr_String(unsigned char x,unsigned char y,unsigned char *str)
 117          {
 118   1              unsigned int i;
 119   1              i=strlen(str);
 120   1              
 121   1              while(i!=0)
 122   1              {
 123   2                      if(x>=16)
 124   2                      {
 125   3                              y++;
 126   3                              x = 0;
 127   3                      }
 128   2                      if(y>=2)break;
 129   2      
 130   2                      LCD_Wr_Char(x,y,*str);
 131   2                      x++;
 132   2                      str++;
 133   2                      i--;
 134   2              }
 135   1      }
 136          
 137          void Print(unsigned char x,unsigned char y,unsigned char *str)
 138          {
 139   1              while(*str!='\0')
 140   1              {
 141   2                      if(x>=16)
 142   2                      {
C51 COMPILER V8.02   LCD                                                                   03/26/2009 15:06:07 PAGE 7   

 143   3                              y++;
 144   3                              x = 0;
 145   3                      }
 146   2                      if(y>=2)break;
 147   2      
 148   2                      LCD_Wr_Char(x,y,*str);
 149   2                      x++;
 150   2                      str++;
 151   2              }
 152   1      }
 153          
 154          /************************************************
 155          ** 函数名称: LCD_Init
 156          ** 功能描述: 液晶初始化
 157          ** 输   入: 无
 158          ** 输   出: 无
 159          ** 全局变量: 
 160          ** 设    计: 简小木     时间:2008-10-12
 161          *************************************************/
 162          void LCD_Init(void)
 163          {
 164   1              LCD_RS = 0;
 165   1              LCD_RW = 0;
 166   1              LCD_EN = 0;
 167   1              LCD_Wr_Command(0x30|0x28|0x20);
 168   1              Delay(2);
 169   1              LCD_Wr_Command(0x0c);
 170   1              LCD_Wr_Command(0x01);
 171   1              LCD_Wr_Command(0x80);
 172   1      }
 173          
 174          /************************************************
 175          ** 函数名称: write_CGRAM
 176          ** 功能描述: 向CGRAM写入数据
 177          ** 输   入: add为首地址,size为字符的个数
 178          ** 输   出: 无
 179          ** 全局变量: 
 180          ** 设    计: 简小木     时间:2009-02-02
 181          *************************************************/      
 182          void write_CGRAM(unsigned char add,unsigned char *p_tab,unsigned char size)
 183          {
 184   1              unsigned char lenth=0;                  
 185   1              lenth=size*8;                   //每个字符,8个码               
 186   1              add=0x40+8*add;         //CGRAM的地址D5位要为1                
 187   1              while(lenth!=0)                 
 188   1              {
 189   2                      if(add>=0x80)                   //CGRAM的地址到顶
 190   2                              break;
 191   2                      LCD_Wr_Command(add);                    //写CGRAM地址
 192   2                      LCD_Wr_Data(*p_tab);                    //写CGRAM数据
 193   2                      lenth--;                                                //下一个码
 194   2                      add++;                          //下个地址                                  
 195   2                      p_tab++;                                //下个字符
 196   2              }
 197   1      }
 198          
 199          /************************************************
 200          ** 函数名称: GotoXY
 201          ** 功能描述: 指定坐标的位置
 202          ** 输   入: 无
 203          ** 输   出: 无
 204          ** 全局变量: 
C51 COMPILER V8.02   LCD                                                                   03/26/2009 15:06:07 PAGE 8   

 205          ** 设    计: 简小木     时间:2008-10-12
 206          *************************************************/
 207          /*
 208          void GoTo_XY(unsigned char x, unsigned char y)
 209          {
 210                  if(y==0)
 211                          LCD_Wr_Command(0x80|x);
 212                  if(y==1)
 213                          LCD_Wr_Command(0x80|(x-0x40));
 214          }
 215          */
 216          /************************************************
 217          ** 函数名称: num_to_char
 218          ** 功能描述: 
 219          ** 输   入: 无
 220          ** 输   出: 无
 221          ** 全局变量: 
 222          ** 设    计: 简小木     时间:2008-10-12
 223          *************************************************/
 224          //unsigned char  num_to_char(unsigned char num)
 225          //{
 226          //      return(num+'0');
 227          //}
 228          
 229          /************************************************
 230          ** 函数名称: LCD_Clear_ALL
 231          ** 功能描述: 
 232          ** 输   入: 无
 233          ** 输   出: 无
 234          ** 全局变量: 
 235          ** 设    计: 简小木     时间:2008-10-12
 236          *************************************************/
 237          void LCD_Clear_All(void)
 238          {
 239   1              unsigned char i,j;
 240   1      
 241   1              if(fTemp)
 242   1              {
 243   2                      for(j=0;j<2;j++)
 244   2                      {
 245   3                              for(i=0;i<16;i++)
 246   3                                      LCD_Wr_Char(i,j,0x00);
 247   3                      }
 248   2              }
 249   1      }
C51 COMPILER V8.02   LCD                                                                   03/26/2009 15:06:07 PAGE 9   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


fTemp. . . . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
_LCD_Wr_Command. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  com. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
LCD_Clear_All. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0002H  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
_LCD_Wr_String . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  y. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  str. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0002H  3
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0005H  2
_LCD_Wr_Data . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  dat. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_LCD_Wr_Char . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  y. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  c. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
LCD_EN . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
LCD_Init . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_Delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0009H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
LCD_Busy . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  BusyFlag . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
LCD_RS . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
_write_CGRAM . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  add. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  p_tab. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0001H  3
  size . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  lenth. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0005H  1
LCD_RW . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
_Print . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  y. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  str. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0002H  3
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
_strlen. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    391    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      18
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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