Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002
.pdfГЛАВА 2. АРХИТЕКТУРА MCS-51 |
99 |
T2M0D I - |
I - |
| |
| |
| |
| |
| T20E | DCEN I |
|
Имя |
Номер |
|
|
|
Функция |
|
|
бита |
бита |
|
|
|
|
|
|
Т20Е |
T2MOD.1 |
Бит разрешения выдачи сигнала программируемой частоты от |
|||||
DCEN |
T2MOD.O |
Таймера 2 на внешний вывод Р1.0. |
|
|
|||
Бит разрешения счета Таймера 2 в режиме автоперезагрузки. При |
|||||||
|
|
Т20Е=1 |
счет разрешен в прямом или обратном направлении, в за |
||||
|
|
висимости от значения сигнала на входе Т2ЕХ. При Т20Е = 0 (значе |
|||||
|
|
ние после сброса) счет разрешен в прямом |
направлении. |
Бит DCEN этого регистра после сброса очищен. При этом Таймер 2 в режиме автоперезагрузки считает в прямом направлении. Если бит DCEN установлен, направление счета определяется значением внешнего сигнала на входе Т2ЕХ. Бит EXF2 при этом не является флагом прерывания и может служить в качестве индикатора переполнения при счете в прямом и обратном направлениях. При Т2ЕХ = 1 счет идет в прямом направлении, при переполнении устанавливается флаг прерывания TF2 и осуществляет ся перезагрузка счетных регистров ТН2, TL2 заранее запрограммирован ными значениями из регистров RCAP2H, RCAP2L. При Т2ЕХ = 0 счет идет в обратном направлении, при достижении значения, занесенного в регистры RCAP2H, RCAP2L, устанавливается флаг прерывания TF2 и осуществляется перезагрузка счетных регистров ТН2, TL2 16-разрядным значением 0FFFFH.
Таймер 2 имеет два флага запросов прерывания, TF2 и EXF2. Оба за проса обслуживаются с использованием одного вектора 2ВН. Идентифи кацию запроса производит процедура обслуживания прерывания. Флаг TF2 устанавливается при переполнении счетного регистра Таймера 2 (RCLK = TCLK = 0), а флаг EXF2 устанавливается по перепаду «1» - «0» на входе Т2ЕХ, если EXEN2 = 1.
В режиме задающего генератора (RCLK = 1 или TCLK = 1 ) приемник или передатчик последовательного порта тактируются синхроимпульсами, формируемыми при переполнении счетного 16-разрядного регистра Тайме ра 2. При C /T 2# = 0 скорость работы последовательного порта определя ется формулой:
Скорость = Fosc/[32*(65536 - (RCAP2H, RCAP2L))].
Значение регистров RCAP2H,RCAP2L для нужной скорости обмена можно получить по формуле:
RCAP2H, RCAP2L = 65536 - Fosc/(3 2 - Скорость).
Fout = F o s c / [4*(65536 - (R C A P 2H , R C A P 2L ))].
100 |
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
Последовательный порт. У микроконтроллеров 8хС52 последователь ный порт имеет функции определения ошибки кадра и автоматического распознавания адреса.
•Определение ошибки кадра. Эта функция реализуется через про верку уровня сигнала во время интервала времени, когда на линии должен проходить стоп-бит. Проверка выполняется при работе в ре жимах 1, 2, 3. Если стоп-бит в определенное время не обнаружен, ус танавливается флаг ошибки кадра FE. Этот флаг делит с битом управления SM0 один и тот же разряд SCON.7. Бит SMODO (PCON.6) указывает при обращении на бит управления или на флаг ошибки кадра (см. выше формат регистра PCON). Флаг FE может проверяться после каждой операции приема. Сбрасываться этот флаг должен программно, прием правильного кадра не сбрасывает ранее установленного флага FE.
•Автоматическое распознавание адреса. При работе нескольких микропроцессоров по одному последовательному каналу ведущий мо жет обратиться к ведомому по индивидуальному адресу, либо к группе ведомых по широковещательному адресу. Для хранения индивидуального адреса введен регистр спецфункций SADDR (адрес
0А9Н), а для хранения маски - регистр SADEN (адрес 0В9Н). Именно маска дает возможность адресовать в каждый момент одно или несколько устройств. Например:
ведомый 1 |
|
SADDR |
11110001 |
SADEN |
11111010 |
Адрес отклика |
11110Х0Х |
вед омый 2 |
|
SADDR |
11110011 |
SADEN |
11111001 |
Адрес отклика |
11110ХХ1 |
В приведенном примере в адресе первого ведомого замаскирован бит О, в то время как для выбора второго ведомого этот бит должен быть ра вен 1. Следовательно, для обращения к ведомому1 младший бит адреса должен быть равен 0 (например 11110000). Аналогично, 6ит1 = 0 для ве домого! и замаскирован у ведомого2. Для обращения к ведомому2 6ит1 адреса должен быть равен 1 (например 11110111). Для обращения к обоим ведомым одновременно могут быть использованы адреса, где битО - 1 и бит1 = 0 (широковещательными являются адреса 11110001 и 11110101).
Система прерываний. Включает шесть источников запросов - к ис ходной системе добавлено прерывание от Таймера 2, который имеет два флага (TF2 и Т2ЕХ). Это прерывание с вектором 002ВН. Таблица при оритетов прерываний при внутреннем иоллинге следующая:
ГЛАВА 2 АРХИТЕКТУРА MCS-51 |
101 |
Приоритеты прерываний 8052 при поллинге |
|
Источник |
Приоритет внутри уровня |
Вход INTO# |
Высший |
Таймер 0 |
|
Вход I NT 1 # |
|
Таймер 1 |
|
Последовательный порт |
|
Таймер 2, флаг TF2 |
|
Таймер 2, флаг Т2ЕХ |
Низший |
Число уровней приоритетов увеличено до трех. Система прерываний 8хС52 обслуживается регистрами IE, IP и IPH:
IE |
ЕА |
- |
ЕТ2 |
ES |
ET1 |
EX1 |
ЕТО |
ЕХО |
IP |
- |
- |
РТ2 |
PS |
PT1 |
PX1 |
PTO |
РХО |
IPH |
- |
- |
РТ2Н |
PSH |
PT1H |
PX1H |
PTOH |
РХОН |
Имя |
Номер |
Функция |
бита |
бита |
Запрещение запросов от всех источников, имеет место при ЕА = 0. |
ЕА |
IE.7 |
|
|
IE.6 |
Зарезервирован. |
ЕТ2 |
IE.5 |
Запрещение запроса от Таймера 2, имеет место при ЕТ2 = 0. |
ES |
IE.4 |
Запрещение запроса от последовательного порта, имеет место при |
|
|
ES = 0. |
ЕТ1 |
IE.3 |
Запрещение запроса от Таймера 1, имеет место при ЕТ1 = 0. |
ЕХ1 |
IE.2 |
Запрещение запроса по входу INT1 #, имеет место при ЕХ1 = 0. |
ЕТО |
IE.1 |
Запрещение запроса от Таймера 0, имеет место при ЕТО = 0. |
ЕХО |
IE.0 |
Запрещение запроса по входу INTO#, имеет место при ЕХО = 0. |
|
IP.7 |
Зарезервирован. |
|
IP.6 |
Зарезервирован. |
РТ2 |
IP.5 |
Определяет приоритет Таймера 2. |
PS |
IP.4 |
Определяет приоритет последовательного порта. |
РТ1 |
IP.3 |
Определяет приоритет Таймера 1. |
РХ1 |
IP.2 |
Определяет приоритет входа INT1#. |
РТО |
IP.1 |
Определяет приоритет Таймера 0. |
РХО |
IP.O |
Определяет приоритет входа INTO#. |
- |
IPH.7 |
Зарезервирован. |
-IPH.6 Зарезервирован.
РТ2Н |
IPH.5 |
Определяет приоритет Таймера 2, старший бит. |
PSH |
IPH.4 |
Определяет приоритет последовательного порта, старший бит. |
РТ1Н |
IPH.3 |
Определяет приоритет Таймера 1, старший бит. |
РХ1Н |
IPH.2 |
Определяет приоритет входа INT1, старший бит #. |
РТОН |
IPH.1 |
Определяет приоритет Таймера 0, старший бит. |
РХОН |
IPH.O |
Определяет приоритет входа INTO#, старший бит. |
Уровень приоритета конкретного источника определяется значением комбинации битов IPH.x и IP.x (х = 0..6) следующим образом:
102 |
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
|
IPH.x |
IP.X |
Приоритет |
0 |
0 |
Уровень 0 (низший) |
0 |
1 |
Уровень 1 |
1 |
0 |
Уровень 2 |
1 |
1 |
Уровень 3( высший) |
Режим ONCE. Отладочный режим ONCE позволяет производить от ладку и тестирование платы без удаления микроконтроллера (при запаян ной микросхеме). Для перевода микроконтроллера в этот режим необхо димо подать на вывод ALE сигнал логического «О» в процессе сброса и ийициализации (сигнал PSEN# при этом имеет пассивный уровень «1») и удерживать его до снятия сигнала RESET.
В режиме ONCE линии порта РО находятся в третьем состоянии. Ли нии других портов, а также сигналы ALE и PSEN находятся в состоянии логической «1». Это позволяет внешнему активному устройству управлять магистралью микропроцессорной системы.
Выход из режима ONCE производится посредством общего сброса.
2 .12 . Микроконтроллеры семейства АТ89 фирмы Atmel
Микроконтроллеры с архитектурой MCS-51 фирмы Atmel - одно из первых семейств, все представители которого имеют версию с flashпамятью программ. Такой подход обеспечил популярность продукции фирмы Atmel среди разработчиков. Последовавшее снижение стоимости микроконтроллеров и выпуск семейства AVR, все представители которого также имеют flash-память и возможность внутрисистемного программиро вания, заставили такие фирмы, как Motorola, Philips, Texas Instruments, Microchip активизировать программы выпуска flash-микроконтроллеров.
Семейство микроконтроллеров фирмы Atmel с flash-памятью программ и ядром MCS-51 имеет маркировку «89». Это правило поддерживается другими производителями аналогичных микроконтроллеров - Philips, Temic, SST, ISSI, за исключением фирмы Winbond, выпускающей семей ства W77 и W78. Номенклатура семейства АТ89 приведена в следующей таблице.
В последней строке приведены параметры микроконтроллера, выпус каемого подразделением полупроводников фирмы Temic. Но, так как это подразделение в настоящее время приобретено фирмой Atmel и называется теперь Atmel Wireless and Microcontrollers, то можно включить микрокон троллер «51RD2» в семейство АТ89.
ГЛАВА 2 АРХИТЕКТУРА MCS-51 |
103 |
Микроконтроллеры фирмы Atmel семейства АТ89
Тип |
Flas |
RAM |
|
h |
|
AT89C1051U |
1К |
128 |
АТ89С2051 |
2К |
128 |
АТ89С4051 |
4К |
256 |
АТ89С51 |
4К |
128 |
AT89LV51 |
4К |
128 |
АТ89С52 |
8К |
256 |
AT89LV52 |
8К |
256 |
AT89C55WD |
20К |
256 |
AT89LV55 |
20К |
256 |
AT89S8252 |
8К |
256 |
AT89LS8252 |
8К |
256 |
AT89S53 |
12К |
256 |
AT89LS53 |
12К |
256 |
AT89S4D12 |
4К |
128 |
AT89C51RC |
32К |
256 |
T89C51RD2 |
64К |
256 |
Питание |
Частота, |
Корпус |
Комментарии |
ЗВ, 5В |
МГц |
DIP20.SOIC20 |
|
12, 24 |
lout, low = 20 mA |
||
ЗВ, 5В |
12, 24 |
DIP20.SOIC20, |
lout,low = 20 mA |
ЗВ, 5В |
12, 24 |
DIP20.SOIC20 |
lout,low = 20 mA |
5В |
24,33 |
DIP40, PLCC44, |
|
|
|
TQFP44 |
|
ЗВ, 5В |
12 |
DIP40, PLCC44, |
|
5В |
|
TQFP44 |
|
24,33 |
DIP40, PLCC44, |
|
|
|
|
TQFP44 |
|
ЗВ, 5В |
12 |
DIP40, PLCC44, |
|
5В |
|
TQFP44 |
WD, 2 DPTR |
24,33 |
DIP40, PLCC44, |
||
ЗВ, 5В |
|
TQFP44 |
|
12 |
PLCC44, TQFP44 |
|
|
5В |
24 |
DIP40, PLCC44, |
ISP, SPI, WD, |
|
|
TQFP44 |
2K EEPROM, |
|
|
|
2 DPTR |
ЗВ, 5В |
12 |
DIP40, PLCC44, |
ISP, SPI, |
|
|
TQFP44 |
2K EEPROM, |
5В |
|
|
2 DPTR |
24 |
DIP40, PLCC44, |
ISP, SPI, |
|
ЗВ, 5В |
|
TQFP44 |
2 DPTR |
12 |
DIP40, PLCC44, |
ISP, SPI, |
|
|
|
TQFP44 |
2 DPTR |
ЗВ |
12 |
SOIC32 |
128K DataFlash, |
|
|
|
ISP, SPI |
5В |
24,33 |
DIP40, PLCC44, |
256 bytes XRAM, |
ЗВ, 5В |
|
TQFP44 |
2 DPTR |
40 |
DIP40, PLCC44, |
ISP, Boot Flash, |
|
|
|
VQFP44, VQFP64, |
1К XRAM, |
|
|
PLCC68 |
2K EEPROM, |
|
|
|
2 DPTR, PCA |
В таблице использованы следующие обозначения:
lout,low - нагрузочная способность выходов в состоянии логического
•«нуля».
ISP (In-System Programmability) - возможность программирования в сис теме.
Boot Flash - наличие области flash-памяти для размещения пользователь ского монитора-загрузчика памяти.
XRAM - дополнительная RAM на кристалле, доступная как внешняя па мять данных с использованием команд MOVX.
WD - Watchdog, сторожевой таймер.
РСА (Programmable Counter Array) - многорежимный программируемый таймер.
104 СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ
Количество циклов перепрограммирования для микроконтроллеров семейства АТ89 составляет не менее 1000.
По маркировке микроконтроллеров семейства АТ89 можно определить ряд параметров кристалла.
Буква «С» после имени семейства (АТ89С) указывает, что кристалл выполнен по CMOS технологии и параметры соответствуют аналогичным микросхемам других фирм (Intel 80С51, Philips 87С52 и т.д.).
Обозначение AT89LV отличает версии кристаллов с пониженным на пряжением питания (2.7В).
Маркировку AT89S имеют микроконтроллеры, имеющие режим внут рисистемного программирования (ISP) через интерфейс SPI.
Микроконтроллеры AT89LS аналогичны AT89S, но имеют пониженное напряжение питания (2.7В).
Существует два основных ядра микроконтроллеров семейств MCS-51:
•С51, «родоначальник», стандартное ядро, включающее 128 байт RAM, 2 таймера-счетчика;
•С52, модифицированное ядро, имеет 256 байт RAM и 3 таймера-
счетчика.
Маркировка С55 (или С54, С58 у других фирм) указывает на увели ченный объем памяти программ - от 16 до 32К.
Микроконтроллеры AT89C51RC и T89C51RD2 являются представите лями серии «C51Rx», введенной фирмами Intel и Philips. Отличительные особенности этой серии - наличие дополнительной памяти данных на кри сталле и второго указателя данных DPTR.
Рассмотрим подробнее особенности микроконтроллеров семейства АТ89.
2.12.1. Программирование flash-памяти программ
В микроконтроллерах АТ89С предусмотрен параллельный режим про граммирования flash-памяти. Для записи информации требуется подать напряжение программирования +12В, а для управления используются поч ти все линии портов. Поэтому процесс программирования flash-памяти вы полняется на специализированных программаторах ПЗУ.
В микроконтроллерах AT89S кроме параллельного режима програм мирования имеется последовательный режим, через интерфейс SPI. При использовании последовательного режима не требуется внешнего напряже ния программирования +12В, так как на кристалле предусмотрен преобра зователь напряжения. Для загрузки flash-памяти необходимо управлять четырьмя линиями - RESET, SCK (Р1.7), MOSI (Р1.5), MISO (Р1.6).
Если при разработке проекта на базе микроконтроллеров AT89Sxx преду смотреть возможность подключения к перечисленным линиям внешнего программирующего устройства, то легко обеспечивается возм ож н ость об
ГЛАВА 2 АРХИТЕКТУРА MCS-51 |
105 |
|
новления встроенного программного обеспечения (upgrade). Этот меха низм называется внутрисистемным программированием - ISP (in-system programmability). Простой способ реализации цепей ISP в схеме показан на рис. 2.17.
4-6 в
AT89Sxx |
|
|
Vcc |
ХР1 |
|
MOSI/P1.5 |
MOSI |
Разъем для |
MISO/P1 6 |
MISO |
внутрисистемного |
SCK/P1 7 |
STK |
программирования |
RST |
RST |
|
4 - 2 4 МГц |
|
|
XTAL2 |
Gnd |
|
XTAL1 |
|
|
Gnd |
R1-R4 |
|
|
Reset |
|
|
к периферийным |
|
|
цепям |
|
Рис. 2.17. Способ реализации цепей ISP
Программирующее устройство подключается непосредственно к мик роконтроллеру через соединитель ХР1. Для устранения конфликтов меж ду сигналами программирования и периферийными устройствами, под ключенными к тем же портам, установлены резисторы R1-R4. Алгоритм внутрисистемного программирования описан в параграфе 2.12.7.
Так как в интерфейсе типа SPI импульсы синхронизации формирует ведущее устройство (в нашем случае это внешнее программирующее уст ройство), а частота импульсов не ограничена снизу, то для программиро вания можно использовать, например, порт LPT компьютера. При этом временная диаграмма обмена формируется программно. В лаборатории «Микропроцессорные системы» МИФИ для этой цели используется ка бель ByteBlaster, специфицированный фирмой Altera для внутрисистемной загрузки конфигурации ПЛИС.
2.12.2. Микроконтроллеры AT89S
Отличительными особенностями этой серии являются:
• EEPROM память данных (только у AT89S8252);
106 |
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
•последовательный интерфейс SPI;
•сторожевой таймер (Watchdog);
•два регистра-указателя данных DPTR.
Карта адресного пространства регистров специальных функций микро контроллеров AT89S приведена на рис. 2.18.
FB |
|
|
|
|
|
|
FF |
F0 |
В |
|
|
|
|
|
F7 |
Е8 |
00000000 |
|
|
|
|
|
EF |
|
|
|
|
|
|
||
ЕО |
АСС |
|
|
|
|
|
E7 |
D8 |
00000000 |
|
|
|
|
|
DF |
|
|
|
|
|
|
||
00 |
PSW |
|
|
|
|
|
D7 |
|
00000000 |
|
|
|
|
£ |
|
С8 |
T2CON |
T2MOD |
RCAP2L |
RCAP2H |
TL2 |
ТН2 |
CF |
СО |
00000000 |
00000000 |
00000000 |
00000000 |
00000000 |
00000000 |
C7 |
|
|
|
|
|
|
||
В8 |
IP |
|
|
|
|
|
BF |
ВО |
ХООООООО |
|
|
|
|
|
B7 |
РЗ |
|
|
|
|
|
||
|
11111111 |
|
|
|
|
|
|
А8 |
IE |
|
|
|
|
|
AF |
|
00000000 |
|
|
|
|
|
A7 |
АО |
Р2 |
|
|
|
|
|
|
|
1111111 |
|
|
|
|
|
|
98 |
SCON |
SBUF |
|
|
|
|
9F |
|
00000000 |
хххххххх |
|
|
|
Vtotoo# |
|
90 |
Р1 |
|
|
|
|
97 |
|
|
11111111 |
|
|
|
|
,'V M W w V i4 tf: |
|
88 |
TCON |
TMOD |
TL0 |
TL1 |
ТНО |
ТН1 |
8F |
80 |
00000000 |
00000000 |
00000000 |
00000000 |
00000000 |
00000000 |
87 |
Р0 |
SP |
DPL |
DPH |
|
PCON |
||
|
11111111 |
00000111 |
00000000 |
00000000 |
|
ш ш ш 00x0000 |
|
Рис. 2.18. Регистры специальных функций микроконтроллеров AT89Sxx
Управление доступом к EEPROM, сторожевым таймером и переклю чение указателей DPTR производится через регистр WMCON (адрес 096h). Биты этого регистра не входят в битовое адресное пространство микроконтроллера. Для установки битов можно использовать инструкцию
ORL WMCON, #OrMask.
Если имя WMCON не поддерживается используемым компилятором, то можно объявить его как константу:
WMCON .equ 096h,
где OrMask - это константа, содержащая «1» в тех битах, которые нужно установить.
ГЛАВА 2. АРХИТЕКТУРА MCS-51 |
107 |
Аналогично, для сброса битов можно использовать инструкцию
ANLWMCON, # AndMask,
где And Mask - это константа, содержащая «О» в тех битах, которые нужно сбросить.
WMCON | PS21 PS1 | PSO | EEMWE | EEMEN | DPS | WDTRST | WDTEn ]
Имя |
Номер |
Функция |
бита |
бита |
|
PS2 |
WMCON.7 |
Установка периода срабатывания сторожевого таймера в диапазо |
PS1 |
WMCON.6 |
не от 16 мс (по умолчанию) до 2048 мс. |
PS0 |
WMCON. 5 |
Бит разрешения записи в EEPROM. Перед записью нужно устано |
EEMWE |
WMCON.4 |
|
|
|
вить в “1". По окончании записи в EEPROM нужно установить в “0". |
EEMEN |
WMCON.3 |
Бит разрешения доступа к EEPROM. Когда бит установлен в “1" |
|
|
инструкции MOVX, использующие DPTR, обеспечивают доступ к |
|
|
EEPROM. Если бит равен 0”, то производится обращение к внеш |
|
|
ней памяти данных. |
DPS |
WMCON. 2 |
Выбор регистра DPTR. При DPS=0 в качестве DPTR используется |
WDTRST |
|
пара DP0H:DP0L, а при DPS=1 пара DP1H:DP1L. |
WMCON. 1 |
Бит сброса сторожевого таймера и флаг занятости EEPROM. При |
|
RDY/BSY |
|
записи "1" в этот бит генерируется импульс сброса Watchdog и |
|
|
затем бит автоматически сбрасывается в "0". При чтении обраще |
|
|
ние идет к флагу, отражающему состоние EEPROM: если "0”, то |
|
|
процесс записи байта данных не закончен, если "1", то EEPROM |
WDTEN |
WMCON. 0 |
готова к записи. |
Бит разрешения сторожевого таймера. При WDTEN = 1 таймер |
||
|
|
Watchdog запщен и будет генерировать импульс Reset микро |
|
|
контроллера с периодом, заданным битами PS2 - PS0. |
В микроконтроллере AT89S53 память EEPROM отсутствует, поэтому биты 4 и 5 зарезервированы, а регистр называется WCON.
Память EEPROM. Этот вид энергонезависимой памяти отличается от flash-памяти тем, что допускает перезапись одного байта без стирания ин формации в остальных. Ячейка EEPROM занимает значительно больше места на кристалле, чем ячейка flash-памяти, поэтому стоимость EEPROM выше. Количество циклов перепрограммирования также выше - не менее
100000.
В микроконтроллерах AT89S8252 блок памяти данных EEPROM дос тупен так же, как внешняя память данных, инструкциями MOVX A,@DPTR и MOVX @DPTR,A. Для доступа к памяти EEPROM нужно установить бит EEMEN регистра WMCON. Для записи данных в EEPROM нужно дополнительно установить бит EEMWE регистра WMCON. В процессе записи бит RDY/BSY регистра WMCON находится в состоянии «0», по окончании записи этот бит переходит в состояние «1». Кроме того, окончание записи байта можно проверять циклическим чтени
108 |
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
ем байта: пока запись не закончена старший бит данных читается в ин версном виде.
Пример процедуры записи байта в EEPROM:
mov A,#data |
данные для записи |
mov DPTR,#Address |
;адрес в памяти |
orl WMCON,#18h |
установим биты разрешения EEMEN и EEMWE |
movx ©DPTR,А |
инициируем запись |
Loop: |
;цикл ожидания конца записи байта |
mov A,WMCON |
;читаем содержимое регистра управления |
jnb ACC. 1, Loop |
проверяем бит RDY/BSY |
anl WMCON,#E7h |
дались закончена, сбросим EEMEN и EEMWE |
Watchdog — сторожевой таймер. Watchdog приобретает все боль шую популярность у производителей микроконтроллеров. Он предназна чен для формирования сброса микроконтроллера на аппаратном уровне, если прикладная программа выполняет неконтролируемые действия, на пример, «зависла». Время срабатывания Watchdog устанавливается про граммно в пределах 16..2048 мс. В течение заданного времени программа должна выполнить процедуру сброса таймера Watchdog. Управление сто рожевым таймером производится через регистр WMCON.
Для запуска Watchdog нужно установить бит WDTEN в «1». Период срабатывания таймера задается битами PS2-PS0:
PS2 |
PS1 |
PS0 |
Период |
||
0 |
0 |
0 |
16 мс |
||
0 |
0 |
1 |
32 |
мс |
|
0 |
1 |
0 |
64 |
мс |
|
0 |
1 |
1 |
128 |
мс |
|
1 |
0 |
0 |
256 |
мс |
|
1 |
0 |
1 |
512 |
мс |
|
1 |
1 |
0 |
1024 мс |
||
1 |
1 |
1 |
2048 мс |
Для сброса сторожевого таймера следует записать «1» в бит WDTRST. Так как данный бит регистра WMCON разделяет функции с битом занятости EEPROM, то проверять его для оценки состояния Watch dog не имеет смысла.
Два регистра-указателя данных DPTR. Стандартное ядро MCS-51 имеет один 16-разрядный указатель данных для доступа к полному про странству памяти программ и данных. При использовании памяти данных объемом более 256 байт это единственный указатель, обеспечивающий дос туп к памяти. В результате, при обработке сложных структур данных его требуется часто перезагружать и, что еще более неудобно, сохранять те кущее состояние перед загрузкой. Введение второго 16-разрядного указа теля облегчает программирование и позволяет ускорить обработку данных.
Второй регистр-указатель данных расположен по адресам 84h и 85h. В каждый момент времени доступен только один из двух регистров, поэтому все инструкции, работающие с DPTR, сохраняют свои функции. Бит D P S