?? 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 + -