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

📄 lcddrv.lst

📁 spce061A驱动的128*64点阵液晶程序
💻 LST
字号:
C51 COMPILER V6.02  LCDDRV                                                                 08/30/2007 10:42:12 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE LCDDRV
OBJECT MODULE PLACED IN D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C DB SB OE

stmt level    source

   1          #include"lcddrv.h"
   2          
   3          void chk_busy();
   4          void write_com(unsigned char cmdcode);
   5          void write_data(unsigned char Dispdata);
   6          
   7          void cur_on()//开光标
   8          {
   9   1       write_com(0x0f);
  10   1      }
  11          
  12          void cur_off()//关光标
  13          {
  14   1       write_com(0x0a);
  15   1      }
  16          void location(unsigned char x,unsigned char y)//设置光标位置
  17          {
  18   1        unsigned char com = 0x80;
  19   1      
  20   1        if(1 == (y & 0x03))
  21   1            y = 2;
  22   1        else if((y & 0x03) == 2)
  23   1            y = 1;
  24   1        com |= (y & 0x03) << 3;
  25   1        com += x & 0x07;
  26   1        write_com(com);
  27   1      }
  28          void print(unsigned char *str)//打印字串,不换行
  29          {
  30   1       while(*str>0){
  31   2            write_data(*str);
  32   2            str++;
  33   2       }
  34   1      }
  35          void inv_line(unsigned char lin,unsigned char datav)//反白一行
  36          {
  37   1       unsigned short i,j;
  38   1       write_com(0x36);
  39   1       if(lin == 0){
  40   2           for(i = 0;i < 8;i++)
  41   2                 for(j = 0;j < 16;j++){
  42   3                       write_com(j+0x80);        //行地址
  43   3                       write_com(i+0x80);     //列地址
  44   3                       write_data(datav);
  45   3                       write_data(datav);
  46   3                  }
  47   2       }
  48   1       if(lin == 1){
  49   2            for(i = 0;i < 8;i++)
  50   2                 for(j = 16;j < 32;j++){
  51   3                       write_com(j+0x80);        //行地址
  52   3                       write_com(i+0x80);     //列地址
  53   3                       write_data(datav);
  54   3                       write_data(datav);
  55   3                  }
C51 COMPILER V6.02  LCDDRV                                                                 08/30/2007 10:42:12 PAGE 2   

  56   2       }
  57   1       if(lin == 2){
  58   2            for(i = 8;i < 16;i++)
  59   2                 for(j = 0;j < 16;j++){
  60   3                       write_com(j+0x80);        //行地址
  61   3                       write_com(i+0x80);     //列地址
  62   3                       write_data(datav);
  63   3                       write_data(datav);
  64   3                  }
  65   2       }
  66   1       if(lin == 3){
  67   2              for(i = 8;i < 16;i++)
  68   2                 for(j = 16;j < 32;j++){
  69   3                       write_com(j+0x80);        //行地址
  70   3                       write_com(i+0x80);     //列地址
  71   3                       write_data(datav);
  72   3                       write_data(datav);
  73   3                  }
  74   2       }
  75   1       write_com(0x30);
  76   1      }
  77          
  78          void lin(unsigned char x1,unsigned char x2,unsigned char y1,unsigned char y2)
  79          {}
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'x1': unreferenced local variable
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'x2': unreferenced local variable
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'y1': unreferenced local variable
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'y2': unreferenced local variable
  80          void point(unsigned char x,unsigned char y)//画点
  81          {
  82   1       unsigned char xx,tmp;
  83   1       //计算点所在字节坐标
  84   1       xx = x / 8;
  85   1       y = y & 0x7f;
  86   1       //读取字节
  87   1       write_com(0x36);
  88   1       write_com(0x80 | y);
  89   1       write_com(0x80 | xx);
  90   1       write_com(0x80);
  91   1       E = 1;
  92   1       E = 0;
  93   1       E = 1;
  94   1       RS = 1;
  95   1       RW = 1;
  96   1       Lcd_Bus=0xff;
  97   1       tmp = Lcd_Bus;
  98   1       E = 0;
  99   1       //计算位
 100   1       tmp += 0x01 << (7 - x % 8);
 101   1       tmp = 0xff;
 102   1       //开始画点
 103   1       xx = x;
 104   1       write_com(0x36);
 105   1       write_com(0x80 | y);
 106   1       write_com(0x80 + xx);
 107   1       write_com(0x30);
 108   1       write_data(tmp);
 109   1       write_data(tmp);
 110   1       write_data(tmp);
 111   1      }
 112          
 113          void cls()//清屏
C51 COMPILER V6.02  LCDDRV                                                                 08/30/2007 10:42:12 PAGE 3   

 114          {
 115   1           unsigned char x,y;
 116   1           for(y=0;y<64;y++)
 117   1              for(x=0;x<16;x++){
 118   2                 write_com(0x34);
 119   2                 write_com(y+0x80);        //行地址
 120   2                 write_com(x+0x80);     //列地址
 121   2                 write_com(0x30);
 122   2                 write_data(0x00);
 123   2                 write_data(0x00);
 124   2              }
 125   1           write_com(0x01);
 126   1      }
 127          
 128          
 129          /*------------------检查忙位-----------------------------*/
 130          void chk_busy()
 131          {
 132   1         RS=0;
 133   1         RW=1;
 134   1         E=1;
 135   1         Lcd_Bus=0xff;
 136   1         while((Lcd_Bus&0x80)==0x80);
 137   1         E=0;
 138   1      }
 139          /*------------------写命令到LCD------------------------------*/
 140          void write_com(unsigned char cmdcode)
 141          {
 142   1      	chk_busy();
 143   1      	RS=0;
 144   1      	RW=0;
 145   1      	E=1;
 146   1      	Lcd_Bus=cmdcode;
 147   1      	E=0;
 148   1      }
 149          /*-------------------写数据到LCD----------------------------*/
 150          void write_data(unsigned char Dispdata)
 151          {
 152   1      	chk_busy();
 153   1      	RS=1;
 154   1      	RW=0;
 155   1      	E=1;
 156   1      	Lcd_Bus=Dispdata;
 157   1      	E=0;
 158   1      }
 159          /*------------------初始化LCD屏--------------------------*/
 160          void lcd_init()
 161          {
 162   1         write_com(0x30);       //选择基本指令集
 163   1         write_com(0x30);       //选择8bit数据流
 164   1         write_com(0x0c);       //开显示(无游标、不反白)
 165   1         write_com(0x01);       //清除显示,并且设定地址指针为00H
 166   1         write_com(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
 167   1      }
C51 COMPILER V6.02  LCDDRV                                                                 08/30/2007 10:42:12 PAGE 4   

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


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
cur_on . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_write_data. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Dispdata . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_point . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  y. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  xx . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  tmp. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
_print . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  str. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
_lin . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x1 . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  x2 . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  y1 . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  y2 . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
RS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A5H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
RW . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A6H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
_write_com . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0005H  -----
  cmdcode. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_inv_line. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  lin. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  datav. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0004H  2
_location. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  y. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  com. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
cls. . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  y. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
E. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
lcd_init . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
C51 COMPILER V6.02  LCDDRV                                                                 08/30/2007 10:42:12 PAGE 5   

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


IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
chk_busy . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
cur_off. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1


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


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

⌨️ 快捷键说明

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