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

📄 cs21-1.lst

📁 《手把手教你学单片机的C程序设计》及实验程序
💻 LST
字号:
C51 COMPILER V7.06   CS21_1                                                                02/19/2007 16:42:57 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CS21_1
OBJECT MODULE PLACED IN CS21-1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CS21-1.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <REG51.H>
   2          #include <intrins.H>
   3          #define uchar unsigned char
   4          #define uint unsigned int       
   5          uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
   6          uchar ACT[4]={0xfe,0xfd,0xfb,0xf7}; 
   7          sbit SDA=P3^7;
   8          sbit SCL=P3^6;
   9          bdata char com_data;
  10          sbit mos_bit=com_data^7;
  11          sbit low_bit=com_data^0;
  12          uchar cnt,x;
  13          void delay_iic(int n);
  14          uchar rd_24c01(char a);
  15          void wr_24c01(char a,char b);
  16          /***************************************/
  17          void init(void)
  18          {
  19   1      TMOD=0x01;                              
  20   1      TH0=-(1000/256);                        
  21   1      TL0=-(1000%256);                
  22   1      ET0=1;                                  
  23   1      TR0=1;                                  
  24   1      EA=1;                                   
  25   1      }
  26          /********************************/
  27          uchar scan_key(void)    
  28          {                               
  29   1      uchar temp;                     
  30   1      temp=P3;                        
  31   1      return temp;                    
  32   1      }               
  33          /********************************/
  34          void delay(uint k)              
  35          {                                       
  36   1      uint data i,j;                          
  37   1      for(i=0;i<k;i++)                
  38   1      {for(j=0;j<121;j++)             
  39   2      {;}}                            
  40   1      }                               
  41          /******************************/
  42          void main(void)
  43          {uchar key_val;
  44   1      init();
  45   1         while(1)
  46   1         {
  47   2              key_val=scan_key();
  48   2              switch(key_val)         
  49   2                 {                                    
  50   3                 case 0xfb:if(x<255)x++;delay(300);break;
  51   3                 case 0xf7:if(x>0)x--;delay(300);break;
  52   3                 case 0xef:EA=0;wr_24c01(10,x);delay_iic(250);EA=1;break;
  53   3                 case 0xdf:EA=0;x=rd_24c01(10);delay_iic(250);EA=1;break;
  54   3                 default:break;
  55   3                 }                                    
C51 COMPILER V7.06   CS21_1                                                                02/19/2007 16:42:57 PAGE 2   

  56   2         }
  57   1      }
  58          /************************************/
  59          void time0(void) interrupt 1
  60          {
  61   1      uchar dis_val;                                  
  62   1      TH0=-(1000/256);                        
  63   1      TL0=-(1000%256);
  64   1      dis_val=x;
  65   1      if(++cnt>2)cnt=0;                       
  66   1      switch (cnt)                            
  67   1      {                                               
  68   2      case 0:P0=SEG7[dis_val%10];P2=ACT[cnt];break;
  69   2      case 1:P0=SEG7[(dis_val%100)/10];P2=ACT[cnt];break;
  70   2      case 2:P0=SEG7[dis_val/100];P2=ACT[cnt];break;
  71   2      default:break;                          
  72   2      }                                               
  73   1      }                                               
  74          /**************************************/
  75          void start()
  76          {
  77   1      SDA=1;_nop_();_nop_();_nop_();_nop_();
  78   1      SCL=1;_nop_();_nop_();_nop_();_nop_();
  79   1      SDA=0;_nop_();_nop_();_nop_();_nop_();
  80   1      SCL=0;_nop_();_nop_();_nop_();_nop_();
  81   1      }
  82          //*****************************************
  83          void stop()
  84          {
  85   1      SDA=0;_nop_();_nop_();_nop_();_nop_();
  86   1      SCL=1;_nop_();_nop_();_nop_();_nop_();
  87   1      SDA=1;_nop_();_nop_();_nop_();_nop_();
  88   1      }
  89          //***********************
  90          void ack()
  91          {
  92   1      SCL=1;_nop_();_nop_();_nop_();_nop_();
  93   1      SCL=0;_nop_();_nop_();_nop_();_nop_();
  94   1      }
  95          //***********************
  96          void shift8(char a)
  97          {
  98   1      data uchar i;
  99   1      com_data=a;
 100   1      for(i=0;i<8;i++)
 101   1      {
 102   2      SDA=mos_bit;
 103   2      SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 104   2      SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 105   2      com_data=com_data*2;
 106   2      }
 107   1      }
 108          //******************
 109          uchar rd_24c01(char a)
 110          {
 111   1      data uchar i,command;
 112   1      SDA=1;_nop_();_nop_();_nop_();_nop_();
 113   1      SCL=0;_nop_();_nop_();_nop_();_nop_();
 114   1      start();
 115   1      command=160;
 116   1      shift8(command);
 117   1      ack();
C51 COMPILER V7.06   CS21_1                                                                02/19/2007 16:42:57 PAGE 3   

 118   1      shift8(a);
 119   1      ack();
 120   1      start();
 121   1      command=161;
 122   1      shift8(command);
 123   1      ack();
 124   1      SDA=1;_nop_();_nop_();_nop_();_nop_();
 125   1      for(i=0;i<8;i++)
 126   1      {
 127   2      com_data=com_data*2;
 128   2      SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 129   2      low_bit=SDA;
 130   2      SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
 131   2      }
 132   1      stop();
 133   1      return(com_data);
 134   1      }
 135          //*****************
 136          void wr_24c01(char a,char b)
 137          {
 138   1      data uchar command;
 139   1      _nop_();_nop_();_nop_();_nop_();_nop_();
 140   1      SDA=1;_nop_();_nop_();_nop_();_nop_();
 141   1      SCL=0;_nop_();_nop_();_nop_();_nop_();
 142   1      start();
 143   1      command=160;
 144   1      shift8(command);
 145   1      ack();
 146   1      shift8(a);
 147   1      ack();
 148   1      shift8(b);
 149   1      ack();
 150   1      stop();
 151   1      _nop_();_nop_();_nop_();_nop_();_nop_();
 152   1      }
 153          //***************
 154          void delay_iic(int n)
 155          {
 156   1      int i;
 157   1      for(i=1;i<n;i++){;}
 158   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    499    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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