📄 text1.lst
字号:
C51 COMPILER V8.05a TEXT1 07/04/2008 19:32:44 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit sda=P1^0;
5 sbit scl=P1^1;
6 void IIC_delay(uchar x);
7 void flash();
8 void x24c02_init();
9 void start();
10 void stop();
11 void writex(uchar j);
12 uchar readx();
13 void clock();
14 uchar x24c02_read(uchar address);
15 void x24c02_write(uchar address,uchar info);
16 void delay10ms(void);
17 void IIC_delay(uchar x)
18 {
19 1 uint i;
20 1 for(i=0;i<x;i++);
21 1 }
22
23 void flash()
24 { ; ; }
25 void x24c02_init() //24c02初始化子程序
26 {
27 1 scl=1;
28 1 flash();
29 1 sda=1;
30 1 flash();
31 1 }
32 void start() //启动I2C总线
33 {
34 1 sda=1;
35 1 flash();
36 1 scl=1;
37 1 flash();
38 1 sda=0;
39 1 flash();
40 1 scl=0;
41 1 flash();
42 1 }
43 void stop() //停止I2C总线
44 {
45 1 sda=0;
46 1 flash();
47 1 scl=1;
48 1 flash();
49 1 sda=1;
50 1 flash();
51 1 }
52 void writex(uchar j) //写一个字节
53 {
54 1 uchar i,temp;
55 1 temp=j;
C51 COMPILER V8.05a TEXT1 07/04/2008 19:32:44 PAGE 2
56 1 for (i=0;i<8;i++)
57 1 {
58 2 temp=temp<<1;
59 2 scl=0;
60 2 flash();
61 2 sda=CY;
62 2 flash();
63 2 scl=1;
64 2 flash();
65 2 }
66 1
67 1 scl=0;
68 1 flash();
69 1 sda=1;
70 1 flash();
71 1 }
72 uchar readx() //读一个字节
73 {
74 1 uchar i,j,k=0;
75 1 scl=0;
76 1 flash();
77 1 sda=1;
78 1 for (i=0;i<8;i++)
79 1 {
80 2 flash();
81 2 scl=1;
82 2 flash();
83 2 if (sda==1) j=1;
84 2 else j=0;
85 2 k=(k<<1)|j;
86 2 scl=0;
87 2 }
88 1 flash();
89 1 return(k);
90 1 }
91 void clock() //I2C总线时钟
92 {
93 1 uchar i=0;
94 1 scl=1;
95 1 flash();
96 1 while ((sda==1)&&(i<255))i++;
97 1 scl=0;
98 1 flash();
99 1 }
100
101 ////////从24c02的地址address中读取一个字节数据/////uchar x24c02_read(uchar address)
102 uchar x24c02_read(uchar address)
103 {
104 1 uchar i;
105 1 start();
106 1 writex(0xa0);
107 1 clock();
108 1 writex(address);
109 1 clock();
110 1 start();
111 1 writex(0xa1);
112 1 clock();
113 1 i=readx();
114 1 stop();
115 1 IIC_delay(10);
116 1 return(i);
117 1 }
C51 COMPILER V8.05a TEXT1 07/04/2008 19:32:44 PAGE 3
118
119 //////向24c02的address地址中写入一字节数据info/////
120
121 void x24c02_write(uchar address,uchar info)
122 {
123 1 EA=0;
124 1 start();
125 1 writex(0xa0);
126 1 clock();
127 1 writex(address);
128 1 clock();
129 1 writex(info);
130 1 clock();
131 1 stop();
132 1 EA=1;
133 1 IIC_delay(100);
134 1 }
135 main()
136 {
137 1 x24c02_init();
138 1 x24c02_write(00,0x11);
139 1 P3=x24c02_read(00);
140 1 while(1);
141 1 }
142
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 252 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -