📄 iic总线.lst
字号:
C51 COMPILER V8.08 IIC譥线 04/10/2009 11:06:43 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE IIC譥线
OBJECT MODULE PLACED IN iic总线.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE iic总线.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<intrins.h>
3 #define unchar unsigned char
4 sbit SCL=P1^5;
5 sbit SDA=P1^6;
6 sbit lag=P1^4;
7 sbit dula=P2^0;
8 sbit wela=P2^1;
9
10 void delay1 (int a )
11 { int i,j;
12 1 for(i=0;i<a;i++)
13 1 for(j=0;j<100;j++);
14 1 }
15 void delay()
16 { unchar i=3;
17 1 while(i--);}
18 void init()
19 { SCL=1;
20 1 delay();
21 1 SDA=1;
22 1 delay();
23 1 }
24 void start()
25 {
26 1 SCL=1;
27 1 delay();
28 1 SDA=0;
29 1 delay();
30 1 SCL=0;
31 1 delay();
32 1 }
33 void stop()
34 {
35 1 SDA=0;
36 1 delay();
37 1 SCL=1;
38 1 delay();
39 1 SDA=1;
40 1 delay();
41 1 }
42 void response()
43 { int i;
44 1 SCL=1;
45 1 delay();
46 1 while(SDA==1&&i<255)
47 1 i++;
48 1 SCL=0;
49 1 delay();
50 1
51 1 }
52 void write_byte(char date)
53 { unchar i, temp;
54 1 SCL=0;
55 1 delay();
C51 COMPILER V8.08 IIC譥线 04/10/2009 11:06:43 PAGE 2
56 1 temp=date;
57 1 for (i=0;i<8;i++)
58 1 { temp=temp<<1;
59 2 SCL=0;
60 2 delay();
61 2 SDA=CY;
62 2 SCL=1;
63 2 delay();
64 2 SCL=0;
65 2 delay();
66 2 }
67 1
68 1 SDA=1;
69 1 delay();
70 1
71 1 }
72 unchar read_byte()
73 { unchar i,temp;
74 1 SCL=0;
75 1 delay();
76 1 SDA=1;
77 1 delay();
78 1 for(i=0;i++;i<8)
79 1 { SCL=1;
80 2 delay();
81 2 temp=temp<<1;
82 2 temp=temp|SDA;
83 2 SCL=0;
84 2 delay();
85 2 }
86 1 return (temp);
87 1 }
88 void write_add(unchar add,unchar date)
89 {start();
90 1 write_byte(0xa0);
91 1 response();
92 1 write_byte(add);
93 1 response();
94 1 write_byte(date);
95 1 response();
96 1 stop();
97 1 }
98 unchar read_add(unchar add)
99 { unchar a;
100 1 start();
101 1 write_byte(0xa0);
102 1 response();
103 1 write_byte(add);
104 1 response();
105 1
106 1 start();
107 1 write_byte(0xa1);
108 1 response();
109 1 a=read_byte();
110 1 stop();
111 1 return a;
112 1 }
113 main()
114 { lag=0;
115 1 init();
116 1 write_add(0x80,0x00);
117 1 delay1(100);
C51 COMPILER V8.08 IIC譥线 04/10/2009 11:06:43 PAGE 3
118 1 wela=1;
119 1 P0=read_add(0x80);
120 1 wela=0;
121 1 while(1);
122 1 }
123
124
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 306 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -