📄 i2c.lst
字号:
C51 COMPILER V7.07 I2C 06/10/2005 08:13:56 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE I2C
OBJECT MODULE PLACED IN i2c.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE i2c.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include "main.h"
3 #include "i2c.h"
4 void i2c_writ2(uchar bat );
5 uchar i2c_rea2(bit ack) ;
6 void i2c_start(void);
7 void delay_5us();
8 //#define ADDR 0x50
9
10
11 void i2c_start()
12 {
13 1 SCL=1;delay_5us();
14 1 SDA=1;delay_5us();
15 1 SDA=0;delay_5us();
16 1 SCL=0;delay_5us();
17 1 }
18 void i2c_stop()
19 {
20 1 SCL=0;//wu
21 1 SDA=0;delay_5us();
22 1 SCL=1;delay_5us();
23 1 SDA=1;delay_5us();
24 1
25 1
26 1 }
27 /**--------------------------------------------------------------------------------
28 调用方式:bit I2CAck(void) ﹫200 /07/0 4
29 函数说明:私有函数,I2C用,等待从器件接收方的应答
30 ---------------------------------------------------------------------------------*/
31
32 /**--------------------------------------------------------------------------------
33 调用方式:void SendAck(void) ﹫200 /07/0 4
34 函数说明:私有函数,I2C用,主器件为接收方,从器件为发送方时,非应答信号。
35 --------------------------------------------------------------------------------*/
36
37
38 //------------------------------------------------
39
40
41 /*
42 要求温度的数据为*100/25的整数;或为*4的整数 例如10度,输入的数据为40
43 */
44 /*void write_7416T (uchar adr1,uchar adr2,uint dat)//adr1 is 0x02 or 0x00;
45 {
46 dat=dat<<6; // when adr2 is 0x02 express TL ,0x03 express TO (over
- temp)
47 i2c_start();
48 i2c_writ2(0x90|adr1);
49 i2c_writ2(adr2);
50 i2c_writ2((uchar)(dat>>8) );
51 i2c_writ2((uchar)dat);
52 i2c_stop();
53 delay(5);//20
54 } */
C51 COMPILER V7.07 I2C 06/10/2005 08:13:56 PAGE 2
55 void write_7416C(uchar adr1) //adr1 is 0x02 or 0x00;
56 {
57 1 i2c_start();
58 1 i2c_writ2(0x90|adr1);
59 1 i2c_writ2(0x01);
60 1 i2c_writ2(0x10); //2 fault OTI level is low ,比较模式在高出高位值后发生低跳变,低于低设定值后恢
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -