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

📄 dfq.lst

📁 与C51相关模块LCD,24CXX,等的源代码程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   DFQ                                                                   03/03/2006 15:27:35 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DFQ
OBJECT MODULE PLACED IN DFQ.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DFQ.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

stmt level    source

   1          /******************************************************
   2          DESIGN FOR PCBA'S Material Number Display by RF315M
   3          Designer: BH Zhang
   4          Date:2006-1-11
   5          Ver:1.0
   6          Modify Mark:NONE
   7          *******************************************************/
   8          #include <at89x51.h>                    //包含89S51的WDT子过程
   9          #include "dfq.h"
  10          #include "timer.h"
  11          #include "1602b_lcd.h"
  12          #include "rf315mhz.h"
  13          #include "4x4key.h"
  14          
  15          //------------------------------------------------------
  16          #define MNLEN   (RFSENDLEN-4)   //material NO len=16bits
  17          //------------------------------------------------------
  18          unsigned char nCurMode=KEY;             //init status
  19          unsigned char nCurLine='A';             //Line Code
  20          unsigned char aDispNo[MNLEN+1];
  21          
  22          bit bInLN=0;                                    //input LO:1 MO:0
  23          unsigned char nGroup=0;                 //0--number 1,2,3--abcd...
  24          unsigned char nKey=NOKEY;               //record key,0xFF=NO KEY
  25          //------------------------------------------------------
  26          void ClearDispNo(void){
  27   1              unsigned char i;
  28   1              for(i=0;i<MNLEN+1;i++)aDispNo[i]='_';
  29   1      }
  30          //------------------------------------------------------
  31          void DispSendOK(void){
  32   1              unsigned char i;
  33   1              for(i=0;i<MNLEN+1;i++)aDispNo[i]='_';
  34   1              aDispNo[0]='S';aDispNo[1]='E';
  35   1              aDispNo[2]='N';aDispNo[3]='D';
  36   1              aDispNo[5]='O';aDispNo[6]='K';
  37   1      }
  38          //------------------------------------------------------
  39          void DispSendFail(void){
  40   1              unsigned char i;
  41   1              for(i=0;i<MNLEN+1;i++)aDispNo[i]='_';
  42   1              aDispNo[0]='N';aDispNo[1]='O';
  43   1              aDispNo[3]='A';aDispNo[4]='C';
  44   1              aDispNo[5]='K';
  45   1      }
  46          //------------------------------------------------------
  47          void InitMcu(void){
  48   1              RFTX=1;                                         //close 315MH Transistor
  49   1              LCD_init();
  50   1              InitTime();
  51   1              ClearDispNo();
  52   1              EA=1;
  53   1              TR0=1;
  54   1              TR1=0;
  55   1      }
C51 COMPILER V7.06   DFQ                                                                   03/03/2006 15:27:35 PAGE 2   

  56          //------------------------------------------------------
  57          unsigned char InputPos(){
  58   1              unsigned char i;
  59   1              for(i=0;i<MNLEN;i++){
  60   2                      if(aDispNo[i]==' ')break;
  61   2                      if(aDispNo[i]=='_')break;
  62   2              }
  63   1              return i;
  64   1      }
  65          //------------------------------------------------------
  66          void Display(void){
  67   1              unsigned char i;
  68   1              static bit b;
  69   1              b=!b;
  70   1      
  71   1              
  72   1              LCD_write_string(0,0,"LineNo:");
  73   1              
  74   1              if((bInLN)&&(nCurMode==KEY)){
  75   2                      if(b)LCD_char(nCurLine);
  76   2                      else LCD_char('_');
  77   2              }else LCD_char(nCurLine);
  78   1              
  79   1              LCD_write_string(9,0,"   ");
  80   1              
  81   1              if(bInLN){
  82   2                      LCD_char('L');LCD_char('N');
  83   2              }else{
  84   2                      LCD_char('M');LCD_char('O');
  85   2              }
  86   1              
  87   1              LCD_char(' ');
  88   1              LCD_char('G');
  89   1              LCD_digtal(nGroup);
  90   1              
  91   1              LCD_set_xy(0,1);
  92   1              if((!bInLN)&&(nCurMode==KEY)){
  93   2                      i=InputPos();
  94   2                      if(b)aDispNo[i]='_';
  95   2                      else aDispNo[i]=' ';
  96   2              }
  97   1              for(i=0;i<MNLEN;i++)LCD_char(aDispNo[i]);
  98   1      }
  99          //------------------------------------------------------
 100          void DeleteChar(void){
 101   1              unsigned char i;
 102   1              //for(i=0;i<MNLEN;i++)if(aDispNo[i]==' ')break;
 103   1              i=InputPos();
 104   1              if(i>0)aDispNo[i-1]='_';
 105   1      }
 106          //------------------------------------------------------
 107          //0             1               2               3
 108          //0ABC  1DEF    2GHI    3JKL
 109          //4             5               6               7
 110          //4MNO  5PQR    6STU    7VWX
 111          //8             9               10              11
 112          //8YZ   9               NUM             A-1
 113          //12    13              14              15
 114          //A-2   A-3             c/l             Enter
 115          //------------------------------------------------------
 116          void process_key(){
 117   1              unsigned char i,tmp;
C51 COMPILER V7.06   DFQ                                                                   03/03/2006 15:27:35 PAGE 3   

 118   1                      
 119   1              i=InputPos();
 120   1              switch(nKey){
 121   2              case 10:
 122   2              case 11:
 123   2              case 12:
 124   2              case 13:
 125   2                      nGroup=nKey-10;
 126   2                      break;
 127   2              case 14:
 128   2                      if(i==0)bInLN=!bInLN;
 129   2                      else DeleteChar();
 130   2                      break;
 131   2              case 15:
 132   2                      if(i>0){
 133   3                              nCurMode=SEND;
 134   3                              LCD_write_string(0,1,"Sending_________");
 135   3                      }
 136   2                      break;
 137   2              default:
 138   2                      tmp=(nGroup==0)?nKey+'0':nKey*3+'A'+nGroup-1;
 139   2                      if(tmp<='Z'){
 140   3                              if(bInLN)nCurLine=tmp;
 141   3                              else if(i<16)aDispNo[i]=tmp;
 142   3                      }
 143   2                      break;
 144   2              }
 145   1              i=InputPos();
 146   1              for(;i<MNLEN+1;i++)aDispNo[i]='_';
 147   1              nKey=NOKEY;
 148   1      }
 149          //------------------------------------------------------
 150          void Sort_Data(){
 151   1              unsigned char i;
 152   1              RFBuf[2]=nCurLine;
 153   1              for(i=3;i<19;i++)RFBuf[i]=aDispNo[i-3];
 154   1      }
 155          //------------------------------------------------------
C51 COMPILER V7.06   DFQ                                                                   03/03/2006 15:27:35 PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION ClearDispNo (BEGIN)
                                           ; SOURCE LINE # 26
                                           ; SOURCE LINE # 28
;---- Variable 'i' assigned to Register 'R7' ----
0000         ?C0001:
0000 7F11              MOV     R7,#011H
0002 7800        R     MOV     R0,#LOW aDispNo
0004 745F              MOV     A,#05FH
0006         ?C0060:
0006 F6                MOV     @R0,A
0007 08                INC     R0
0008 DFFC              DJNZ    R7,?C0060
                                           ; SOURCE LINE # 29
000A         ?C0004:
000A 22                RET     
             ; FUNCTION ClearDispNo (END)

             ; FUNCTION DispSendOK (BEGIN)
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 33
;---- Variable 'i' assigned to Register 'R7' ----
0000         ?C0005:
0000 7F11              MOV     R7,#011H
0002 7800        R     MOV     R0,#LOW aDispNo
0004 745F              MOV     A,#05FH
0006         ?C0061:
0006 F6                MOV     @R0,A
0007 08                INC     R0
0008 DFFC              DJNZ    R7,?C0061
000A         ?C0006:
                                           ; SOURCE LINE # 34
000A 750053      R     MOV     aDispNo,#053H
000D 750045      R     MOV     aDispNo+01H,#045H
                                           ; SOURCE LINE # 35
0010 75004E      R     MOV     aDispNo+02H,#04EH
0013 750044      R     MOV     aDispNo+03H,#044H
                                           ; SOURCE LINE # 36
0016 75004F      R     MOV     aDispNo+05H,#04FH
0019 75004B      R     MOV     aDispNo+06H,#04BH
                                           ; SOURCE LINE # 37
001C 22                RET     
             ; FUNCTION DispSendOK (END)

             ; FUNCTION DispSendFail (BEGIN)
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 41
;---- Variable 'i' assigned to Register 'R7' ----
0000         ?C0009:
0000 7F11              MOV     R7,#011H
0002 7800        R     MOV     R0,#LOW aDispNo
0004 745F              MOV     A,#05FH
0006         ?C0062:
0006 F6                MOV     @R0,A
0007 08                INC     R0
0008 DFFC              DJNZ    R7,?C0062
000A         ?C0010:
                                           ; SOURCE LINE # 42
000A 75004E      R     MOV     aDispNo,#04EH
000D 75004F      R     MOV     aDispNo+01H,#04FH
C51 COMPILER V7.06   DFQ                                                                   03/03/2006 15:27:35 PAGE 5   

                                           ; SOURCE LINE # 43
0010 750041      R     MOV     aDispNo+03H,#041H
0013 750043      R     MOV     aDispNo+04H,#043H
                                           ; SOURCE LINE # 44
0016 75004B      R     MOV     aDispNo+05H,#04BH
                                           ; SOURCE LINE # 45
0019 22                RET     
             ; FUNCTION DispSendFail (END)

             ; FUNCTION InitMcu (BEGIN)
                                           ; SOURCE LINE # 47
                                           ; SOURCE LINE # 48
0000 D2B7              SETB    RFTX
                                           ; SOURCE LINE # 49
0002 120000      E     LCALL   LCD_init
                                           ; SOURCE LINE # 50
0005 120000      E     LCALL   InitTime
                                           ; SOURCE LINE # 51
0008 120000      R     LCALL   ClearDispNo
                                           ; SOURCE LINE # 52
000B D2AF              SETB    EA
                                           ; SOURCE LINE # 53
000D D28C              SETB    TR0
                                           ; SOURCE LINE # 54
000F C28E              CLR     TR1
                                           ; SOURCE LINE # 55
0011 22                RET     
             ; FUNCTION InitMcu (END)

             ; FUNCTION InputPos (BEGIN)
                                           ; SOURCE LINE # 57
                                           ; SOURCE LINE # 59
;---- Variable 'i' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
0002         ?C0014:
                                           ; SOURCE LINE # 60
0002 7400        R     MOV     A,#LOW aDispNo
0004 2F                ADD     A,R7
0005 F8                MOV     R0,A
0006 E6                MOV     A,@R0
0007 FE                MOV     R6,A
0008 6420              XRL     A,#020H
000A 6009              JZ      ?C0015
000C         ?C0017:
                                           ; SOURCE LINE # 61
000C EE                MOV     A,R6
000D 645F              XRL     A,#05FH
000F 6004              JZ      ?C0015
                                           ; SOURCE LINE # 62
0011         ?C0016:
0011 0F                INC     R7
0012 BF10ED            CJNE    R7,#010H,?C0014
0015         ?C0015:
                                           ; SOURCE LINE # 63
                                           ; SOURCE LINE # 64
0015         ?C0019:
0015 22                RET     
             ; FUNCTION InputPos (END)

             ; FUNCTION Display (BEGIN)
                                           ; SOURCE LINE # 66
C51 COMPILER V7.06   DFQ                                                                   03/03/2006 15:27:35 PAGE 6   

                                           ; SOURCE LINE # 69
0000 B200        R     CPL     b
                                           ; SOURCE LINE # 72
0002 7BFF              MOV     R3,#0FFH
0004 7A00        R     MOV     R2,#HIGH ?SC_0
0006 7900        R     MOV     R1,#LOW ?SC_0
0008 E4                CLR     A
0009 FD                MOV     R5,A
000A FF                MOV     R7,A
000B 120000      E     LCALL   _LCD_write_string
                                           ; SOURCE LINE # 74
000E 30000D      R     JNB     bInLN,?C0020
0011 E500        R     MOV     A,nCurMode
0013 7009              JNZ     ?C0020
                                           ; SOURCE LINE # 75
0015 300002      R     JNB     b,?C0021
0018 8004              SJMP    ?C0063
001A         ?C0021:
                                           ; SOURCE LINE # 76
001A 7F5F              MOV     R7,#05FH

⌨️ 快捷键说明

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