- •Аналоговые и цифровые устройства автоматики
- •Глава 1. Архитектура и устройство
- •1.1. Внутренняя организация мк
- •1.2. Назначение выводов микросхемы мк
- •1.3. Организация памяти в мк
- •1.4. Регистр состояния программы psw
- •1.5. Таймеры/счетчики, регистры tmod и tcon
- •1. 6. Режимы работы таймеров/счетчиков
- •Структура прерываний мк
- •1.8. Блок последовательного интерфейса мк
- •1.8.1. Последовательная передача информации
- •1.8.2. Последовательный порт однокристального мк
- •1.8.3. Регистр управления последовательным портом scon
- •1.8.4. Режимы работы последовательного порта
- •1.8.5. Асинхронный обмен (режимы 1,2,3) данными
- •1.8.6. Скорость приёма/передачи
- •1.8.7. Работа мк в локальной сети
- •1.9. Системный сброс однокристального мк
- •1.10. Режим пониженного энергопотребления мк
- •1.11. Нагрузочная способность портов ввода/вывода
- •1. 12. Расширение портов ввода/вывода
- •Глава 2. Система команд однокристальных мк семейства mcs51
- •Способы адресации операндов
- •2.2. Команды мк
- •2.3. Правила написания программ на языке assembler
- •Метка операция операнд(ы) комментарии
- •2.3.1. Метка
- •2.3.2. Операция
- •2.3.3. Операнды
- •2.3.4. Комментарий
- •2.4. Директивы ассемблера
- •2.4.1. Директивы символических определений
- •Пример:
- •Ozu_org xdata 0800h; Адрес начала области внешнего озу.
- •2.4.2. Директивы резервирования и инициализации памяти
- •2.4.3. Директивы управления состоянием ассемблера
- •Глава 3. Обработка данных в однокристальных микроконтроллерах
- •3.1. Обращение к внутренней, внешней памяти данных и памяти программ
- •3.2. Арифметические операции
- •3.3. Логические операции
- •3.4. Операции с битами
- •Глава 4. Взаимодействие однокристального мк с объектом управления
- •4.1. Программный опрос и ожидание срабатывания позиционных датчиков
- •4.2. Ожидание импульсного сигнала
- •4.3. Программирование таймеров/счетчиков и формирование дискретных управляющих сигналов
- •4.4. Программирование прерываний в микропроцессорном устройстве
- •4.5. Программирование последовательного порта
- •Глава 5. Аппаратные средства
- •5.1. Ввод информации с клавиатуры
- •5.1.1. Прямое подключение клавиш к разрядам порта мк
- •В блоке основной программы происходит инициализация системы, разрешение прерываний, а затем выполняется основная программа.
- •Применение шифратора для организации клавиатуры
- •Шифратора
- •5.1.3. Матричный способ подключения клавиатуры
- •5.1.4. Комбинированный способ организации клавиатуры
- •5.2. Отображение информации в микропроцессорном устройстве
- •5.2.1. Контроллер клавиатуры и дисплея к580вв79 ( intel 8279 )
- •5.2.2. Матричные светодиодные индикаторы
- •5.2.3. Жидкокристаллический дисплей
- •Ввод аналоговых сигналов в микропроцессорный контроллер
- •Ацп с параллельными цифровыми выходами
- •5.3.2. Применение ацп с последовательным выходом
- •5.3.3. Применение таблиц для вычисления функций
- •5.4. Формирование управляющих аналоговых сигналов
- •5.5. Построение ацп с использованием цап
- •5.6. Микропроцессорный контроллер как управляющее устройство в системах автоматического регулирования
- •Согласование дискретных датчиков и исполнительных механизмов с однокристальным мк
- •5.8. Контроль напряжения питания в микропроцессорных системах
- •Глава 6. Отладка программного обеспечения и программирование однокристальных мк
- •6.1. Интегрированная система отладки программного обеспечения для мк ProView
- •6.1.1. Оптимизирующий кросс - компилятор c51
- •6.1.2. Макроассемблер a51
- •6.1.4. Отладчик/симулятор WinSim51
- •6.2. Запуск ProView и создание файла проекта
- •Если в системе задействованы таймеры-счетчики, то удобно промоделировать их работу при разворачивании соответствующих окон Timer (рис.76).
- •В окне указаны источники и адреса векторов прерываний, их состояние и приоритет. Разрешенные прерывания отмечены словом Enable, неразрешенные - Not Enable.
- •Рассмотрим основные пункты раздела debug (отладка), представлены на рис. 84. Эти функции предназначены для выполнения процесса отладки прикладной программы пользователя.
- •6.3. Программирование однокристальных мк
- •Контрольные вопросы для закрепления материала
- •Заключение
- •Библиографический список
- •Глава 1. Архитектура и устройство однокристальных мк семейства mcs51………………………..6
- •Глава 6. Отладка программного обеспечения и программирование однокристальных мк ……….203
- •162600, Г.Череповец , пр. Луначарского, 5
5.8. Контроль напряжения питания в микропроцессорных системах
В микропроцессорных системах необходимо осуществлять контроль напряжения питания. Связано это с тем, что при управлении технологическим оборудованием (в нештатных ситуациях при пропадании напряжения питания) МК должна запомнить в энергонезависимой памяти некоторые технологические параметры. При восстановлении напряжения питания МК должна проанализировать содержимое памяти и начать управление процессом с учетом сохраненных параметров. В недалеком прошлом в качестве энергонезависимой памяти использовалось статическое ОЗУ ( например, двухкилобайтное К537РУ10 ) с автономным питанием в виде аккумуляторной батареи. В режиме хранения информации указанное ОЗУ потребляет небольшой ток 400 мкА. Недостатком таких энергонезависимых ОЗУ является необходимость в подзарядке батареи и ее замене при выходе из строя.
С появлением новых технологий – FLASH ОЗУ не требуется применения аккумуляторной батареи. По существу, при падении напряжения питания происходит программирование такого ОЗУ. Число циклов записи во FLASH ОЗУ составляет 100000 раз. Таким ОЗУ обладает микросхема однокристального МК AT89S8252 /10,11 /. Рассмотрим более подробно ее особенности.
Микросхема однокристального МК AT89S8252 содержит на кристалле память программ объемом в 8 кБайт, 256 байт внутреннего ОЗУ, двухкилобайтное FLASH ОЗУ. FLASH память доступна командой MOVX. Размещенная на кристалле энергонезависимая память данных позволяет хранить сколь угодно долго константы, таблицы и другие данные, которые не должны быть потеряны в процессе работы, а также и при выключении питания. Рассмотрим биты регистра WMCON для управления сторожевым таймером WDT и FLASH памятью.
Регистр WMCON ( адрес регистра 096Н )
PS2 |
PS1 |
PS0 |
EEMWE |
EEMEN |
DPS |
WDTRST |
WDTEN |
PS2, PS1, PS0 – устанавливают время переброса МК сигналом от сторожевого таймера (табл.31).
Таблица 31
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 |
WDT (WATCH DOG TIMER) - дословный перевод этой фразы “сторожевой пес”. Сторожевой таймер предназначен для контроля работы программы однокристального МК. МК должен периодически обращаться к WDT (сбрасывать его), говоря тем самым, что устройство “живое”. Если обращения к WDT нет (это означает, что МК “завис”) в течение некоторого времени (тайм-аута), то сторожевой таймер генерирует сигнал сброса определенной длительности, пытаясь таким образом восстановить работоспособность контроллера.
EEMWE – бит разрешения программе пользователя заносить информацию во FLASH память данных. При EEMWE = 1 запись во FLASH память разрешена, бит должен быть сброшен в 0 после завершения записи.
EEMEN – бит разрешения доступа к находящейся на кристалле по адресам 0000Н – 07FFH FLASH памяти. Когда EEMEN = 1 и адрес лежит в вышеуказанных пределах, команда MOVX обеспечивает обращение к FLASH памяти данных. При EEMEN = 0 обращение происходит к внешней памяти данных (если имеется внешняя микросхема ОЗУ).
DPS - бит выбора указателя адреса; если DPS = 0, то активен основной DPTR, если DPS = 1, то активен дополнительный DPTR1.
WDTRST – бит сброса содержимого сторожевого таймера.
WDTEN - бит включения/выключения сторожевого таймера, при WDTEN=1 сторожевой таймер включен и выключен при WDTEN = 0.
Итак, в адресном пространстве внешней памяти FLASH память данных занимает адреса с 0000Н по 07FFН. Для обращения к ней (для записи и считывания) необходимо установить EEMEN=1. Перед записью байта во FLASH память нужно установить EEMWE = 1, после окончания записи его рекомендуется сбросить. Запись одного байта в память занимает 2.5 мС.
Микросхема AT89S8252 потребляет ток 20 мА при частоте 16МГЦ, в режиме холостого хода (IDLE) – 6 мА, в режиме микропотребления (PD) – 100 мкА.
Контроль падения напряжения питания фиксируется посредством специальной микросхемы КР1171СР (рис.68). Ее выход подключается к одному из входов запросов на прерывание однокристального МК.
При напряжении питания +5В на выходе КР1171СР42 имеет место единичный уровень и прерывания не наступает. При падении напряжения питания до 4,2 В происходит срабатывание КР1171СР42 и на ее выходе устанавливается нулевой уровень, вызывающий прерывание в работе МК. В это время необходимо записать все необходимые параметры во FLASH ОЗУ.
Рис. 68. Схема контроля падения напряжения питания
Рассмотрим примеры работы с внешней FLASH памятью данных.
Пример 1. Сохранить 10 байт данных внутреннего ОЗУ однокристального МК, начиная с адреса 30Н, во FLASH ОЗУ с адреса 0000Н.
<1>WMCON EQU 096H ; Обозначение регистра управления
<2> ORG 0000H ;
<3> JMP INIT ; Переход на инициализацию системы
<4> ORG 0013H ; Адрес-вектор прерывания по входу INT1
<5> JMP INT_POWER ;На подпрограмму обслуживания прерывания
<6>INIT: MOV R0,#30H ;Загрузка регистра указателя начала массива
<7> MOV DPTR,#0000H ; Указание начала области FLASH ОЗУ
<8> MOV IE,#00000100B; Разрешение прерывания от INT1
<9> SETB EA ; Разрешение всех разрешенных прерываний
<10>MAIN: ; Блок основной программы
<11> JMP MAIN ;
<12>INT_POWER:ORL WMCON,#18H ;Разрешение записи во FLASH ОЗУ
<13>AGAIN: MOV A,@R0 ;Взять данное из внутреннего ОЗУ
<14> MOVX @DPTR,A ;Разместить его во FLASH ОЗУ
<15> INC DPTR ; Продвижение по массиву
<16> INC R0 ;
<17> CJNE R0,#3AH,AGAIN;Если все данные, то запретить запись во FLASH
<18> ANL WMCON,#11101111B; Сброс бита EEMWE
<19> RETI ; Возврат в основную программу
После инициализации системы (шаги с 6 по 9) процессор выполняет процедуры основной программы. При падении напряжения питания ниже 4,2 В возникает запрос на прерывание по входу INT1 и процессор переходит на метку INT_POWER, где происходит разрешение записи во FLASH (шаг 12) и непосредственно пересылаются данные из внутреннего ОЗУ во FLASH (шаги с 13 по 17). После этого запрещается запись во FLASH память (шаг 18).
Пример 2. Переслать содержимое 10 ячеек FLASH памяти данных (с адреса 0000Н) во внутреннее ОЗУ, начиная с ячейки 30Н.
<1> WMCON EQU 096H ;
<2> SAVE_IRAM:ORL WMCON,#08H;Разрешение обращения к FLASH RAM
<3> MOV R0,#30H ; Указание на начальный адрес массива
<4> MOV DPTR,#0000H; Начальный адрес во FLASH RAM
<5>IRAM: MOVX A,@DPTR ; Пересылка из FLASH в IRAM
<6> MOV @R0,A ;
<7> INC DPTR ; Продвижение по массиву
<8> INC R0 ;
<9> CJNE R0,#3AH,IRAM;Если не все данные, то продолжить
<10> RET ;
З а д а н и е д л я с а м о с т о я т е л ь н о й р а б о т ы
Разработайте фрагмент, обеспечивающий сохранение второго банка регистров внутреннего ОЗУ во FLASH памяти данных МК при выключении напряжения питания.