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

📄 45db041.lst

📁 该程序是远程电话控制系统程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   45DB041                                                               11/01/2008 17:59:16 PAGE 1   


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

stmt level    source

   1          #include <stc89c54rd+.h>
   2          #include <stdio.h>
   3          #include <string.h>
   4          #include <intrins.h>
   5          #include <ctype.h>
   6          #include <string.h>
   7          #include <stdlib.h>
   8          #include <math.h>
   9          #include "main.h"
  10          #include <absacc.h>
  11          #include "45db041.h"
  12          unsigned char read_byte(void)
  13          {
  14   1              unsigned char i;
  15   1              unsigned char data999=0;
  16   1      //      f_io=1;                        //SET_45IO();
  17   1          for (i=0;i<8;i++)
  18   1          {
  19   2                  f_clk=1;                  //SET_45SCK();
  20   2                      data999<<=1;
  21   2                      data999|=f_io;
  22   2                      f_clk=0;                 //CLEAR_45SCK();
  23   2          }
  24   1          return data999; 
  25   1      }
  26          
  27          void write_byte(unsigned char data1)
  28          {
  29   1              unsigned char i;
  30   1              for(i=0;i<8;i++)
  31   1              {
  32   2           if (data1&0x80)     
  33   2           f_io=1;                        //SET_45IO();         
  34   2           else 
  35   2           f_io=0;                        //CLEAR_45IO();
  36   2               f_clk=1;
  37   2               f_clk=0;
  38   2               data1<<=1;
  39   2           }
  40   1      }
  41          unsigned char read_mainmemory(unsigned int pagenum,unsigned int bits)
  42          {
  43   1               unsigned char i;
  44   1               unsigned char byte11,temp11;
  45   1               f_cs=0;                          //CLEAR_45CS();
  46   1               write_byte(0x52);
  47   1               i=pagenum>>6;
  48   1               write_byte((unsigned char)i);
  49   1               i=pagenum<<2;
  50   1               byte11=bits>>8;
  51   1               i=(unsigned char)i+(unsigned char)byte11;
  52   1               write_byte((unsigned char)i);
  53   1               write_byte((unsigned char)bits);
  54   1               write_byte(0x00);
  55   1               write_byte(0x00);
C51 COMPILER V7.06   45DB041                                                               11/01/2008 17:59:16 PAGE 2   

  56   1               write_byte(0x00);
  57   1               write_byte(0x00);
  58   1               CLOCK1();
  59   1      
  60   1               temp11=read_byte();
  61   1               f_cs=1;                             //SET_45CS();
  62   1               return temp11;
  63   1      }
  64          unsigned char read_status(void)
  65          {
  66   1               unsigned char temp2;
  67   1               f_cs=0;                          //CLEAR_45CS();
  68   1               f_clk=0;                         //CLEAR_45SCK();
  69   1               f_io=1;                          //SET_45IO();
  70   1               write_byte(0x57);
  71   1               CLOCK1();
  72   1      //       NOP();
  73   1               temp2=read_byte();
  74   1               f_cs=1;                          //SET_45CS();
  75   1               return temp2;
  76   1      }
  77          
  78          /*void write_buffer1(unsigned int bitnum,unsigned char *pt)
  79          {
  80                   unsigned int i;
  81                   f_cs=0;
  82                   f_clk=0;
  83                   f_io=1;
  84                   write_byte(0x84);
  85                   write_byte(0x00);
  86                   i=bitnum>>8;
  87                   write_byte((unsigned char)i);
  88                   write_byte((unsigned char)bitnum);
  89                   for(i=0;i<264;i++)
  90                   write_byte(*pt++);
  91          //       DELAY();
  92                   f_cs=1;
  93          }*/
  94          void write_mainmemory(unsigned int pagenum,unsigned char *pt)
  95          {
  96   1               unsigned int i;
  97   1               f_cs=0;
  98   1               f_io=1;
  99   1               f_clk=0;
 100   1               write_byte(0x82);
 101   1               i=pagenum>>6;
 102   1               write_byte((unsigned char)i);
 103   1               i=pagenum<<2;
 104   1               write_byte((unsigned char)i);
 105   1               write_byte(0x00);
 106   1               for(i=0;i<264;i++)
 107   1               write_byte(*pt++);
 108   1      //       NOP();
 109   1               f_io=1;
 110   1               f_clk=0;
 111   1               f_cs=1;
 112   1               for(i=0;i<10000;i++);
 113   1      }
 114          void write_buffer2(unsigned int bitnum,unsigned char *pt)
 115          {
 116   1               unsigned int i;
 117   1               f_cs=0;
C51 COMPILER V7.06   45DB041                                                               11/01/2008 17:59:16 PAGE 3   

 118   1               DELAY();
 119   1               write_byte(0x87);
 120   1               write_byte(0x00);
 121   1               i=bitnum>>8;
 122   1               write_byte((unsigned char)i);
 123   1               write_byte((unsigned char)bitnum);
 124   1               for(i=0;i<264;i++)
 125   1               write_byte(*pt++);
 126   1               f_cs=1;
 127   1      }
 128          void write_buffer1mainmemory(unsigned int pagenum)
 129          {
 130   1               unsigned int i;
 131   1               unsigned char flag;
 132   1      //       write_buffer1(chip_cs,0,yyj02);
 133   1               while(1)
 134   1               {
 135   2               flag=read_status();
 136   2               if((flag&0x80)==0x80)
 137   2               break;
 138   2               }
 139   1               f_cs=0;
 140   1               f_clk=0;
 141   1               f_io=1;
 142   1               DELAY();
 143   1               write_byte(0x83);
 144   1               i=pagenum>>6;
 145   1               write_byte((unsigned char)i);
 146   1               i=pagenum<<2;
 147   1               write_byte((unsigned char)i);
 148   1               write_byte(0x00);
 149   1      //       DELAY();
 150   1               f_cs=1;
 151   1      }        
 152          /*void write_buffer2mainmemory(unsigned int pagenum)
 153          {
 154                   unsigned int i;
 155                   unsigned char flag;
 156          //       write_buffer2(chip_cs,0,yyj02);
 157                   while(1)
 158                   {
 159                   flag=read_status();
 160                   if((flag&0x80)==0x80)
 161                   break;
 162                   }
 163                   f_cs=0;
 164                   f_clk=0;
 165                   f_io=1;
 166                   DELAY();
 167                   write_byte(0x86);
 168                   i=pagenum>>6;
 169                   write_byte((unsigned char)i);
 170                   i=pagenum<<2;
 171                   write_byte((unsigned char)i);
 172                   write_byte(0x00);
 173          //       DELAY();
 174                   f_cs=1;
 175          }        
 176          
 177          void read_startarry(unsigned int pagenum,unsigned int bitnum,
 178                              unsigned char *pt,unsigned int len)
 179          {
C51 COMPILER V7.06   45DB041                                                               11/01/2008 17:59:16 PAGE 4   

 180                  unsigned int i;
 181                  unsigned char flag;
 182                  while(1)
 183                   {
 184                   flag=read_status();
 185                   if(flag&0x80)
 186                   break;
 187                   }
 188                   f_cs=0;
 189                   f_io=1;
 190                   f_clk=0;
 191                   DELAY();
 192                   write_byte(0x68);
 193                   i=pagenum>>6;
 194                   write_byte((unsigned char)i);
 195                   i=pagenum<<2+bitnum>>8;
 196                   write_byte((unsigned char)i);
 197                   write_byte((unsigned char)bitnum);
 198                   write_byte(0x00);
 199                   write_byte(0x00);
 200                   write_byte(0x00);
 201                   write_byte(0x00);
 202                   CLOCK1();
 203                   for(i=0;i<len;i++)
 204                   *pt++=read_byte();
 205                   f_cs=1;
 206          }       
 207          void compare_buffer1page(unsigned int pagenum)
 208          {
 209                   unsigned int i;
 210                   unsigned char flag;
 211                   while(1)
 212                   {
 213                   flag=read_status();
 214                   if(flag&0x80)
 215                   break;
 216                   }
 217                   f_cs=0;
 218                   f_io=1;
 219                   f_clk=0;
 220                   DELAY();
 221                   write_byte(0x60);
 222                   i=pagenum>>6;
 223                   write_byte((unsigned char)i);
 224                   i=pagenum<<2;
 225                   write_byte((unsigned char)i);
 226                   write_byte(0x00);
 227                   f_cs=1;
 228          }       */                      
 229          void CLOCK1(void)
 230          { 
 231   1           f_clk=1;
 232   1           DELAY();
 233   1           f_clk=0;
 234   1      }
 235          void DELAY(void)
 236          {
 237   1           unsigned char i;
 238   1           for (i=0;i<2;i++);
 239   1      }
C51 COMPILER V7.06   45DB041                                                               11/01/2008 17:59:16 PAGE 5   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION read_byte (BEGIN)
                                           ; SOURCE LINE # 12
                                           ; SOURCE LINE # 13
                                           ; SOURCE LINE # 15
;---- Variable 'data999' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
                                           ; SOURCE LINE # 17
;---- Variable 'i' assigned to Register 'R6' ----
0002 FE                MOV     R6,A
0003         ?C0001:
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 19
0003 D2B7              SETB    f_clk
                                           ; SOURCE LINE # 20
0005 EF                MOV     A,R7
0006 25E0              ADD     A,ACC
0008 FF                MOV     R7,A
                                           ; SOURCE LINE # 21
0009 A2B6              MOV     C,f_io
000B E4                CLR     A
000C 33                RLC     A
000D 4207              ORL     AR7,A
                                           ; SOURCE LINE # 22
000F C2B7              CLR     f_clk
                                           ; SOURCE LINE # 23
0011 0E                INC     R6
0012 BE08EE            CJNE    R6,#08H,?C0001
0015         ?C0002:
                                           ; SOURCE LINE # 24
                                           ; SOURCE LINE # 25
0015         ?C0004:
0015 22                RET     
             ; FUNCTION read_byte (END)

             ; FUNCTION L?0044 (BEGIN)
0000         L?0045:
0000 FF                MOV     R7,A
0001         L?0046:
0001 120000      R     LCALL   _write_byte
0004 E4                CLR     A
0005 FF                MOV     R7,A
             ; FUNCTION _write_byte (BEGIN)
                                           ; SOURCE LINE # 27
;---- Variable 'data1' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 28
                                           ; SOURCE LINE # 30
;---- Variable 'i' assigned to Register 'R6' ----
0006 E4                CLR     A
0007 FE                MOV     R6,A
0008         ?C0005:
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 32
0008 EF                MOV     A,R7
0009 30E704            JNB     ACC.7,?C0008
                                           ; SOURCE LINE # 33
000C D2B6              SETB    f_io
000E 8002              SJMP    ?C0009
0010         ?C0008:
C51 COMPILER V7.06   45DB041                                                               11/01/2008 17:59:16 PAGE 6   

                                           ; SOURCE LINE # 35
0010 C2B6              CLR     f_io
0012         ?C0009:
                                           ; SOURCE LINE # 36
0012 D2B7              SETB    f_clk
                                           ; SOURCE LINE # 37
0014 C2B7              CLR     f_clk
                                           ; SOURCE LINE # 38
0016 EF                MOV     A,R7
0017 25E0              ADD     A,ACC
0019 FF                MOV     R7,A
                                           ; SOURCE LINE # 39
001A 0E                INC     R6
001B BE08EA            CJNE    R6,#08H,?C0005
                                           ; SOURCE LINE # 40
001E         ?C0010:
001E 22                RET     
             ; FUNCTION _write_byte (END)

             ; FUNCTION _read_mainmemory (BEGIN)
                                           ; SOURCE LINE # 41
0000 8E00        R     MOV     pagenum,R6
0002 8F00        R     MOV     pagenum+01H,R7
;---- Variable 'bits' assigned to Register 'R4/R5' ----
                                           ; SOURCE LINE # 42
                                           ; SOURCE LINE # 45
0004 C2E8              CLR     f_cs
                                           ; SOURCE LINE # 46
0006 7F52              MOV     R7,#052H
0008 120000      R     LCALL   _write_byte
                                           ; SOURCE LINE # 47
000B E500        R     MOV     A,pagenum+01H
000D AE00        R     MOV     R6,pagenum

⌨️ 快捷键说明

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