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

📄 cat1161.lst

📁 压缩包中包括多个常用的汇编
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   CAT1161                                                               10/09/2005 20:45:32 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE CAT1161
OBJECT MODULE PLACED IN E:\C51PRJ\APPNEW\CAT1161.OBJ
COMPILER INVOKED BY: d:\keil\c51\BIN\C51.EXE E:\C51PRJ\APPNEW\CAT1161.C DB SB OE

line level    source

   1          /****************************************************************************/
   2          /*                                                                          */
   3          /*               Copyright (c) 2005, 老树工作室                             */
   4          /*                   All rights reserved.                                   */
   5          /*                                                                          */
   6          /*      http://www.saintone.net      Email:hxm0902@163.com                  */
   7          /*      QQ:112431149                 Tel:010-62966630                       */
   8          /*                                                                          */
   9          /****************************************************************************/
  10          /****************************************************************************/
  11          /* 文件名:cat1161.c                                                        */
  12          /* 版  本:Version 1.0                                                      */
  13          /* 描  述:cat1161的eeprom读写试验代码                                      */
  14          /* 作  者:spot                                                             */
  15          /* 函  数:                                                                 */
  16          /*         iic_wait                                                         */
  17          /*         iic_start                                                        */
  18          /*         iic_stop                                                         */
  19          /*         iic_ack                                                          */
  20          /*         iic_no_ack                                                       */
  21          /*         iic_wait_ack                                                     */
  22          /*         iic_send_byte                                                    */
  23          /*         iic_receive_byte                                                 */
  24          /*                                                                          */
  25          /* 历史记录:                                                               */
  26          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
  27          /****************************************************************************/
  28          #include <reg52.h>
  29          #include <absacc.h>
  30          #include <intrins.h>
  31          #include "../includes/types.h"
  32          
  33          sbit SDA = P0^5;           /* iic数据传送位 */
  34          sbit SCL = P0^4;           /* iic时钟控制位 */
  35          
  36          /* 函数声明 */
  37          void iic_wait(void);       /* iic延时       */
  38          void iic_start(void);      /* 开启iic总线   */
  39          void iic_stop(void);       /* 关闭iic总线   */
  40          void iic_ack(void);        /* 发送ACK信号   */
  41          void iic_no_ack(void);     /* 发送NOACK信号 */
  42          bit iic_wait_ack(void);    /* 等待ACK信号   */
  43          void iic_send_byte(u_char demand);               /* MCU向iic设备发送一个字节 */
  44          u_char iic_receive_byte(void);                   /* MCU从iic设备接收一个字节 */
  45          void write_iic_data(u_char write_data[], u_char address, u_char num); /* 向iic设备写入N个字节 */
  46          void read_iic_data(u_char read_data[], u_char address, u_char num);   /* 从iic设备读取N个字节 */
  47          /* 声明结束 */
  48          
  49          /* iic延时       */
  50          void iic_wait(void)
  51          {
  52   1          _nop_();
  53   1          _nop_();
  54   1          _nop_();
  55   1          _nop_();
C51 COMPILER V7.09   CAT1161                                                               10/09/2005 20:45:32 PAGE 2   

  56   1          _nop_();
  57   1          _nop_();
  58   1      }
  59          
  60          /* 开启iic总线   */
  61          void iic_start(void)
  62          {
  63   1          SDA = 1;
  64   1          SCL = 1;
  65   1          iic_wait();
  66   1          SDA = 0;
  67   1          iic_wait();
  68   1          SCL = 0;
  69   1      }
  70          
  71          /* 关闭iic总线   */
  72          void iic_stop(void)
  73          {
  74   1          SDA=0;
  75   1          SCL=0;
  76   1          iic_wait();
  77   1          SCL=1;
  78   1          iic_wait();
  79   1          SDA=1;
  80   1      }
  81          
  82          /* 发送ACK信号   */
  83          void iic_ack(void)
  84          {
  85   1          SDA=0;
  86   1          iic_wait();
  87   1          SCL=1;
  88   1          iic_wait();
  89   1          SCL=0;
  90   1      }
  91          
  92          /* 发送NOACK信号 */
  93          void iic_no_ack(void)
  94          {
  95   1          SDA=1;
  96   1          iic_wait();
  97   1          SCL=1;
  98   1          iic_wait();
  99   1          SCL=0;
 100   1      }
 101          
 102          /****************************************************************************/
 103          /* 函数名:iic_wait_ack                                                     */
 104          /* 功  能:等待ACK信号                                                      */
 105          /* 作  者:spot                                                             */
 106          /* 输  入:无                                                               */
 107          /* 输  出:1-ACK         0-ERROR                                            */
 108          /*                                                                          */
 109          /* 历史记录:                                                               */
 110          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
 111          /****************************************************************************/
 112          bit iic_wait_ack(void)
 113          {
 114   1          u_char errtime=255;
 115   1      
 116   1          SDA=1;
 117   1          iic_wait();
C51 COMPILER V7.09   CAT1161                                                               10/09/2005 20:45:32 PAGE 3   

 118   1          SCL=1;
 119   1          iic_wait();
 120   1      
 121   1          while(SDA)
 122   1          {
 123   2              errtime--;
 124   2              if(!errtime)
 125   2                  return 0;
 126   2          }
 127   1      
 128   1          SCL=0;
 129   1          return 1;
 130   1      }
 131          
 132          /****************************************************************************/
 133          /* 函数名:iic_send_byte                                                    */
 134          /* 功  能:MCU向iic设备发送一个字节                                         */
 135          /* 作  者:spot                                                             */
 136          /* 输  入:                                                                 */
 137          /*         sbyte                  待发送的字节数据                          */
 138          /*                                                                          */
 139          /* 输  出:无                                                               */
 140          /*                                                                          */
 141          /* 历史记录:                                                               */
 142          /*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
 143          /****************************************************************************/
 144          void iic_send_byte(u_char sbyte)
 145          {
 146   1          u_char i = 8;
 147   1      
 148   1          while(i--)
 149   1          {
 150   2              SCL = 0;
 151   2              _nop_();
 152   2              SDA = (bit)(sbyte&0x80);
 153   2              sbyte <<= 1;
 154   2              iic_wait();
 155   2              SCL = 1;
 156   2              iic_wait();
 157   2          }
 158   1      

⌨️ 快捷键说明

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