ВУЗ:
Составители:
59
мендуется осуществлять в соответствии со следующим типовым алгоритмом.
Сначала производится запись в регистр EADRL значения адреса страни-
цы, к которой будет производиться обращение, затем в регистры EDATA1-
EDATA заносятся данные, которые будут записываться в память, если предпо-
лагается выполнить цикл записи. При выполнении цикла чтения в эти регистры
заносить ничего не нужно. В заключение производится запись управляющего
слова в регистр ECON, которая инициирует запуск выполнения одной из пяти
команд (табл. 1.16). С момента записи в ECON ядро микроконтроллера
ADuC824 начинает работать в холостом режиме до тех пор, пока запущенный
цикл программирования или стирания не закончится. Это означает, что после
выполнения инструкции MOV, производящей запись константы в регистр
ECON, что по времени занимает два машинных цикла, следующая инструкция
не будет выполняться до тех пор, пока не завершится операция записи во
Flash/EE-память (в течение 250 мкс или 2 мс). Пока длится запись, ядро
ADuC824 не будет реагировать на запросы прерывания, хотя некоторые пери-
ферийные устройства, например, таймеры-счетчики будут продолжать рабо-
тать.
Хотя МК поставляется со стертой Flash/EE-памятью данных (во все ее
ячейки записан код 0FFh), тем не менее, в составе целевого программного
обеспечения рекомендуется иметь подпрограмму стирания всего массива памя-
ти. Команда «стереть все» заключается в записи кода 06h в регистр ECON, что
инициирует стирание всех 640 байт массива Flash/EE-памяти данных. Эта опе-
рация в мнемониках ассемблера 8051, выглядит следующим образом:
MOV ECON, #06h ;команда «стереть все»
;аппаратная задержка 2 мс
Значение произвольного байта в массиве Flash/EE-памяти данных можно
модифицировать только в том случае, если он был предварительно стерт, т. е.
если туда был записан код 0FFh. Специфика структурной организации
Flash/EE-памяти МК такова, что стирание можно производить только постра-
нично, поэтому при запуске команды стирания байта физически произойдет
стирание всей включающей его страницы, состоящей из четырех байт.
Рассмотрим следующий пример. Пусть требуется записать код F3h во
второй байт страницы с адресом 03h массива памяти данных. Три оставшихся
байта этой страницы уже содержат какие-то данные, потерять которые нежела-
тельно. Для избежания потерь данных содержимое страницы перед ее стирани-
ем сохраняется в специальных регистрах данных EDATA1 – EDATA4. Моди-
фикация требуемого байта производится не в самой странице, а в соответст-
вующем регистре данных. После этого страница перезаписывается целиком со-
держимым EDATA1 – EDATA4. В мнемониках ассемблера 8051 описанная по-
следовательность действий выглядит следующим образом:
Страницы
- « первая
- ‹ предыдущая
- …
- 57
- 58
- 59
- 60
- 61
- …
- следующая ›
- последняя »