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

📄 iolcd.lst

📁 一款性能稳定的DMX512液晶显示控制系统,包括标准的数据输出,多级的菜单显示,通道可以任意设置
💻 LST
字号:
C51 COMPILER V6.23a  IOLCD                                                                 05/22/2003 17:10:26 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE IOLCD
OBJECT MODULE PLACED IN ioLCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe ioLCD.c DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include <absacc.h>
   2          #include "d:\design\ioLCD.h"
   3          
   4          void Lcd_PutCmd(unsigned char cCmd)
   5          {
   6   1              while(PORT_LCDBUSY&0x80);       /*PORT_LCDBUSY^7==1液晶忙,等待*/
   7   1              //LCD is free;
   8   1              PORT_LCDCMD = cCmd;     
   9   1      }
  10          
  11          void Lcd_PutData( unsigned char cData)
  12          {
  13   1              while(PORT_LCDBUSY&0x80);       /*PORT_LCDBUSY^7==1液晶忙,等待*/
  14   1              //LCD is free;
  15   1              PORT_LCDWRITE = cData;  
  16   1      }
  17          
  18          /*----------从(xloc,yloc)显示字符串str-----------*/
  19          void PrintStr_xy(unsigned char xloc,unsigned char yloc,unsigned char* str)
  20          {
  21   1      //xloc:0~19;yloc:0~1.
  22   1              unsigned char cmd,i;
  23   1              if(xloc>=20 || yloc>1)  return;
  24   1              cmd=0x80+xloc;                                  /*0x80第一行起始地址;+0x40为第二行对应地址*/
  25   1              if(yloc)        cmd+=0x40;                      //Sets DD RAM address
  26   1              Lcd_PutCmd(cmd);
  27   1              for(i=0;i<20;i++)
  28   1              {
  29   2                      if(str[i]=='\0')        return;
  30   2                      Lcd_PutData(str[i]);
  31   2              }
  32   1      }
  33          
  34          /*---------从(xloc,yloc)显示整数num--------------*/
  35          void PrintNum_xy(unsigned char xloc,unsigned char yloc,unsigned int num)
  36          {
  37   1              char i;
  38   1              unsigned char cmd,str[5];
  39   1              
  40   1              if(xloc>=20 || yloc>1)  return;
  41   1              cmd=0x80+xloc;                                  /*0x80第一行起始地址;+0x40为第二行对应地址*/
  42   1              if(yloc)        cmd+=0x40;                      //Sets DD RAM address
  43   1              Lcd_PutCmd(cmd);
  44   1              for(i=4;i>=0;i--)
  45   1              {
  46   2                      if(num==0)      str[i]=10;              /*若num数小于5位,高位置10,将不在lcd上显示*/
  47   2                      str[i]=(unsigned char)((num) % (unsigned int)10);
  48   2                      num/=10;
  49   2              }
  50   1              for(i=0;i<5;i++)
  51   1              {
  52   2                      if(str[i]>9) continue;
  53   2                      Lcd_PutData(str[i]);
  54   2              }
  55   1              
C51 COMPILER V6.23a  IOLCD                                                                 05/22/2003 17:10:26 PAGE 2   

  56   1              return;
  57   1              
  58   1      }
  59          void PrintNum3_xy(unsigned char xloc,unsigned char yloc,unsigned int num)
  60          {
  61   1              unsigned char data cmd , cDisplaySH  = 0 , cDisplaySL = 0;
  62   1              if(xloc>=20 || yloc>1||num>999) return;
  63   1              cmd=0x80+xloc;                                  /*0x80第一行起始地址;+0x40为第二行对应地址*/
  64   1              if(yloc)        cmd+=0x40;                      //Sets DD RAM address
  65   1              Lcd_PutCmd(cmd);        
  66   1              cDisplaySH = (unsigned char )((num) / (unsigned int)100);
  67   1              cDisplaySL = (unsigned char )((num) % (unsigned int)100);
  68   1              Lcd_PutData( cdItoA[cDisplaySH] );
  69   1              cDisplaySH = cDisplaySL;
  70   1              cDisplaySH = cDisplaySH / 10;
  71   1              cDisplaySL = cDisplaySL % 10;
  72   1              Lcd_PutData( cdItoA[cDisplaySH] );
  73   1              Lcd_PutData( cdItoA[cDisplaySL] );
  74   1      }
  75          void PrintNum2_xy(unsigned char xloc,unsigned char yloc,unsigned int num)
  76          {
  77   1              unsigned char data  cmd , cDisplaySH  = 0 , cDisplaySL = 0;
  78   1              if(xloc>=20 || yloc>1||num>99)  return;
  79   1              cmd=0x80+xloc;                                  /*0x80第一行起始地址;+0x40为第二行对应地址*/
  80   1              if(yloc)        cmd+=0x40;                      //Sets DD RAM address
  81   1              Lcd_PutCmd(cmd);
  82   1              cDisplaySH = (unsigned char )((num) / (unsigned int)10);
  83   1              cDisplaySL = (unsigned char )((num) % (unsigned int)10);
  84   1              Lcd_PutData( cdItoA[cDisplaySH] );
  85   1              Lcd_PutData( cdItoA[cDisplaySL] );
  86   1      }
  87                          
  88          /*-----------设置光标闪烁位置-------------------*/
  89          void Cursor_xy(unsigned char xloc,unsigned char yloc)
  90          {
  91   1              unsigned char cmd;
  92   1              if(xloc>=20 || yloc>1)  return;
  93   1              cmd=0x80+xloc;                                  /*0x80第一行起始地址;+0x40为第二行对应地址*/
  94   1              if(yloc)        cmd+=0x40;                      //Sets DD RAM address
  95   1              Lcd_PutCmd(cmd);
  96   1      }
  97          
  98          
  99          
 100          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    390    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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