ВУЗ:
Составители:
204
MOV R0,#NACH_ADR ;установка начального адреса
Lk_0: MOV @R0,#0 ;обнуление очередного РОНа
INC R0 ;переход к следующему адресу
CJNE R0,#KON_ADR,Lk_0 ;не достигли ли последнего адреса ?
MOV @R0,#0 ;обнуление последнего РОНа
RET ;да, выход
;Подключение модулей опроса кнопок, вывода данных на ЖКИ (с опросом ЖКИ)
;и преобразования представления чисел
$INCLUDE (C:\PR_ADUC\EEPROM\knop.asm)
$INCLUDE (C:\PR_ADUC\EEPROM\lcd_opr.asm)
$INCLUDE (C:\PR_ADUC\EEPROM\preobr.asm)
;Конец исполняемого кода
END
Следует заметить, что для программных записи и чтения отдельных бай-
тов данных и, в особенности, массивов данных аппаратная организация
EEPROM ADuC824 представляется несколько неудобной. Необходимость адре-
совать страницу памяти и конкретный байт данных внутри страницы создают
определенные сложности при написании и оптимизации прикладного пользова-
тельского программного обеспечения. В предлагаемом примере демонстриру-
ется работа пользовательской программы, которая производит операции с
EEPROM ADuC824 в более простой и привычной для разработчиков форме.
Ячейка EEPROM в программе адресуется в пределах области в 256 байт восе-
мью разрядами (одним байтом) адреса. Запись байта данных в EEPROM произ-
водит подпрограмма Pod_WR_EEPROM. Записываемый байт данных следует
предварительно поместить в регистр EEDATA_R, а адрес записи – в регистр
EEADR_R. Запись производится в нижнюю (младшую) часть EEPROM
ADuC824 в пределах всех возможных значений EEADR_R. После осуществле-
ния записи подпрограмма производит проверку правильности записи. Проверка
реализована как выполнение команды верификации данных в странице
EEPROM, куда производилась запись данных. В случае ошибки верификации
подпрограмма делает вывод об ошибке записи байта данных и устанавливает
пользовательский флаг ошибки записи _ERR_WR_EE. Анализ состояния этого
флага можно в реальном проекте возложить на основную программу. В данном
примере состояние этого флага программа не анализирует. Вызываемые из
Pod_WR_EEPROM подпрограммы Pod_EEADR и Pod_EEDATA_WR осущест-
вляют при записи преобразование адреса байта, содержащегося в регистре
EEADR_R соответственно в адрес страницы и в адрес байта внутри страницы.
Шестибитовый адрес страницы формируется из адреса байта путем двойного
сдвига содержимого EEADR_R вправо и выделения из результата младших
шести бит. Эта операция эквивалентна делению содержимого EEADR_R на 4.
Информацию об адресе байта внутри страницы несут два младших бита
EEADR_R.
Подпрограмма Pod_RD_EEPROM производит чтение байта данных из
EEPROM по адресу, который предварительно следует поместить в EEADR_R.
Прочитанный байт данных возвращается в EEDATA_R. Вызываемые из
Страницы
- « первая
- ‹ предыдущая
- …
- 202
- 203
- 204
- 205
- 206
- …
- следующая ›
- последняя »
