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

📄 shukong1.lst

📁 基于I2C总线的AD存储DA的proteus仿真
💻 LST
字号:
C51 COMPILER V7.10   SHUKONG1                                                              05/21/2013 12:45:44 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE SHUKONG1
OBJECT MODULE PLACED IN shukong1.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE shukong1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #include <absacc.h> 
   4          
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          
   8          sbit rs=P3^5;
   9          sbit wr=P3^6;
  10          sbit lcden=P3^4;
  11          
  12          sbit CLK=P3^1;
  13          sbit DIO=P3^2;
  14          sbit CS1=P3^3;
  15          sbit sda=P1^6;
  16          sbit scl=P1^7;
  17          
  18          sbit k1=P3^0;
  19          sbit k2=P3^7;
  20          uchar x,t,FLAG,fa;
  21          void delay(uint x)
  22          {
  23   1              uint a,b;
  24   1              for(a=x;a>0;a--)
  25   1                      for(b=110;b>0;b--); 
  26   1      }
  27          void delay20ms(void)   //误差 0us
  28          {
  29   1          unsigned char a,b;
  30   1          for(b=215;b>0;b--)
  31   1              for(a=45;a>0;a--);
  32   1      }
  33          
  34          void delay1(uint x)
  35          {                                                               
  36   1              uint a,b;
  37   1              for(a=x;a>0;a--)
  38   1                      for(b=100;b>0;b--); 
  39   1      }
  40          void delay2()
  41          {;;}
  42          void init_24c256()
  43          {  scl=0;
  44   1         delay2();
  45   1         sda=1;
  46   1         delay2();
  47   1         }
  48          void start()
  49           { sda=1;
  50   1         delay2();
  51   1         scl=1;
  52   1         delay2();
  53   1         sda=0;
  54   1         delay2();
  55   1       }
C51 COMPILER V7.10   SHUKONG1                                                              05/21/2013 12:45:44 PAGE 2   

  56          void stop()
  57           { sda=0;
  58   1         delay2();
  59   1         scl=1;
  60   1         delay2();
  61   1         sda=1;
  62   1         delay2();
  63   1       }
  64          void response()
  65           {      uchar i;
  66   1           scl=1;
  67   1               delay2();
  68   1               while((sda==1)&&(i<255))
  69   1                i++;
  70   1                scl=0;
  71   1                delay2();
  72   1       
  73   1       } 
  74          void write_24c256(uchar dataa)
  75          {       uchar i,temp;
  76   1          temp=dataa;
  77   1              for(i=0;i<8;i++)
  78   1              { temp=temp<<1;
  79   2                scl=0;
  80   2                sda=CY;
  81   2                delay2();
  82   2                scl=1;
  83   2                delay2();
  84   2              }
  85   1         scl=0;
  86   1        delay2();
  87   1        sda=1;
  88   1        delay2();
  89   1      }
  90           uchar read_24c256()
  91          {  uchar i,k;
  92   1        // scl=0;
  93   1         //delay2();
  94   1         //sda=1;  //shi fang 
  95   1              for(i=0;i<8;i++)
  96   1              {  scl=1;
  97   2                delay2();
  98   2                k=(k<<1)|sda;
  99   2                scl=0;
 100   2                delay2();
 101   2                }
 102   1         delay2();
 103   1         return k;
 104   1      }
 105          void write_add(uchar address,uchar dat)
 106           {      start();
 107   1          write_24c256(0xa0);
 108   1          response();
 109   1          write_24c256(address);
 110   1              response();
 111   1              write_24c256(dat);
 112   1              response();
 113   1              stop();
 114   1              
 115   1       }
 116           uchar read_add(uchar address)
 117           {       uchar date;
C51 COMPILER V7.10   SHUKONG1                                                              05/21/2013 12:45:44 PAGE 3   

 118   1           start();
 119   1               write_24c256(0xa0);
 120   1               response();
 121   1               write_24c256(address);
 122   1               response(); 
 123   1               start();
 124   1               write_24c256(0xa1);
 125   1            response();
 126   1               date=read_24c256();
 127   1                stop();
 128   1         return date;
 129   1       }
 130          /*void write_com(uchar com)
 131          {
 132                  P0=com;
 133                  rs=0;
 134                  lcden=0;
 135                  delay(10);
 136                  lcden=1;
 137                  delay(10);
 138                  lcden=0;
 139                  
 140          }
 141          
 142          void write_date(uchar date)
 143          {
 144                  P0=date;
 145                  rs=1;
 146                  lcden=0;
 147                  delay(10);
 148                  lcden=1;
 149                  delay(10);
 150                  lcden=0;
 151                  
 152          }
 153          
 154          void init()
 155          {
 156          
 157                  wr=0;
 158                  write_com(0x38);
 159                  delay(20);
 160                  write_com(0x0c);
 161                  delay(20);
 162                  write_com(0x06);
 163                  delay(20);
 164                  write_com(0x01);
 165                  delay(20);      
 166          
 167          } */
 168          unsigned char  A_D()
 169          {
 170   1        unsigned char i,dat;
 171   1         CS1=1;   //一个转换周期开始
 172   1         CLK=0;  //为第一个脉冲作准备
 173   1         CS1=0;  //CS置0,片选有效
 174   1      
 175   1         DIO=1;    //DIO置1,规定的起始信号  
 176   1         CLK=1;   //第一个脉冲
 177   1         CLK=0;   //第一个脉冲的下降沿,此前DIO必须是高电平
 178   1         DIO=1;   //DIO置1, 通道选择信号  
 179   1         CLK=1;   //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 
C51 COMPILER V7.10   SHUKONG1                                                              05/21/2013 12:45:44 PAGE 4   

 180   1         CLK=0;   //第二个脉冲下降沿 
 181   1         DIO=0;   //DI置0,选择通道0
 182   1         CLK=1;    //第三个脉冲
 183   1         CLK=0;    //第三个脉冲下降沿 
 184   1         DIO=1;    //第三个脉冲下沉之后,输入端DIO失去作用,应置1
 185   1         CLK=1;    //第四个脉冲
 186   1         for(i=0;i<8;i++)  //高位在前
 187   1          {
 188   2            CLK=1;         //第四个脉冲
 189   2            CLK=0; 
 190   2            dat<<=1;       //将下面储存的低位数据向右移
 191   2                      dat|=(unsigned char)DIO;         //将输出数据DIO通过或运算储存在dat最低位 
 192   2          }                           
 193   1          CS1=1;          //片选无效 
 194   1               return dat;     //将读书的数据返回     
 195   1        }
 196          
 197          /*void keyscan()
 198          {  uint i;
 199                  if(k1==0)
 200                  {
 201                          delay20ms();
 202                          if(k1==0)
 203                          {       while(!k1);
 204                          EA=1;
 205                                  ET0=1;
 206                                  TR0=1;
 207                          }
 208                  }
 209                  if(k2==0)
 210                  {
 211                          delay20ms();
 212                          if(k2==0)
 213                          {       while(!k2);
 214                              EA=0;
 215                          //      ET0=0;
 216                          //      TR0=0;
 217                                  FLAG=1;
 218                          }
 219                  }
 220          
 221                  
 222          } */
 223          void main()
 224          { uchar bb,cc;
 225   1        //init();
 226   1        init_24c256();
 227   1        //x=read_add(0x00);
 228   1         TMOD=0X01;
 229   1         ET0=1;
 230   1         EA=1;
 231   1         TL0=(65535-5000)%256;
 232   1         TH0=(65535-5000)/256;
 233   1         TR0=1; 
 234   1        while(1)
 235   1              { 
 236   2                if(fa==1)
 237   2               { fa=0;
 238   3                 bb=x;
 239   3                 write_add(0X02,bb);  
 240   3                 delay20ms();
 241   3                  P2=read_add(0x02);
C51 COMPILER V7.10   SHUKONG1                                                              05/21/2013 12:45:44 PAGE 5   

 242   3               }
 243   2                
 244   2              }
 245   1       }
*** WARNING C280 IN LINE 224 OF SHUKONG1.C: 'cc': unreferenced local variable
 246          void time0_interrupt(void)interrupt 1
 247           {  TL0=(65535-5000)%256;
 248   1         TH0=(65535-5000)/256;
 249   1         t++;
 250   1         if(t==20)
 251   1        { t=0;
 252   2          x=A_D();
 253   2              fa=1;
 254   2                      }
 255   1       }
 256          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    389    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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