[an error occurred while processing this directive]
Вновь о AT89S8252, DPTR1 и DP1L.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
Finder 23 ноября 2002 г. 08:42
|
|
|
|
;AT89S8252
DPS EQU 00000100B ;DPTR select bit
EEMEN EQU 00001000B ;EEPROM access enable bit
EEMWE EQU 00010000B ;EEPROM write enable bit
ORG 30H
ORL WMCON,#EEMEN ;enable EEPROM ecces
ORL WMCON,#EEMWE ;enable EEPROM write
XRL WMCON,#DPS ;switch data pointer to DPTR1
MOV DP1L,#010H
MOV DP1H,#00H
MOV A,#07H
MOVX @DPTR,A ;данные оказываются в ячейке 0000H EEPROM, а не в 0010H,
;как хотелось бы.
MOV DPTR,#03A5H ;регистры DP1L, DP1H НЕ ИЗМЕНЯЮТСЯ!!!
END
;ПОДСКАЖИТЕ, плз, в чем я ошибаюсь?
;Благодарю всех ответивших!
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Вариант ORL WMCOH, 01Ch - запись EEPROM - ANL WMCOH, 0E3h — AU (25.11.2002 19:45, пустое)
- Ответ: А слабо вместо XRL использовать MOV WMCON, 01CH к примеру ? Или вообще начихать на второй DPTR и использвать DP1H, DP1L просто как ячейки памяти + делать обмен по XCH, например ? — AU (25.11.2002 19:42, пустое)
- Ответ: MOV DPTR,#03A5H ;регистры DP1L, DP1H НЕ ИЗМЕНЯ_ЮТСЯ!!! - всё правильно, ибо DPTR в архитектуре MSC-51 ОДИН ! Остальное - наворот для MOVX — AU (25.11.2002 19:30, пустое)
- Хм. А почему XRL? Хоть гарантия-то есть, что на входе DPS=0 ? — SM (23.11.2002 21:47, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru