Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
342
Добавлен:
21.02.2014
Размер:
387.58 Кб
Скачать

2. Команды movx-имеющие отношение к памяти данных:

AT89C2051 содержит 128 байтов внутренней памяти данных. Таким образом, в AT89C2051 глубина стека ограничена 128 байтами (количеством доступной оперативной памяти). В этом устройстве доступ к внешней памяти данных не поддерживается, так же, как и внешняя память программ. Поэтому в ваших программах нельзя использовать команду MOVX [...]. Стандартный ассемблер 80C51 будет транслировать все команды, даже если они написаны в нарушении ограничений, упомянутых выше. Учитывать физические особенности и ограничения данного контроллера и корректировать используемые команды должен разработчик программного обеспечения.

Биты защиты Памяти Программ

На чипе имеются два бита защиты, каждый из которых может быть оставлен незапрограммированным (U) или быть запрограммированным (P), для реализации режимов защиты, перечисленных в таблице ниже:

Режимы защиты памяти программСостояниеLB1 LB2Режим защиты

1

U

U

Программа не блокируется.

2

P

U

Заблокирована возможность программирования.

3

P

P

То же что и режим 2, но заблокирована и проверка.

Внимание:Биты защиты могут быть стерты только во время операции "Очистка кристалла".

Режим ожиданияВ режиме ожидания, ЦП переходит в неактивное состояние, в то время как все внутренние периферийные устройства остаются активными. Режим вызывается программным путем. Содержание ОЗУ микросхемы и всех специальных регистрах остается неизменным в течение всего этого режима. Неактивный режим может быть закончен любым разрешенным прерыванием или аппаратным сбросом. P1.0 и P1.1 должны быть установлены в '0', если не используется внешняя нагрузка, или в '1' если есть внешняя нагрузка. При этом, если ждущий режим закончен аппаратным сбросом, устройство обычно возобновляет выполнение программы, с того места, где оно было прекращено. Она выполняется еще в течении двух машинных циклов прежде, чем сработает внутренний алгоритм сброса. При этом запрещен доступ внутренних аппаратных средств к внутренней ОЗУ, но доступ к линиям ввода/вывода не запрещен. Для устранения возможности непредвиденной записи через вывод порта, когда режим ожидания закончен сбросом, следующая команда после той, которая вызывала ждущий режим, не должна быть командой записи в линию порта или во внешнюю память.

Режим пониженного потребленияВ режиме пониженного потребления внутренний генератор останавливается, и команда, которая вызывает режим пониженного потребления, должна быть последней выполняемой командой. Содержимое внутреннего ОЗУ и Специальных Функциональных Регистров сохраняется до тех пор, пока не закончится режим пониженного потребления. Единственный выход из этого режима - аппаратный сброс. Сброс переопределяет SFRS, но не изменяет содержимое встроенного ОЗУ. Сброс не должен быть активизирован прежде, чем напряжение питания (VCC) будет восстановлено до его нормального значения и должен быть активным достаточно долго, чтобы позволить генератору стабилизироваться и перезагрузить систему. Линии P1.0 и P1.1 должны быть установлены в '0', если нет внешней нагрузки, или установлены в '1' если внешняя нагрузка есть.

Прошивка памяти программМикросхема AT89C2051 поставляется с внутренней памятью программ (PEROM) 2 Кб в стертом состоянии (то есть, содержимое всех ячеек равно FFH) и готовом быть запрограммированным. При программировании памяти программ за один шаг программируется один байт. Как только массив запрограммирован, для того, чтобы повторно запрограммировать любой непустой байт, весь массив памяти должен быть стерт электрически.

Внутренний Счетчик Адреса:AT89C2051 содержит внутренний счетчик адреса PEROM, который всегда сбрасывается в 000 по фронту сигнала сброса на входе RST и увеличивает свое значение на единицу при каждом положительным импульсе на входе XTAL1.

Алгоритм программированияДля программирования AT89C2051 рекомендуется следующая последовательность.

  1. Последовательность Включения питания:

  • Подключите источник питания между выводами VCC и GND микросхемы

  • Входы RST и XTAL1 подключите к линии GND

  • Остальные выводы оставьте свободными, в таком состоянии после подключения напряжения питания микросхема должна находиться не менее 10 миллисекунд

  • Установите на входе RST уровень 'H' (высокий) Установите на входе P3.2 уровень 'H'

  • Установите соответствующую комбинацию 'H' или 'L' логических уровней на входах P3.3, P3.4, P3.5, P3.7 так, чтобы выбрать один из режимов программирования, показанных в таблице Режимов Программирования PEROM в соответствии с таблицей режимов программирования. Для программирования и проверки памяти программ:

  • Установите на входах P1.0 к P1.7 байт который должен быть зашит в 000-ю ячейку памяти программ.

  • Поднимите напряжение на входе RST до 12V, для начала процесса программирования ячейки.

  • Единичный импульс на входе P3.2 прошивает выбранный байт в памяти программ или биты блокировки. Длительность цикла записи байта величина самоустанавливающаяся и обычно составляет 1.2 мс.

  • Для проверки запрограммированных данных необходимо понизить уровень сигнала на входе RST с 12V до уровня логической 1 ('H'), и установить на выводах P3.3 в P3.7 appropiate уровни. Выходные данные считываются с выводов порта P1.

  • Для программирования следующего байта, при помощи импульса на XTAL1 увеличьте значение внутреннего счетчика адреса. Установите новые данные на выводах порта P1.

  • Повторить шаги 5 до 8, изменяя данные и продвигая счетчик адреса для всего массива 2 Кб или пока не достигнут конец объектного файла.

  • Последовательность отключения питания:

    • Установите на входе XTAL1 уровень 'L'

    • Установите на входе RST уровень 'L'

    • Освободите все остальные каналы ввода/вывода

    • Снимите питание с вывода Vcc

    Опрос Данных:Микросхема AT89C2051 в процессе программирования памяти программ выдает информацию о конце цикла записи. В процессе записи байта, необходимо производить периодическое чтение последнего записанного байта. Информация о конце цикла записи содержится в бите, снимаемом с выхода P1.7. Как только цикл записи будет закончен, на всех выходных линиях установятся данные, соответствующие записываемому байту. Это сигнализирует о том, что можно начинать цикл записи следующего байта. Проверка конца цикла записи может начинать в любое время после начала цикла записи.

    Ready/Busy (Готов/занят):Ход программирования байта может контролироваться также при помощи сигнала на выходе RDY/BSY. Если в процессе программирования на выходе P3.1 установится низкий уровень сразу после того, как уровень сигнала на входе P3.2 перейдет в высокое состояние. То есть на P3.1 сигнал Busy (ЗАНЯТ). На P3.1 опять установится высокий уровень, когда программирование окончено. То есть на P3.1 сигнал Ready (ГОТОВ).

    Проверка памяти программ:Если биты LB1 блокировки и LB2 не были запрограммированы, данные кода могут считываться через линии данных для проверки:

    1. Сбросить внутренний адрес в 000, переведя уровень на входе RST с 'L' на 'H'.

    2. Установить на входах управления комбинацию сигналов, соответствующих режиму чтения, и считать выходные данные через выводы порт P1.

    3. При помощи единичного импульса на входе XTAL1 увеличить содержимое внутреннего счетчика адреса.

    4. Прочитать следующий байт данных кода через порт P1.

    5. Повторить шаги 3 и 4, пока весь массив не будет считан.

    Биты блокировки не могут быть проверены непосредственно. Проверка битов блокировки производится путем проверки того, что защита действует.

    Стирание Чипа (Chip Erase):Полный массив PEROM (2 Килобайта) и оба Бита Блокировки стираются электрически. Для этого на входах управления устанавливается соответствующая комбинация сигналов управления и удерживается низкий уровень на входе P3.2 в течении 10 мс. После этого во всем массиве кода будет записан код 0FFH. Операция Chip Erase должна быть выполнена прежде, чем любой не пустой байт памяти может быть заново запрограммирован.

    Чтение Байтов Сигнатуры:Байты сигнатуры читаются той же самой процедурой, что и обычное чтение данных при проверке по адресам 000H, 001H и 002, за исключением того, что на входы P3.5 и P3.7 должен быть подан низкий логический уровень. Возвращенные значения следующие. (000H) = 1EH если изготовитель - фирма Atmel (001H) = 21H, указывает на то, что это микросхема 89C2051

    Интерфейс для программирования 89C2051Любой байт кода может быть записан во флэш-память, и весь массив может быть стерт, используя соответствующую комбинацию сигналов управления. Микросхема имеет систему автонастройки параметров цикла записи и после начала цикла, будет автоматически определять время его завершения. Все основные продавцы программного обеспечения во всем мире предлагают поддержку для всего ряда микроконтроллеров Atmel. Пожалуйста войдите в контакт с вашим локальным продавцом программных продуктов для соответствующего программного пересмотра.

    Режимы Программирования

    Mode

    RST

    P3.2/ Prog

    P3.3

    P3.4

    P3.5

    P3.7

    Запись Данных Кода (1,3)

    12V

    L

    H

    H

    H

    Чтение Данных Кода (1)

    H

    H

    L

    L

    H

    H

    Запись Бит защиты - 1

    12V

    H

    H

    H

    H

    Запись Бит защиты - 2

    12V

    H

    H

    L

    L

    Стирание всех данных

    12V

    (2)

    H

    L

    L

    L

    Чтение Байта Сигнатуры

    H

    H

    L

    L

    L

    L

    Примечание:   1.Внутренний счетчик адресаPEROMсбрасывается в 000 по фронтуRSTи увеличивается на единицу по импульсу на выводеXTAL1.   2.Стирание всех данных требует длительности импульса PROG не менее 10 мс.   3.P3.1 устанавливается в ноль во время программирования для индикации состоянияRDY/BSY\.

  • Соседние файлы в папке курсовой проект