реклама на сайте
подробности

 
 
> Keil C, AT89S8253, содержимое ячеек внутренней EEPROM
black_priest
сообщение Aug 9 2009, 20:06
Сообщение #1





Группа: Участник
Сообщений: 4
Регистрация: 9-08-09
Пользователь №: 51 806



Товарищи, не подскажите, есть ли способ в тексте программы на С задать начальные значания ячеек EEPROM, которые потом соответственно перекочуют в hex и оттуда в контроллер при прошивке?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
an_ga
сообщение Aug 23 2009, 18:52
Сообщение #2





Группа: Участник
Сообщений: 7
Регистрация: 8-11-08
Из: Киев
Пользователь №: 41 471



Код
void ram_eeprom(void data*,void xdata*,unsigned char);
void eeprom_ram(void xdata*,void data*,unsigned char);

unsigned int xdata KeyClock_ee;
.
.
.
ram_eeprom(&KeyClock,&KeyClock_ee,sizeof(KeyClock));
.
.
.
eeprom_ram(&KeyClock_ee,&KeyClock,sizeof(KeyClock));
Это основная программа на С.

А это функции на ассемблере:


NAME EEPROM_MODULE

EEPROM_MODULE SEGMENT CODE
PUBLIC _eeprom_ram,_ram_eeprom

sfr EECON   = 0x96; Memory Control Register

    rseg eeprom_module

;---------------------------------------------------------------
;Перенос данных из EEPROM в ОЗУ
;В R0 адрес в ОЗУ, куда переносим
;В DPTR адрес в EEPROM, откуда берем
;В R3 сколько байт
;---------------------------------------------------------------
_eeprom_ram:
    mov    dph,r6;откуда из EEPROM
    mov    dpl,r7
    mov    a,r5;куда в RAM
    mov    r0,a

    orl    EECON,#00001000b;включаем EEPROM
rd_eeprom:
    movx    a,@dptr
    mov    @r0,a
    inc    dptr
    inc    r0
    djnz    r3,rd_eeprom
    anl    EECON,#11110111b;выключаем EEPROM
    ret
;--------------------------------------
;Перенос данных из ОЗУ в EEPROM
;В R0 адрес в ОЗУ, откуда берем
;В DPTR адрес в EEPROM, куда переносим
;В R3 сколько байт
;--------------------------------------
_ram_eeprom:
    mov    a,r7;откуда из RAM
    mov    r0,a
    mov    dph,r4;куда в EEPROM
    mov    dpl,r5

    orl    EECON,#00011000b;включаем EEPROM, разрешаем запись
ram_ee:
    mov    a,EECON
    jnb    acc.1,ram_ee;ждем готовности EEPROM (RDY/BSY=1)

    mov    a,@r0
    movx    @dptr,a
    inc    dptr
    inc    r0
wwr2:
    mov    a,EECON
    jnb    acc.1,wwr2;ждем готовности EEPROM (RDY/BSY=1)

    djnz    r3,ram_ee
    anl    EECON,#11100111b;выключаем EEPROM, запрещаем запись

    ret

    END


Писал в Keil.

Сообщение отредактировал an_ga - Aug 23 2009, 18:52
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- black_priest   Keil C, AT89S8253, содержимое ячеек внутренней EEPROM   Aug 9 2009, 20:06
- - Палыч   Имхо, Keil "заточен" под классические МК...   Aug 10 2009, 07:10
- - black_priest   Спасибо за ответ. Видимо действительно нет способа...   Aug 10 2009, 13:34
- - Rimid   Например в Ride'е можно написать Кодorg 2000h ...   Aug 11 2009, 19:13
- - valser2007   Добрый день. Люди помогите! В Keil на С51 при ...   Oct 11 2009, 20:32
|- - AndreyS   Цитата(valser2007 @ Oct 12 2009, 00:32) Д...   Oct 12 2009, 05:52
- - valser2007   Добрый день. Спасибо AndreyS. Написал программу на...   Oct 12 2009, 16:58
- - valser2007   Добрый день. Опять проблемы с Keil. Не пойму, или ...   Oct 24 2009, 09:17
|- - Палыч   Цитата(valser2007 @ Oct 24 2009, 12:17) П...   Oct 24 2009, 17:37
- - valser2007   Спасибо Палыч. Не знаешь где взять описание как по...   Oct 25 2009, 09:16
|- - Палыч   Цитата(valser2007 @ Oct 25 2009, 12:16) Н...   Oct 25 2009, 15:46
- - valser2007   В том то и дело, что ничего не набирается. Ни цифр...   Oct 25 2009, 16:36
|- - Палыч   Цитата(valser2007 @ Oct 25 2009, 19:36) В...   Oct 26 2009, 06:34
- - valser2007   Спасибо Палыч. Разобрался с прогами и сделал как с...   Oct 26 2009, 22:55


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 02:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.0134 секунд с 7
ELECTRONIX ©2004-2016