📄 driverpcf8583.lst
字号:
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 + -