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

📄 lcdp.lst

📁 一个充电控制器的完整单片机程序
💻 LST
字号:
C51 COMPILER V6.11.4C,  LCDP                      04/01/103  02:34:46  PAGE  1

QCW(0x00002D1A)

WIN32 C51 COMPILER V6.11.4C, COMPILATION OF MODULE LCDP      
OBJECT MODULE PLACED IN d:\solar_charge_controller\scca\lcdp.obj
COMPILER INVOKED BY: C51.EXE D:\SOLAR_CHARGE_CONTROLLER\SCCA\LCDP.C OBJECT(D:\SO
            -LAR_CHARGE_CONTROLLER\SCCA\LCDP.OBJ) PIN(D:\FSI\INC) NOAM PR(D:\SOL
            -AR_CHARGE_CONTROLLER\SCCA\LCDP.LST) CD SB OE(1) SM FP(NOFLOAT) PW(8
            -0) 

stmt level    source
   1          /*--------------------------------
   2            lcd display 16x2 chinese
   3            driver chip st7920
   4            2002.12.28
   5          ----------------------------*/
   6          #include <stdlib.h>
   7          #include <ctype.h>
   8          #include <intrins.h>
   9          #include <AT89X52.H>
  10          
  11          #include "LCDP.H"
  12          
  13          extern void delay(unsigned int i);
  14          //---------------------------
  15          //display string
  16          static void isBusy(void);
  17          
  18          void text(unsigned char sta,unsigned char *string)
  19          {
  20   1      	if(sta)WC_LCD(sta);
  21   1      	while(*string)WD_LCD(*string++);
  22   1      }
  23          
  24          #pragma NOAREGS
  25          
  26          //-------------------------------
  27          //LCD display char,write data to LCD ram
  28          
  29          #pragma DISABLE
  30          
  31          void WD_LCD(unsigned char ch)
  32          {
  33   1       	isBusy();
  34   1        LCDRS=1;
  35   1        LCDRW=0;
  36   1      	_nop_();
  37   1      	_nop_();
  38   1        P0=ch;
  39   1      	_nop_();
  40   1      	_nop_();
  41   1      	ENABLE=1;
  42   1      	_nop_();
  43   1      	_nop_();
  44   1      	_nop_();
  45   1        ENABLE=0;
  46   1      	_nop_();
  47   1      	_nop_();
  48   1      }
  49          //---------------------------------
  50          //write lcd controll register
  51          
  52          #pragma DISABLE
  53          
  54          void WC_LCD (unsigned char command)
  55          {
  56   1       	isBusy();
  57   1      	LCDRS=0;
  58   1      	_nop_();
  59   1      	LCDRW=0;
  60   1      	_nop_();
  61   1      	_nop_();
  62   1      	P0=command;
  63   1      	_nop_();
  64   1      	_nop_();
  65   1      	ENABLE=1;
  66   1      	_nop_();
  67   1      	_nop_();
  68   1      	_nop_();
  69   1      	ENABLE=0;
  70   1      	_nop_();
  71   1      	_nop_();
  72   1      }
  73          //----------------------------------------------
  74          //LCD busy check ,check busy flag,read acc
  75          
  76          static void isBusy(void)
  77          {
  78   1       unsigned char data i;
  79   1       i=ACC;
  80   1       P0=0x0ff;
  81   1       _nop_();
  82   1       LCDRS=0;
  83   1       LCDRW=1;
  84   1       _nop_();
  85   1       _nop_();
  86   1       ENABLE=1;
  87   1       _nop_();
  88   1       _nop_();
  89   1       _nop_();
  90   1       do{	ACC=P0;	} while(BUSYFLAG);
  91   1       _nop_();
  92   1       _nop_();
  93   1       ENABLE=0;
  94   1      	_nop_();
  95   1      	_nop_();
  96   1       ACC=i;
  97   1      }
  98          //------------------------------------------------
  99          //init lcd
 100          
 101          #pragma DISABLE
 102          
 103          void clear(void)
 104          {
 105   1      	WC_LCD(0x18);//base command,8bit
 106   1       	isBusy();
 107   1      	LCDRS=0;
 108   1      	LCDRW=0;
 109   1      	_nop_();
 110   1      	_nop_();
 111   1      	P0=0x1;
 112   1      	_nop_();
 113   1      	ENABLE=1;
 114   1      	delay(4);
 115   1      	ENABLE=0;
 116   1      	_nop_();
 117   1      	_nop_();
 118   1      }
 119          
 120          #pragma AREGS
 121          
 122          
C51 COMPILER V6.11.4C,  LCDP                      04/01/103  02:34:46  PAGE  2

ASSEMBLY LISTING OF GENERATED OBJECT CODE

            ; FUNCTION _text (BEGIN)
                                           ; SOURCE LINE # 21 
0000 8F00    R      MOV    sta,R7
0002 8B00    R      MOV    string,R3
0004 8A00    R      MOV    string+01H,R2
0006 8900    R      MOV    string+02H,R1
                                           ; SOURCE LINE # 20 
0008 EF             MOV    A,R7
0009 6005           JZ     ?WHILE1
000B AF00    R      MOV    R7,sta
000D 120000  R      LCALL  _WC_LCD
0010         ?WHILE1:
                                           ; SOURCE LINE # 21 
0010 AB00    R      MOV    R3,string
0012 AA00    R      MOV    R2,string+01H
0014 A900    R      MOV    R1,string+02H
0016 120000  R      LCALL  IPGN1?C
0019 6013           JZ     ?NXT3
001B 0500    R      INC    string+02H
001D E500    R      MOV    A,string+02H
001F 7004           JNZ    ?LAB2
0021 0500    R      INC    string+01H
0023 E500    R      MOV    A,string+01H
0025         ?LAB2:
0025 120000  R      LCALL  IPGN1?C
0028 FF             MOV    R7,A
0029 120000  R      LCALL  _WD_LCD
002C 80E2           SJMP   ?WHILE1
002E         ?NXT3:
002E 22             RET    

            ; FUNCTION _text (END)

            ; FUNCTION _WD_LCD (BEGIN)
                                           ; SOURCE LINE # 47 
0000 D3             SETB   C
0001 10AF01         JBC    EA,?LAB6
0004 C3             CLR    C
0005         ?LAB6:
0005 C0D0           PUSH   PSW
0007 8F00    R      MOV    ch,R7
                                           ; SOURCE LINE # 33 
0009 120000  R      LCALL  isBusy?LCDP?S
                                           ; SOURCE LINE # 34 
000C D2B4           SETB   T0
                                           ; SOURCE LINE # 35 
000E C295           CLR    P1_5
                                           ; SOURCE LINE # 36 
0010 00             NOP    
                                           ; SOURCE LINE # 37 
0011 00             NOP    
                                           ; SOURCE LINE # 38 
0012 850080  R      MOV    P0,ch
                                           ; SOURCE LINE # 39 
0015 00             NOP    
                                           ; SOURCE LINE # 40 
0016 00             NOP    
                                           ; SOURCE LINE # 41 
0017 D2B5           SETB   T1
                                           ; SOURCE LINE # 42 
0019 00             NOP    
                                           ; SOURCE LINE # 43 
001A 00             NOP    
                                           ; SOURCE LINE # 44 
001B 00             NOP    
                                           ; SOURCE LINE # 45 
001C C2B5           CLR    T1
                                           ; SOURCE LINE # 46 
001E 00             NOP    
                                           ; SOURCE LINE # 47 
001F 00             NOP    
0020 D0D0           POP    PSW
0022 92AF           MOV    EA,C
0024 22             RET    

            ; FUNCTION _WD_LCD (END)

            ; FUNCTION _WC_LCD (BEGIN)
                                           ; SOURCE LINE # 71 
0000 D3             SETB   C
0001 10AF01         JBC    EA,?LAB9
0004 C3             CLR    C
0005         ?LAB9:
0005 C0D0           PUSH   PSW
0007 8F00    R      MOV    command,R7
                                           ; SOURCE LINE # 56 
0009 120000  R      LCALL  isBusy?LCDP?S
                                           ; SOURCE LINE # 57 
000C C2B4           CLR    T0
                                           ; SOURCE LINE # 58 
000E 00             NOP    
                                           ; SOURCE LINE # 59 
000F C295           CLR    P1_5
                                           ; SOURCE LINE # 60 
0011 00             NOP    
                                           ; SOURCE LINE # 61 
0012 00             NOP    
                                           ; SOURCE LINE # 62 
0013 850080  R      MOV    P0,command
                                           ; SOURCE LINE # 63 
0016 00             NOP    
                                           ; SOURCE LINE # 64 
0017 00             NOP    
                                           ; SOURCE LINE # 65 
0018 D2B5           SETB   T1
                                           ; SOURCE LINE # 66 
001A 00             NOP    
                                           ; SOURCE LINE # 67 
001B 00             NOP    
                                           ; SOURCE LINE # 68 
001C 00             NOP    
                                           ; SOURCE LINE # 69 
001D C2B5           CLR    T1
                                           ; SOURCE LINE # 70 
001F 00             NOP    
                                           ; SOURCE LINE # 71 
0020 00             NOP    
0021 D0D0           POP    PSW
0023 92AF           MOV    EA,C
0025 22             RET    

            ; FUNCTION _WC_LCD (END)

            ; FUNCTION isBusy?LCDP?S (BEGIN)
                                           ; SOURCE LINE # 79 
0000 85E000  R      MOV    i,ACC
                                           ; SOURCE LINE # 80 
0003 7580FF         MOV    P0,#0FFH
                                           ; SOURCE LINE # 81 
0006 00             NOP    
                                           ; SOURCE LINE # 82 
0007 C2B4           CLR    T0
                                           ; SOURCE LINE # 83 
0009 D295           SETB   P1_5
                                           ; SOURCE LINE # 84 
000B 00             NOP    
                                           ; SOURCE LINE # 85 
000C 00             NOP    
                                           ; SOURCE LINE # 86 
000D D2B5           SETB   T1
                                           ; SOURCE LINE # 87 
000F 00             NOP    
                                           ; SOURCE LINE # 88 
0010 00             NOP    
                                           ; SOURCE LINE # 89 
0011 00             NOP    
0012         ?DO1:
                                           ; SOURCE LINE # 90 
0012 8580E0         MOV    ACC,P0
0015 20E7FA         JB     BUSYFLAG,?DO1
                                           ; SOURCE LINE # 91 
0018 00             NOP    
                                           ; SOURCE LINE # 92 
0019 00             NOP    
                                           ; SOURCE LINE # 93 
001A C2B5           CLR    T1
                                           ; SOURCE LINE # 94 
001C 00             NOP    
                                           ; SOURCE LINE # 95 
001D 00             NOP    
                                           ; SOURCE LINE # 96 
001E 8500E0  R      MOV    ACC,i
0021 22             RET    

            ; FUNCTION isBusy?LCDP?S (END)

            ; FUNCTION clear (BEGIN)
                                           ; SOURCE LINE # 117 
0000 D3             SETB   C
0001 10AF01         JBC    EA,?LAB14
0004 C3             CLR    C
0005         ?LAB14:
0005 C0D0           PUSH   PSW
                                           ; SOURCE LINE # 105 
0007 7F18           MOV    R7,#018H
0009 120000  R      LCALL  _WC_LCD
                                           ; SOURCE LINE # 106 
000C 120000  R      LCALL  isBusy?LCDP?S
                                           ; SOURCE LINE # 107 
000F C2B4           CLR    T0
                                           ; SOURCE LINE # 108 
0011 C295           CLR    P1_5
                                           ; SOURCE LINE # 109 
0013 00             NOP    
                                           ; SOURCE LINE # 110 
0014 00             NOP    
                                           ; SOURCE LINE # 111 
0015 758001         MOV    P0,#001H
                                           ; SOURCE LINE # 112 
0018 00             NOP    
                                           ; SOURCE LINE # 113 
0019 D2B5           SETB   T1
                                           ; SOURCE LINE # 114 
001B E4             CLR    A
001C FE             MOV    R6,A
001D 7F04           MOV    R7,#004H
001F 120000  R      LCALL  _delay
                                           ; SOURCE LINE # 115 
0022 C2B5           CLR    T1
                                           ; SOURCE LINE # 116 
0024 00             NOP    
                                           ; SOURCE LINE # 117 
0025 00             NOP    
0026 D0D0           POP    PSW
0028 92AF           MOV    EA,C
002A 22             RET    

            ; FUNCTION clear (END)

C51 COMPILER V6.11.4C,  LCDP                      04/01/103  02:34:46  PAGE  3

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

text . . . . . . . . . . . . . . . . .  PUBLIC  CODE    PROC    -----   -----
  sta?094. . . . . . . . . . . . . . .  PARAM   DATA    BASE    0000H   1    
  string?095 . . . . . . . . . . . . .  PARAM   DATA    PTR     0001H   3    
  sta?094. . . . . . . . . . . . . . .  PARAM   DATA    BASE    0000H   1    
  string?095 . . . . . . . . . . . . .  PARAM   DATA    PTR     0001H   3    
WD_LCD . . . . . . . . . . . . . . . .  PUBLIC  CODE    PROC    -----   -----
  ch?096 . . . . . . . . . . . . . . .  PARAM   DATA    BASE    0000H   1    
  ch?096 . . . . . . . . . . . . . . .  PARAM   DATA    BASE    0000H   1    
WC_LCD . . . . . . . . . . . . . . . .  PUBLIC  CODE    PROC    -----   -----
  command?097. . . . . . . . . . . . .  PARAM   DATA    BASE    0000H   1    
  command?097. . . . . . . . . . . . .  PARAM   DATA    BASE    0000H   1    
isBusy . . . . . . . . . . . . . . . .  PUBLIC  CODE    PROC    -----   -----
i?099. . . . . . . . . . . . . . . . .  PUBLIC  DATA    BASE    0000H   1    
clear. . . . . . . . . . . . . . . . .  PUBLIC  CODE    PROC    -----   -----
delay. . . . . . . . . . . . . . . . .  EXTERN  CODE    PROC    -----   -----
C51 COMPILER V6.11.4C,  LCDP                      04/01/103  02:34:46  PAGE  4



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

C51 COMPILATION COMPLETE.  0 WARNING,  0 ERROR

⌨️ 快捷键说明

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