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

📄 sfj1.lst

📁 售饭机的源码程序,单片机开发使用,可以直接使用
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SFJ1
OBJECT MODULE PLACED IN sfj1.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE sfj1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <reg51.h> 
   3          #include <absacc.h>
   4          #include <intrins.h>
   5          
   6          #define uchar unsigned char
   7          #define uint unsigned int   
   8          #define ulong unsigned long
   9          #define  _Nop() _nop_()         
  10          #define  TRUE    1
  11          #define  FALSE   0
  12          
  13          #define CNTR  XBYTE[0x7F00]        
  14          #define COMD XBYTE[0x7F01]         
  15          #define STUS  XBYTE[0x7F02]         
  16          #define INTR  XBYTE[0x7F03]        
  17          #define ACOD XBYTE[0x7F04]       
  18          #define ACMK XBYTE[0x7F05]         
  19          #define BTR0 XBYTE[0x7F06]       
  20          #define BTR1 XBYTE[0x7F07]        
  21          #define OCTR  XBYTE[0x7F08]       
  22          #define TXBID0  XBYTE[0x7F0A]       
  23          #define TXBID1  XBYTE[0x7F0b]        
  24          #define TXBDATA0  XBYTE[0x7F0C]        
  25          #define TXBDATA1  XBYTE[0x7F0D]       
  26          #define TXBDATA2  XBYTE[0x7F0E]        
  27          #define TXBDATA3  XBYTE[0x7F0F]        
  28          #define TXBDATA4  XBYTE[0x7F10]        
  29          #define TXBDATA5  XBYTE[0x7F11]        
  30          #define TXBDATA6  XBYTE[0x7F12]        
  31          #define TXBDATA7  XBYTE[0x7F13]        
  32          #define RXR0  XBYTE[0x7F14]        
  33          #define RXR1  XBYTE[0x7F15]        
  34          #define RXRDATA1  XBYTE[0x7F16]        
  35          #define RXRDATA2  XBYTE[0x7F17]       
  36          #define RXRDATA3  XBYTE[0x7F18]        
  37          #define RXRDATA4  XBYTE[0x7F19]        
  38          #define RXRDATA5  XBYTE[0x7F1A]        
  39          #define RXRDATA6  XBYTE[0x7F1B]        
  40          #define RXRDATA7  XBYTE[0x7F1C]        
  41          #define RXRDATA8  XBYTE[0x7F1D]        
  42          
  43          #define MODE  XBYTE[0x7F1F]
  44          
  45          sfr WDTC=0x9F;                   
  46          sfr SCONF=0xBF;
  47          sbit ACC0=ACC^0;   sbit ACC1=ACC^1;  sbit ACC2=ACC^2;  sbit ACC3=ACC^3;
  48          sbit ACC4=ACC^4;   sbit ACC5=ACC^5;  sbit ACC6=ACC^6;  sbit ACC7=ACC^7;
  49          
  50          ulong earnmoney,earnmoneytemp;
  51          uint earnmoneytemp1;
  52          uchar keyvalue,numkeyvalue;
  53          uchar idata receivebuf[13];
  54          uchar idata displaybuf[16];
  55          uint inputdata[14];
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 2   

  56          uchar inputpoint;
  57          uint delayl;
  58          uchar  idata Num_Buf[5]={0x00,0x00,0x00,0x00,0x00};
  59          uchar  Rst_Buf;
  60          bdata uchar a,b;
  61          bdata uchar senddata;
  62          sbit sendbit_0=senddata^0;
  63          uchar i;              
  64          uchar j;              
  65          uchar ramaddress;
  66          bit Find_Head,Find_Success,ack,Set_Success;
  67          bit presskey,keydoflag,serialflag;  
  68          bit pointbit,firstnumflag;  
  69          bit cancelstatus;
  70          bit lightflag,countok;
  71          bit workflag,inttimer0;
  72          uchar pointwhere,pointnew;  
  73          uchar  SYS_STATE;
  74          uchar  Serial_Buf_Num,Serial_Buf_NumSum;
  75          uchar  Serial_Buf[13];
  76          
  77          uchar  X_Sum;
  78          uchar T_Cnt;
  79          uint havemoney;   
  80          uint setmoney;
  81          bit timeflag,flashflag;
  82          bit moneyflag;
  83          uchar enablesend;
  84          uchar enableauto,currentkind;
  85          uchar receiveflag;
  86          uchar machinestatus;  
  87          uchar nodeaddress,sendorder;
  88          uint spendmoney;   
  89          
  90          uint kindmoney;
  91          uchar idata Sendbuf[4];
  92          uchar dispshift; 
  93          uchar flashcount;
  94          uint totalmoney;
  95          uchar serialsend;
  96          bit addflag;
  97          bit searchflag,oldkeyflag; 
  98          bit clearflag; 
  99          bit  flagkeyd;
 100          uchar behindnum;
 101          uchar pointnum3;
 102          uchar flashi;
 103          
 104          
 105          sbit a_0=a^0;   sbit a_1=a^1;   sbit a_2=a^2;    sbit a_3=a^3;
 106          sbit a_4=a^4;   sbit a_5=a^5;   sbit a_6=a^6;    sbit a_7=a^7;
 107          sbit b_0=b^0;   sbit b_1=b^1;   sbit b_2=b^2;    sbit b_3=b^3;
 108          sbit b_4=b^4;   sbit b_5=b^5;   sbit b_6=b^6;    sbit b_7=b^7;
 109          sbit ALARM=P1^0;  sbit sda=P1^1;  sbit scl=P1^2; sbit f2led=P1^3;
 110          sbit f1led=P1^4; sbit kindled=P1^5; sbit countled=P1^6; sbit autoled=P1^7;
 111          sbit LOAD=P2^0; sbit DIN=P2^1; sbit CLK=P2^2; sbit P2_3=P2^3;
 112          sbit P2_7=P2^7;
 113          sbit P3_0=P3^0; sbit P3_1=P3^1; sbit key=P3^2; sbit P3_3=P3^3;
 114          sbit dat=P3^4; sbit clk=P3^5; sbit P3_6=P3^6; sbit P3_7=P3^7;
 115          
 116          void cansend(void);  
 117          void canreceive(void);
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 3   

 118          void Rst_Wdog(void);
 119          void dispmoney(void);
 120          void numkey(void);
 121          void   Start();           
 122          void   Stop();
 123          void   Ack_NoAck(bit askbit);
 124          void   SendByte(uchar c);
 125          uchar  RcvByte();
 126          bit    IRcvStr(uchar sla,uchar suba,uchar *s,uchar no);
 127          bit    ISendStr(uchar sla,uchar suba,uchar *s,uchar no);
 128          
 129          void delay(uchar time); 
 130          void write728x(uchar reg_add, uchar write_data);
 131          uchar read728x(uchar reg_add);
 132          void send_byte(uchar send_byte);
 133          void repeatdisplay(void);
 134          uchar receive_byte(void);
 135          void pointon(void);
 136          void pointoff(void);
 137          void inputmoney(void);
 138          void oldstatus(void);
 139          
 140          void   send(uchar buf[],uchar len);
 141          uchar Rec_xorsum(uchar buf[],uchar len);
 142          
 143          uchar idata pointonvalue[8]={0x27,0x2f,0x37,0x3f,0x67,0x6f,0x77,0x7f};
 144          uchar code pointoffvalue[8]={0xa7,0xaf,0xb7,0xbf,0xe7,0xef,0xf7,0xff};
 145          
 146          void main(void)
 147           {
 148   1       
 149   1      
 150   1      
 151   1        Rst_Buf=SCONF;
 152   1        if((Rst_Buf&0x80)==0) WDTC=0x85;
 153   1        else  { Rst_Buf=SCONF;
 154   2                SCONF=Rst_Buf&0x7f;
 155   2                Rst_Buf=WDTC;
 156   2                WDTC=Rst_Buf|0x20;
 157   2                WDTC=0x85;
 158   2              }
 159   1        
 160   1        EA=0;      ALARM=1;   IE=0x00;  IP=0x10;
 161   1        TMOD=0x21; TH1=0xE8;  TL1=0xE8;          
 162   1        TH0=-50000/256;  TL0=-50000%256;    
 163   1        ET0=1;  TR1=1;  ES=1;   IT0=1;  EX0=1;         
 164   1        PCON=0x00;  SCON=0x70;       
 165   1        EA=1;
 166   1        for (delayl=0;delayl<25000;delayl++); 
 167   1        Rst_Wdog();
 168   1        write728x(0x12,0x80); 
 169   1        timeflag=0;   flashcount=0;   TR0=1;
 170   1        moneyflag=0; 
 171   1        keyvalue=45;  numkeyvalue=30;
 172   1        keydoflag=0;  Serial_Buf_Num=0;
 173   1       
 174   1        ramaddress=0xf0;
 175   1        IRcvStr(0xa0,ramaddress,&receivebuf,1);
 176   1        nodeaddress=receivebuf[0];  
 177   1        receivebuf[4]=receivebuf[0]/10;
 178   1        receivebuf[5]=receivebuf[0]%10;
 179   1         CNTR=0x01; 
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 4   

 180   1         ACC=CNTR;
 181   1         while(ACC0!=1) {CNTR=0x01; ACC=CNTR;}
 182   1         ACOD=nodeaddress;
 183   1         ACMK=0x80;   
 184   1         BTR0=0x09;
 185   1         BTR1=0x1c;
 186   1         OCTR=0x1a; 
 187   1        
 188   1         CNTR=0x00;
 189   1         ACC=CNTR;
 190   1         while(ACC0!=0) {CNTR=0; ACC=CNTR;}
 191   1        
 192   1         ramaddress=0xd0;
 193   1         IRcvStr(0xa0,ramaddress,&receivebuf,3);
 194   1         earnmoney=receivebuf[0]*65536+receivebuf[1]*256+receivebuf[2];
 195   1         earnmoneytemp=earnmoney;
 196   1         SYS_STATE=0;
 197   1         presskey=0;  
 198   1         machinestatus=4;  
 199   1         enablesend=1; 
 200   1         pointbit=1;  totalmoney=0;    firstnumflag=1;
 201   1      
 202   1         displaybuf[0]=0x0f; 
 203   1         displaybuf[1]=0x1f;   displaybuf[2]=0x2f;   displaybuf[3]=0x3f;
 204   1         displaybuf[4]=0x40+receivebuf[4];   displaybuf[5]=0x50+receivebuf[5];
 205   1         displaybuf[6]=0x60+0x0f;   displaybuf[7]=0x70+0x0f;
 206   1         repeatdisplay();
 207   1         for(i=0;i<16;i++)
 208   1            write728x(0x14,displaybuf[i]);
 209   1         for(i=0;i<3;i++)
 210   1           {for(delayl=0;delayl<25000;delayl++) ;
 211   2            Rst_Wdog();
 212   2               }
 213   1         displaybuf[0]=0x0d;displaybuf[1]=0x14;   displaybuf[4]=0x4f;  displaybuf[5]=0x5f;
 214   1         pointon();   autoled=1;   countled=0;   kindled=1;   f1led=1;   f2led=1;
 215   1         flashflag=1;   addflag=0;   flagkeyd=0;
 216   1        while(1)
 217   1          {Rst_Wdog();
 218   2           if(inttimer0==1)  
 219   2            {if(timeflag==1)
 220   3              {if(++T_Cnt>=5){   
 221   5                    T_Cnt=0;
 222   5                                timeflag=0;
 223   5                                if(machinestatus!=5)
 224   5                                  {flashflag=1;
 225   6                                   pointon();
 226   6                                      }
 227   5                           enablesend=1;
 228   5                           ES=1;
 229   5                               TR1=1;
 230   5                   write728x(0x14,0x3f);
 231   5                               write728x(0x14,0xbf);
 232   5                   }
 233   4                  }  
 234   3             if(flashflag==1)   
 235   3              {TR0=0;  flashcount=flashcount+1;
 236   4               if(flashcount==5)   
 237   4                 {displaybuf[2]=0x2f;displaybuf[3]=0x3f;displaybuf[4]=0x4a;  displaybuf[5]=0x5f; displaybuf[6]=0
             -x6f; displaybuf[7]=0x7f;
 238   5                 }
 239   4               else if(flashcount==10) 
 240   4                 {displaybuf[2]=0x2f;displaybuf[3]=0x3f;displaybuf[4]=0x4f;  displaybuf[5]=0x5a; displaybuf[6]=0
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 5   

             -x6f; displaybuf[7]=0x7f;
 241   5                 }
 242   4               else if(flashcount==15)  
 243   4                 {displaybuf[2]=0x2f;displaybuf[3]=0x3f;displaybuf[4]=0x4f;  displaybuf[5]=0x5f; displaybuf[6]=0
             -x6a; displaybuf[7]=0x7f;

⌨️ 快捷键说明

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