📄 dvs-eeprom.lst
字号:
C51 COMPILER V7.06 DVS_EEPROM 02/27/2009 16:14:57 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DVS_EEPROM
OBJECT MODULE PLACED IN dvs-eeprom.OBJ
COMPILER INVOKED BY: D:\Program Files\keil2.0\C51\BIN\C51.EXE dvs-eeprom.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //dvs-eeprom.C
2 //===========================================================================================
3 //24c02用于存放开机密码和本机编码
4 //0,1开机标致,23456是密码 (6为设置标致)
5 //7振铃次数的设置标致的地址
6 //8为警笛时间定时
7 //9球机定时间地址
8 //10 315解码后的首地址
9
10 //46 防区标志首地址
11 //55 电话号码,每组号码20位,每组第1位为设置标致位
12 //===========================================================================================
13 #include "DVS-V1.0.H"
14 #include <intrins.h>
15
16 bit ErrorBit ; //读写错误标志 ,1错误 0 正确
17
18 //========================================== 函数定义 ========================================
19 void Delay1Ms(unsigned int auc_time); //延时1ms*auc_time
20 void WrEEPROM(unsigned char address,unsigned char indata); //写EEPROM
21 unsigned char RdEEPROM(unsigned char address); //读EEPROM
22 //============================================================================================
23
24
25
26 //============================================================================================
27 //语法格式:Delay1Ms
28 //实现功能:延时1ms*auc_time
29 //参数: 需要延时的时间
30 //1表示1ms
31 //返回值: 无
32 //创建时间:2008-12-01 修改时间:
33 //创建人员: 修改人员:
34 //============================================================================================
35 void Delay1Ms(unsigned int auc_time)
36 {
37 1 unsigned int idata luc_i,luc_j;
38 1 for(luc_j = 0 ;luc_j < auc_time ; luc_j++)
39 1 {
40 2 for(luc_i=0;luc_i<310;luc_i++)
41 2 {
42 3 // ClearWatchDog();
43 3 }
44 2 }
45 1 }
46
47
48
49
50
51 //============================================================================================
52 //语法格式:Delay4us
53 //实现功能:延时4us
54 //参数: 无
55 //返回值: 无
C51 COMPILER V7.06 DVS_EEPROM 02/27/2009 16:14:57 PAGE 2
56 //创建时间:2008-12-01 修改时间:
57 //创建人员: 修改人员:
58 //============================================================================================
59 void Delay4Us()
60 {
61 1 unsigned char idata luc_i;
62 1 for(luc_i=0;luc_i<8;luc_i++)
63 1 {
64 2 ;
65 2 //ClearWatchDog();
66 2 }
67 1 }
68
69
70
71
72 //============================================================================================
73 //语法格式:Start()
74 //实现功能:EEPROM读写的开始
75 //参数: 无
76 //返回值: 无
77 //创建时间:2008-12-01 修改时间:
78 //创建人员: 修改人员:
79 //============================================================================================
80 void Start()
81 {
82 1 EEROM_SCL=0; //低电平改变DA线
83 1 EEROM_SDA=1;
84 1 EEROM_SCL=1;
85 1 Delay4Us();
86 1 EEROM_SDA=0;
87 1 Delay4Us();
88 1 EEROM_SCL=0;
89 1 }
90
91
92
93
94
95
96 //============================================================================================
97 //语法格式:Stop()
98 //实现功能:EEPROM读写的停止
99 //参数: 无
100 //返回值: 无
101 //创建时间:2008-12-01 修改时间:
102 //创建人员: 修改人员:
103 //============================================================================================
104 void Stop()
105 {
106 1 EEROM_SCL=0;
107 1 EEROM_SDA=0;
108 1 EEROM_SCL=1;
109 1 Delay4Us();
110 1 EEROM_SDA=1;
111 1 Delay4Us();
112 1 EEROM_SCL=0;
113 1 }
114
115
116
117 //============================================================================================
C51 COMPILER V7.06 DVS_EEPROM 02/27/2009 16:14:57 PAGE 3
118 //语法格式:RdOperation()
119 //实现功能:EEPROM读1字节
120 //参数: 无
121 //返回值: 无
122 //创建时间:2008-12-01 修改时间:
123 //创建人员: 修改人员:
124 //============================================================================================
125 unsigned char RdOperation(void)
126 {
127 1 unsigned char idata luc_time; // 一个字节
128 1 unsigned char idata luc_DataIn=0; // 读进来的数据
129 1 for(luc_time=0;luc_time<8;luc_time++)
130 1 {
131 2 EEROM_SCL=0;
132 2 Delay4Us();
133 2 EEROM_SCL=1;
134 2 Delay4Us();
135 2 luc_DataIn=(luc_DataIn<<1)|EEROM_SDA;
136 2 }
137 1 EEROM_SCL=0;
138 1 Delay4Us();
139 1 EEROM_SDA=1;
140 1 Delay4Us();
141 1 EEROM_SCL=1;
142 1 return luc_DataIn;
143 1 }
144
145 //============================================================================================
146 //语法格式:WrOperation()
147 //实现功能:EEPROM写1字节
148 //参数: 写入的数
149 //返回值: 无
150 //创建时间:2008-12-01 修改时间:
151 //创建人员: 修改人员:
152 //============================================================================================
153 void WrOperation(unsigned char DataOut)
154 {
155 1 unsigned char idata luc_i ; //一个字节
156 1 for(luc_i = 0 ; luc_i < 8 ; luc_i ++)
157 1 {
158 2 EEROM_SDA = DataOut & 0x80; //送数据到数据线上
159 2 DataOut <<= 1;
160 2 _nop_();
161 2 EEROM_SCL = 1; //置时钟信号为高电平,使数据有效
162 2 Delay4Us();
163 2 EEROM_SCL = 0;
164 2 _nop_();
165 2 _nop_();
166 2 }
167 1 EEROM_SDA = 1;
168 1 _nop_();
169 1 _nop_();
170 1 EEROM_SCL = 1;
171 1 Delay4Us();
172 1 ErrorBit = EEROM_SDA;
173 1 EEROM_SCL = 0;
174 1 }
175
176 //============================================================================================
177 //语法格式:WrEEPROM()
178 //实现功能: 写EEPROM
179 //参数:
C51 COMPILER V7.06 DVS_EEPROM 02/27/2009 16:14:57 PAGE 4
180 //address 写入的地址
181 //indata 写入的数据
182 //返回值: 无
183 //创建时间:2008-12-01 修改时间:
184 //创建人员: 修改人员:
185 //============================================================================================
186 void WrEEPROM(unsigned char address,unsigned char indata)
187 {
188 1 //ClearWatchDog();
189 1 Start(); //开始
190 1 WrOperation(0xa0); //写器件地址
191 1 WrOperation(address); //写EEPROM地址
192 1 WrOperation(indata); //写数据
193 1 Stop(); //停止
194 1 Delay1Ms(8); //延时,EEPROM内部操作
195 1 while(0);
196 1 }
197
198 //============================================================================================
199 //语法格式:RdEEPROM(
200 //实现功能: 读EEPROM
201 //参数:
202 //address 读出的地址
203 //返回值: 读出的数据
204 //创建时间:2008-12-01 修改时间:
205 //创建人员: 修改人员:
206 //============================================================================================
207 unsigned char RdEEPROM(unsigned char address)
208 {
209 1 unsigned char idata luc_x;
210 1 //ClearWatchDog();
211 1 Start();
212 1 WrOperation(0xa0); //写器件地址
213 1 WrOperation(address);
214 1 Start();
215 1 WrOperation(0xa1); //写EEPROM地址(读)
216 1 luc_x=RdOperation();
217 1 Stop();
218 1 return luc_x;
219 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 267 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- 9
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -