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

📄 driverpcf8583.lst

📁 基于MCS-51的电子指南针完整程序包 如果需要原理图的
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   DRIVERPCF8583                                                         05/27/2008 00:23:22 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DRIVERPCF8583
OBJECT MODULE PLACED IN .\4.Obj\DriverPCF8583.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3.Source\DriverPCF8583.c BROWSE INCDIR(.\2.Inc) DEBUG OBJECTEXTEND PRINT(.\
                    -5.List\DriverPCF8583.lst) OBJECT(.\4.Obj\DriverPCF8583.obj)

line level    source

   1          #include <reg52.h>
   2          #include "PinDefine.h"
   3          #include "DriverPCF8583.h"
   4          #include <intrins.h>
   5          
   6           /********************************************************************************************************
             -********************
   7           **函数名称:I2C总线启动                                                                                  
             -                  **
   8           **函数功能:启动信号                                                                                     
             -                  **   
   9           **入口参数:无                                                                                           
             -                  **
  10           **出口参数:无                                                                                           
             -                  **
  11           **具体资源:无                                                                                           
             -                  **
  12           **调用程序:无                                                                                           
             -                  **
  13           **备    注:                                                                                             
             -                  **
  14           *********************************************************************************************************
             -*******************/
  15          void IIC_Start(void)
  16          {
  17   1           EA   = 0; 
  18   1           SDA  = 1;
  19   1           SCL  = 1;  
  20   1           _nop_();
  21   1           SDA  = 0;
  22   1           _nop_();
  23   1           SCL  = 0;
  24   1       }
  25          
  26          
  27           /********************************************************************************************************
             -********************
  28           **函数名称:I2C总线结束信号                                                                              
             -                  **
  29           **函数功能:结束I2C总线                                                                                  
             -                  **   
  30           **入口参数:无                                                                                           
             -                  **
  31           **出口参数:无                                                                                           
             -                  **
  32           **具体资源:无                                                                                           
             -                  **
  33           **调用程序:无                                                                                           
             -                  **
  34           **备    注:                                                                                             
             -                  **
  35           *********************************************************************************************************
             -*******************/
  36          void IIC_Stop(void)
C51 COMPILER V8.08   DRIVERPCF8583                                                         05/27/2008 00:23:22 PAGE 2   

  37          {
  38   1          SDA = 0;
  39   1          SCL = 0;
  40   1          _nop_();
  41   1          SCL = 1;
  42   1          _nop_();
  43   1          SDA = 1; 
  44   1          EA = 1;   
  45   1       }
  46          
  47          
  48           /********************************************************************************************************
             -********************
  49           **函数名称:SendByte                                                                                     
             -                  **
  50           **函数功能:发送一个字节                                                                                 
             -                  **   
  51           **入口参数:显示位置                                                                                     
             -                  **
  52           **出口参数:无                                                                                           
             -                  **
  53           **具体资源:无                                                                                           
             -                  **
  54           **调用程序:无                                                                                           
             -                  **
  55           **备    注:                                                                                             
             -                  **
  56           *********************************************************************************************************
             -*******************/
  57          void  IICSendByte(unsigned char tx_byte)
  58          {
  59   1          unsigned char i;
  60   1          for (i=0;i<8;i++) {
  61   2              if (tx_byte & 0x80) {
  62   3                  SDA = 1;     
  63   3              }else{ 
  64   3                  SDA = 0;
  65   3              }
  66   2              tx_byte <<= 1;   
  67   2              SCL = 1;  
  68   2              _nop_();  
  69   2              SCL = 0;  
  70   2          }
  71   1       }
  72          
  73          
  74           /********************************************************************************************************
             -********************
  75           **函数名称:WaitACK                                                                                      
             -                  **
  76           **函数功能:等待ACK                                                                                      
             -                  **   
  77           **入口参数:无                                                                                           
             -                  **
  78           **出口参数:无                                                                                           
             -                  **
  79           **具体资源:无                                                                                           
             -                  **
  80           **调用程序:无                                                                                           
             -                  **
  81           **备    注:                                                                                             
             -                  **
C51 COMPILER V8.08   DRIVERPCF8583                                                         05/27/2008 00:23:22 PAGE 3   

  82           *********************************************************************************************************
             -*******************/
  83          void IIC_WaitAck(void)
  84          {
  85   1          unsigned char waitTime = 0xff;  
  86   1          SDA = 1;  
  87   1          SCL = 1;  
  88   1          _nop_();
  89   1          while(SDA) {
  90   2              waitTime--;
  91   2              if (!waitTime) {
  92   3                  SCL = 0;
  93   3                  IIC_Stop();
  94   3              }
  95   2          }
  96   1          SCL = 0; 
  97   1       }
  98          
  99          
 100           /********************************************************************************************************
             -********************
 101           **函数名称:IICRcvByte                                                                                   
             -                     **
 102           **函数功能:接收一个字节                                                                                 
             -                  **   
 103           **入口参数:无                                                                                           
             -                  **
 104           **出口参数:接收到的一个字节                                                                             
             -                  **
 105           **具体资源:无                                                                                           
             -                  **
 106           **调用程序:无                                                                                           
             -                  **
 107           **备    注:                                                                                             
             -                  **
 108           *********************************************************************************************************
             -*******************/
 109          unsigned char  IICRcvByte(void)
 110          {
 111   1          unsigned char tmp = 0;
 112   1          unsigned char i;
 113   1      
 114   1          for (i=0;i<8;i++) {
 115   2              SCL = 0;
 116   2              SDA = 1;
 117   2              _nop_();
 118   2              SCL = 1;
 119   2              _nop_();
 120   2              tmp <<= 1;
 121   2              if (SDA) {
 122   3                  tmp |= 0x01;
 123   3              }
 124   2          }
 125   1          SCL = 0;

⌨️ 快捷键说明

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