📄 24c00.lst
字号:
C51 COMPILER V7.50 24C00 06/07/2006 12:23:47 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 24C00
OBJECT MODULE PLACED IN 24C00.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 24C00.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #include "intrins.h"
3 #include"address.h"
4 #define uchar unsigned char
5 #define uint unsigned char
6 #define true 1
7 #define false 0
8 #define bool bit
9 #define Byte unsigned char
10 #define Word unsigned int
11 #define read 0x80
12 #define write 0x00
13
14 //私有内部函数
15 #define \
16 SomeNOP(); \
17 _nop_();_nop_();_nop_();_nop_();
18
19 //私有内部函数
20 void IICStart(void)
21 {
22 1 EA = 0;
23 1 IICDATA = 1;IICSCL = 1;SomeNOP();
24 1 IICDATA = 0;SomeNOP();
25 1 IICSCL = 0; IICDATA = 1;
26 1 }
27 //私有内部函数
28 void IICStop(void)
29 {
30 1 IICSCL = 0;IICDATA = 0;SomeNOP();
31 1 IICSCL = 1;SomeNOP();IICDATA = 1;
32 1 EA = 1;
33 1 }
34
35 //私有内部函数
36 void SendAck(void)
37 {
38 1 IICDATA = 0;SomeNOP();
39 1 IICSCL = 1;SomeNOP();
40 1 IICSCL = 0;
41 1 }
42 //私有内部函数
43 void SendNotAck(void)
44 {
45 1 IICDATA = 1;SomeNOP();
46 1 IICSCL = 1;SomeNOP();
47 1 IICSCL = 0;
48 1 }
49 //私有内部函数
50 void IICSendByte(uchar ch)
51 {
52 1 uchar i = 8;
53 1 while(i--)
54 1 {
55 2 IICSCL = 0;_nop_();
C51 COMPILER V7.50 24C00 06/07/2006 12:23:47 PAGE 2
56 2 IICDATA = (bit)(ch&0x80);ch<<=1;SomeNOP();
57 2 IICSCL = 1;SomeNOP();
58 2 }
59 1 IICSCL = 0;
60 1 }
61 //私有内部函数
62 uchar IICReceiveByte(void)
63 {
64 1 uchar i = 8;
65 1 uchar ddata = 0;
66 1 IICDATA = 1;
67 1 while(i--)
68 1 {
69 2 ddata<<=1;
70 2 IICSCL = 0;SomeNOP();
71 2 IICSCL = 1;SomeNOP();
72 2 if(IICDATA)ddata |= 0x01;
73 2 }
74 1 IICSCL = 0;
75 1 return ddata;
76 1
77 1 }
78 //私有内部函数
79 bool WaitAck(void)
80 {
81 1 IICDATA = 1;SomeNOP();
82 1 IICSCL = 1;SomeNOP();
83 1 while(IICDATA){IICStart(); IICSendByte(0xa0);IICDATA = 1;SomeNOP(); IICSCL = 1;SomeNOP();}
84 1 IICSCL = 0;
85 1 return true;
86 1 }
87
88 //***********************************
89 //**公有函数,外部接口 **
90 //***********************************
91 //写一个数据
92 void Write24c02_OneByte(unsigned char addr,unsigned char ddata)
93 {
94 1 IICStart();
95 1 IICSendByte(0xa0);
96 1 WaitAck();
97 1 IICSendByte(addr);
98 1 WaitAck();
99 1 IICSendByte(ddata);
100 1 WaitAck();
101 1 IICStop();
102 1 SomeNOP();
103 1 }
104 //读一个数据
105 unsigned char Read24c02_OneByte(unsigned char addr)
106 {
107 1 uchar temp;
108 1 IICStart();
109 1 IICSendByte(0xa0); //先写入地址,设置写
110 1 WaitAck();
111 1 IICSendByte(addr);
112 1 WaitAck();
113 1 IICStart();
114 1 IICSendByte(0xa1); //设置读
115 1 WaitAck();
116 1 temp = IICReceiveByte();
117 1 SendNotAck();
C51 COMPILER V7.50 24C00 06/07/2006 12:23:47 PAGE 3
118 1 IICStop();
119 1 return temp;
120 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 246 ----
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 + -