Mã cho AT89S8252 eeprom lập trình trong k * E * i * L?

M

mrcube_ns

Guest
Ai có thể miêu tả làm thế nào để programm eeprom trong AT89S8252 từ ứng dụng của tôi tại Úc.Tôi sử dụng k * il.

Một số ví dụ mã nguồn sẽ được tốt đẹp.

Cảm ơn trước.

Mr.Cube

 
Của tôi "C" mã
Xin lỗi, nhưng bạn cần phải đăng nhập để xem tập tin đính kèm này

 
Hãy thử này!

////////////////////////////////////////////////// /////////////////
void write_eeprom_byte (int adr, unsigned char val)
(
WMCON | = (EEMEN_ | EEMWE_); / / enable EEPROM và đặt viết bit
DelayMs (5);
XBYTE [adr] = val; / / ghi giá trị
trong khi ((WMCON & EERDY_) == 0) / / đợi cho đến khi giá trị được lập trình
DelayMs (5);
WMCON & = ~ (EEMWE_ | EEMEN_); / / disable EEPROM và viết strobe
)
////////////////////////////////////////////////// /////////////////
unsigned char read_eeprom_byte (int adr)
(
unsigned char v;

WMCON | = EEMEN_; / / enable EEPROM
v = XBYTE [adr]; / / đọc giá trị
WMCON & = ~ EEMEN_; / / disable EEPROM
return (v);
)
////////////////////////////////////////////////// /////////////////

/ / Write_eeprom_word
/ / Đầu vào: unsigned addr 0x000-0x7ff
/ / Int dataword (16 bit, chiều dài)
/ / Output:
/ / Gọi: write_eeprom_byte ()
/ / Called bởi:
void write_eeprom_16 (int addr, int dataword) (
char i;
char * ptr = & dataword;

for (i = 0; i <sizeof (dataword); i ) (
write_eeprom_byte (addr i, * ptr);
ptr ;
)
)
////////////////////////////////////////////////// /////////////////

/ / Read_eeprom_word
/ / Đầu vào: unsigned addr 0x000-0x7ff
/ / Output: int dataword đọc (16 bit, chiều dài)
/ / Called bởi: write_eeprom_word ()
int read_eeprom_16 (int addr) (
char i;
unsigned dataword;
char * ptr = & dataword;for (i = 0; i <sizeof (dataword); i ) (
* ptr = read_eeprom_byte (addr i);
ptr ;
)
dataword trở lại;
)
////////////////////////////////////////////////// //////////////

 
Xin lỗi quên đề cập đến.Bạn sẽ cần phải thay thế DelayMs với bất kỳ thói quen mà bạn sử dụng để cung cấp cho sự chậm trễ khoảng 5ms.

 

Welcome to EDABoard.com

Sponsor

Back
Top