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

📄 24c04.lst

📁 单片机项目19-电子日历(1602显示)
💻 LST
字号:
C51 COMPILER V8.02   24C04                                                                 11/29/2011 23:42:43 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 24C04
OBJECT MODULE PLACED IN 24C04.OBJ
COMPILER INVOKED BY: D:\应用\单片机\程序\C51\BIN\C51.EXE 24C04.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          //#include<intrins.h>
   3          #define uchar unsigned char
   4          sbit sck = P1^4;
   5          sbit sda = P1^7;
   6          /****************************I2C总线开始*************************/
   7          void start_24c04(void) 
   8          {
   9   1              sda = 1;
  10   1              _nop_();sck = 1;_nop_();
*** WARNING C206 IN LINE 10 OF 24C04.C: '_nop_': missing function-prototype
*** ERROR C264 IN LINE 10 OF 24C04.C: intrinsic '_nop_': declaration/activation error
  11   1              sda = 0;_nop_();
  12   1              sck = 0;
  13   1      }
  14          /****************************I2C总线停止*************************/
  15          void stop_24c04(void) 
  16          {
  17   1              sda = 0;
  18   1              _nop_();sck = 1;_nop_();
  19   1              sda = 1;
  20   1              _nop_();
  21   1      }
  22          /*****************************应答程序**************************/
  23          void ack_24c04(void)  
  24          {
  25   1              uchar i = 255;
  26   1              sck = 1;_nop_();
  27   1              while(sda && i--);
  28   1              sck = 0;
  29   1      }
  30          //***************************I2C总线初始化************************/
  31          void init_24c04(void)
  32          {
  33   1              sda = 1;_nop_();//常态
  34   1              sck = 0;_nop_();//常态
  35   1      }
  36          /***************************读取一个字节*************************/
  37          uchar read_onebyte_24c04(void) 
  38          {
  39   1              uchar i,dat;
  40   1              sda = 1; // 释放总线
  41   1              for(i = 0;i < 8;i++)
  42   1              {
  43   2                      sck = 1;
  44   2                      dat = dat << 1;
  45   2                      if(sda)dat = dat | 0x01;
  46   2                      sck = 0;
  47   2              }
  48   1              sda = 1;sck = 0;
  49   1              return(dat);
  50   1      }
  51          /*****************************写入一个字节**********************/
  52          void write_onebyte_24c04(uchar dat) 
  53          {       
C51 COMPILER V8.02   24C04                                                                 11/29/2011 23:42:43 PAGE 2   

  54   1              uchar i;
  55   1              for(i = 0;i < 8;i++)
  56   1              {
  57   2                      sda = (bit)(dat & 0x80);
  58   2                      dat = dat << 1;
  59   2                      sck = 1;
  60   2                      sck = 0;
  61   2              }
  62   1              sck = 0;sda = 1;
  63   1      }
  64          
  65          /*********************对某个地址写一个字节的数据***********************/
  66          void write_add_dat_24c04(uchar add,uchar dat)
  67          {
  68   1              start_24c04();
  69   1              write_onebyte_24c04(0xa0);
  70   1              ack_24c04();
  71   1              write_onebyte_24c04(add);
  72   1              ack_24c04();
  73   1              write_onebyte_24c04(dat);
  74   1              ack_24c04();
  75   1              stop_24c04();
  76   1      }
  77          /********************读取某个地址一个字节的数据*******************/
  78          uchar read_add_dat_24c04(uchar add)
  79          {
  80   1              uchar dat;
  81   1              start_24c04();
  82   1              write_onebyte_24c04(0xa0);
  83   1              ack_24c04();
  84   1              write_onebyte_24c04(add);
  85   1              ack_24c04();
  86   1              start_24c04();
  87   1              write_onebyte_24c04(0xa1);
  88   1              ack_24c04();
  89   1              dat = read_onebyte_24c04();
  90   1              stop_24c04();
  91   1              return(dat);
  92   1      }

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

⌨️ 快捷键说明

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