📄 eeprom.lst
字号:
C51 COMPILER V7.09 EEPROM 04/03/2007 16:19:09 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE EEPROM
OBJECT MODULE PLACED IN EEPROM.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE EEPROM.c BROWSE
line level source
1 #include "fx2.h"
2 #include "fx2regs.h"
3 #include "io.h"
4
5 #define SERIAL_ADDR 0x50
6
7 BYTE DB_Addr; //TPM Dual Byte Address stat
8 BYTE I2C_Addr; //TPM I2C address
9
10
11 void EEPROMInit()
12 {
13 1 EZUSB_InitI2C();
14 1 // Determine I2C boot eeprom device address; addr = 0x0 for 8 bit addr eeproms (24LC00)
15 1 I2C_Addr = SERIAL_ADDR | ((I2CS & 0x10) >> 4); // addr=0x01 for 16 bit addr eeprom (LC65)
16 1 // Indicate if it is a dual byte address part
17 1 DB_Addr = (BOOL)(I2C_Addr & 0x01); //TPM: ID1 is 16 bit addr bit - set by rocker sw or jumper
18 1 }
19
20 void EEPROMWriteByte(WORD addr, BYTE value)
21 {
22 1 BYTE i = 0;
23 1 BYTE xdata ee_str[3];
24 1
25 1 if(DB_Addr)
26 1 ee_str[i++] = MSB(addr);
27 1
28 1 ee_str[i++] = LSB(addr);
29 1 ee_str[i++] = value;
30 1
31 1 EZUSB_WriteI2C(I2C_Addr, i, ee_str);
32 1 EZUSB_WaitForEEPROMWrite(I2C_Addr);
33 1 }
34
35
36 void EEPROMWrite(WORD addr, BYTE length, BYTE xdata *buf)
37 {
38 1 BYTE i;
39 1
40 1 for(i = 0; i < length; i++)
41 1 EEPROMWriteByte(addr++,buf[i]);
42 1 }
43
44 void EEPROMRead(WORD addr, BYTE length, BYTE xdata *buf)
45 {
46 1 BYTE i = 0;
47 1 BYTE j = 0;
48 1 BYTE xdata ee_str[2];
49 1
50 1 if(DB_Addr)
51 1 ee_str[i++] = MSB(addr);
52 1
53 1 ee_str[i++] = LSB(addr);
54 1
55 1 EZUSB_WriteI2C(I2C_Addr, i, ee_str);
C51 COMPILER V7.09 EEPROM 04/03/2007 16:19:09 PAGE 2
56 1
57 1 EZUSB_ReadI2C(I2C_Addr, length, buf);
58 1 }
59
60
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 218 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 5
PDATA SIZE = ---- ----
DATA SIZE = 2 12
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 + -