www.pudn.com > 47651478keil51file.rar > shui_kong.LST


C51 COMPILER V7.06   SHUI_KONG                                                             02/08/2007 15:19:46 PAGE 1    
 
 
C51 COMPILER V7.06, COMPILATION OF MODULE SHUI_KONG 
OBJECT MODULE PLACED IN shui_kong.OBJ 
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shui_kong.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND 
 
stmt level    source 
 
   1          #include "jyj07.h" 
   2          #include "shui_kong.h" 
   3           
   4          extern byte ram_8255a_c;                         //8255a_c输出字节 
   5           
   6          //税务初始化程序,返回初始化状态 
   7          //0:初始化正常,1: 
   8          byte shuiwu_init() 
   9          { 
  10   1          byte err_type; 
  11   1          wait_sk_ready(); 
  12   1          if(err_type==0) 
  13   1          { 
  14   2             err_type=hand_to_sk(); 
  15   2          } 
  16   1          else 
  17   1          { 
  18   2             return(err_type); 
  19   2          } 
  20   1              if(err_type==0) 
  21   1              { 
  22   2                 check_display(); 
  23   2              } 
  24   1              return(err_type); 
  25   1      } 
  26          //*********************HAND_TO_SK*************** 
  27          //功能:    和税控芯片握手,初始化稅控芯片工作方式 
  28          byte hand_to_sk() 
  29          { 
  30   1           word delay1; 
  31   1           bit tempbit1; 
  32   1               byte error_kind=0; 
  33   1               byte idata sk_hand_data[7]={0x06,0xa0,0xa3,CHUAN_BING,0,0,0}; 
  34   1               byte *pskdata; 
  35   1               pskdata=sk_hand_data;                  //把数组给指针赋值 
  36   1           
  37   1           set_high_skh();                           //设置skh状态 
  38   1               tempbit1=0; 
  39   1           for(delay1=0;delay1<10000;delay1++) 
  40   1           { 
  41   2              tempbit1=read_skh();                   //读skh状态  
  42   2                  if(tempbit1==1) 
  43   2                      { 
  44   3                        delay1=10000;                        //skh为高提前结束 
  45   3                      } 
  46   2              set_high_skh(); 
  47   2           }                                   //skh为低说明没准备好 
  48   1           while(tempbit1==0) 
  49   1               { 
  50   2                   error_kind=1; 
  51   2                   disp_sk_err(error_kind); 
  52   2           } 
  53   1           for(delay1=0;delay1<10000;delay1++) 
  54   1           { 
  55   2              tempbit1=read_skl();                   //读skl状态  
C51 COMPILER V7.06   SHUI_KONG                                                             02/08/2007 15:19:46 PAGE 2    
 
  56   2                  if(tempbit1==1) 
  57   2                      { 
  58   3                        delay1=10000;                        //skl为高提前结束 
  59   3                      } 
  60   2           } 
  61   1           while(tempbit1==0) 
  62   1               { 
  63   2                    error_kind=2; 
  64   2                        disp_sk_err(error_kind); 
  65   2           } 
  66   1               calc_shuzu_crc(pskdata);                  //计算数组的crc值,并赋给最后一个值 
  67   1            
  68   1           data_to_sk4562(pskdata);                  //通过4562与sk芯片握手 
  69   1               error_kind=check_sk_com();                //检查税控的执行情况 
  70   1           return(error_kind); 
  71   1      }  
  72          //设置skh状态 
  73          void set_high_skh() 
  74          { 
  75   1           P_SKH_SK=1; 
  76   1      } 
  77          void set_low_skh() 
  78          { 
  79   1           P_SKH_SK=0; 
  80   1      } 
  81          //读skh状态 
  82          bit read_skh() 
  83          { 
  84   1           bit tempbit; 
  85   1               tempbit=P_SKH_SK; 
  86   1               return(tempbit); 
  87   1      } 
  88          //读skl值 
  89          bit read_skl() 
  90          { 
  91   1          bit tempbit; 
  92   1              tempbit=0x01&CS_8255B_C;                    //8255b c口的最低位 
  93   1              return(tempbit); 
  94   1      } 
  95          //显示税控错误信息 
  96          void disp_sk_err(byte error_kind) 
  97          { 
  98   1      } 
*** WARNING C280 IN LINE 96 OF SHUI_KONG.C: 'error_kind': unreferenced local variable 
  99          //通过4562给税控芯片送数据 
 100          void data_to_sk4562(byte *pskdata) 
 101          { 
 102   1           byte len; 
 103   1               byte i,j,k,y; 
 104   1               len=*pskdata;                           //数组第一个值为数组的长度 
 105   1               ram_8255a_c=ram_8255a_c | 0x03;         //0000 0011 
 106   1               CS_8255A_C=ram_8255a_c;                 //税控时钟数据线都置高 
 107   1           for(i=0;i