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

📄 24c02.lst

📁 c51读写24C02原程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  24C02                                                                  02/05/2009 23:38:10 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24c02.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h> 
   2          #include <intrins.h> 
   3          
   4          
   5          //定义一下方便使用 
   6          #define uchar unsigned char
   7          #define uint unsigned int 
   8          
   9          
  10          //数码管段码和位码定义 
  11          /****************--0-----1------2-----3-----4------5-----6-----7-----8-----9---全选-**/ 
  12          uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; 
  13          /****************-1-----2-----3------4-----5-----6------7-----8---全选-***********/ 
  14          uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff}; 
  15          
  16          
  17          uchar k[9]={0,0,0,0,0,0,0,0,10};
  18          uchar j; 
  19          
  20          
  21          //按键调节定义 
  22          sbit k1=P0^0; 
  23          //加按键 
  24          sbit k2=P0^1; 
  25          //减按键 
  26          sbit k3=P0^2; 
  27          //功能键 
  28          
  29          
  30          //AT24C02管脚定义 
  31          sbit SCL =P1^4; 
  32          //24c02时钟信号 
  33          sbit SDA=P1^5; 
  34          //24c02数据端 
  35          
  36          
  37          //74HC595管脚定义
  38          
  39          
  40          sbit SCK =P3^1; 
  41          //移位时钟 
  42          sbit RCK =P3^0; 
  43          //锁存时钟 
  44          sbit SER = P3^2; 
  45          //数据输入 
  46          
  47          
  48          //TLC0834管脚定义 
  49          sbit ADC_CLK=P3^0; 
  50          //转换时钟 
  51          sbit ADC_CS =P3^1; 
  52          //转换片选 
  53          sbit ADC_DIO = P3^2; 
  54          //串行数据输入输出,DI和 DO接在一起使用 
  55          
C51 COMPILER V7.01  24C02                                                                  02/05/2009 23:38:10 PAGE 2   

  56          
  57          /******************************24c02声明**********************************/ 
  58          
  59          
  60          /************************************
  61          
  62          延时程序 
  63          
  64          
  65          *************************************/ 
  66          void delay() 
  67          { 
  68   1      
  69   1      
  70   1      uchar i; 
  71   1      for(i=248;i>0;i--); 
  72   1      } 
  73          
  74          
  75          /************************************
  76          
  77          开始总线 
  78          
  79          
  80          *************************************/ 
  81          void start() 
  82          { 
  83   1      
  84   1      
  85   1      SDA=1; 
  86   1      SCL=1; 
  87   1      SDA=0; 
  88   1      SCL=0; 
  89   1      
  90   1      
  91   1      } 
  92          
  93          
  94          /*************************************
  95          
  96          结束总线 
  97          
  98          
  99          **************************************/ 
 100          void stop() 
 101          { 
 102   1      
 103   1      
 104   1      SCL=0; 
 105   1      SDA=0; 
 106   1      SCL=1; 
 107   1      SDA=1; 
 108   1      
 109   1      
 110   1      } 
 111          
 112          
 113          
 114          /*************************************
 115          
 116          发 
 117          ack0 
C51 COMPILER V7.01  24C02                                                                  02/05/2009 23:38:10 PAGE 3   

 118          **************************************/ 
 119          void noack() 
 120          { 
 121   1      
 122   1      
 123   1      SDA=1; 
 124   1      SCL=1; 
 125   1      SCL=0; 
 126   1      
 127   1      
 128   1      } 
 129          
 130          
 131          /*************************************
 132          
 133          应答子函数 
 134          
 135          
 136          **************************************/ 
 137          bit ack() 
 138          { 
 139   1      
 140   1      
 141   1      bit e; 
 142   1      SDA=1; 
 143   1      SCL=1; 
 144   1      e=SDA; 
 145   1      SCL=0; 
 146   1      return(e); 
 147   1      
 148   1      
 149   1      } 
 150          
 151          
 152          /**************************************
 153          写 
 154          8个 
 155          bit到 
 156          24C02
 157          为写字节作准备 
 158          
 159          
 160          **************************************/ 
 161          void wb(uchar input) 
 162          { 
 163   1      
 164   1      
 165   1      uchar j; 
 166   1      for(j=8;j>0;j--) 
 167   1      { 
 168   2      
 169   2      
 170   2      SDA=(bit)(input&0x80); 
 171   2      SCL=1; 
 172   2      SCL=0; 
 173   2      input=input<<1; 
 174   2      
 175   2      
 176   2      } 
 177   1      } 
 178          
 179          
C51 COMPILER V7.01  24C02                                                                  02/05/2009 23:38:10 PAGE 4   

 180          /***************************************
 181          
 182          写一个字节到 
 183          24c02 
 184          ****************************************/ 
 185          void w(uchar d,uchara) 
 186          { 
 187   1      
 188   1      
 189   1      start(); 
 190   1      
 191   1      
 192   1      wb(0xa0); 
 193   1      ack(); 
 194   1      //写入指令 0xa0,该指令表示准备对 24c02进行写操作 
 195   1      wb(a); 
*** ERROR C202 IN LINE 195 OF 24C02.C: 'a': undefined identifier
 196   1      ack(); 
 197   1      //先写要存数据的地址 
 198   1      wb(d); 
 199   1      ack(); 
 200   1      //再写要存数据 
 201   1      } 
 202          stop(); 
*** ERROR C231 IN LINE 202 OF 24C02.C: 'stop': redefinition
 203          delay(); 
*** ERROR C231 IN LINE 203 OF 24C02.C: 'delay': redefinition
 204          
 205          
 206          /**************************************
 207          从 
 208          24C02中读 
 209          8个 
 210          bit
 211          为读字节作准备 
 212          
 213          
 214          ***************************************/ 
 215          uchar rb() 
 216          { 
 217   1      
 218   1      
 219   1      uchar j,rb=0; 
 220   1      for(j=8;j>0;j--) 
 221   1      { 
 222   2      
 223   2      
 224   2      SCL=1; 
 225   2      rb=rb<<1; 
 226   2      rb=rb|((uchar)(SDA)); 
 227   2      SCL=0; 
 228   2      
 229   2      
 230   2      } 
 231   1      return(rb); 
 232   1      } 
 233          
 234          
 235          /****************************************
 236          
 237          从 
 238          24c02中读一个字节 
C51 COMPILER V7.01  24C02                                                                  02/05/2009 23:38:10 PAGE 5   

 239          *****************************************/ 
 240          uchar r(uchara) 
 241          { 
 242   1      
 243   1      
 244   1      uchar d; 
 245   1      //读操作得到的数据 
 246   1      
 247   1      
 248   1      start(); 
 249   1      wb(0xa0); 
 250   1      //写入指令 0xa0,该指令表示准备对 24c02进行写操作 
 251   1      ack(); 
 252   1      wb(a); 
*** ERROR C202 IN LINE 252 OF 24C02.C: 'a': undefined identifier
 253   1      //写入要读数据的地址 a 
 254   1      
 255   1      
 256   1      
 257   1      ack(); 
 258   1      
 259   1      
 260   1      start(); 
 261   1      wb(0xa1); 
 262   1      ack(); 
 263   1      d=rb(); 
 264   1      noack(); 
 265   1      stop(); 
 266   1      //写入指令 0xa1,该指令表示准备对 24c02进行读操作 
 267   1      //从地址 a中读出数据 
 268   1      } 
 269          return(d); 
*** ERROR C141 IN LINE 269 OF 24C02.C: syntax error near 'return'
 270          //返回得到的数据 
 271          
 272          
 273          /****************************24c02声明结束********************************/ 
 274          
 275          
 276          /**************************************** 

⌨️ 快捷键说明

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