- •Аналоговые и цифровые устройства автоматики
- •Глава 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
Глава 4. Взаимодействие однокристального мк с объектом управления
При управлении технологическим оборудованием МК получает информацию о параметрах объекта посредством позиционных, импульсных и аналоговых датчиков.
4.1. Программный опрос и ожидание срабатывания позиционных датчиков
Одна из самых распространенных задач, встречающихся при автоматизации оборудования - это опрос и ожидание срабатывания позиционных датчиков. Такие датчики имеют два состояния: “ включен ” или “ выключен ”. Это могут быть различные конечные выключатели, герконы, контакты реле и другие переключающие устройства, установленные на технологическом оборудовании.
Изучение вопроса начнем с конкретного примера. На объекте установлены 3 позиционных датчика D1, D2 и D3. Имеются также 3 исполнительных элемента: светодиод VD1, электромагнит К1 и звонок ЗВ (рис.17). Работа устройства (алгоритм управления) характеризуется табл.16 состояния объекта.
Таблица 16
Разр. |
Р1.2 |
Р1.1 |
Р1.0 |
Р2.0 |
Р2.5 |
Р2.7 |
|
|
№ |
D3 |
D2 |
D1 |
VD |
К |
ЗВ |
Порт Р1 |
Порт Р2 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
FFH |
01H |
2 |
1 |
1 |
0 |
0 |
0 |
1 |
FEH |
80H |
3 |
1 |
0 |
1 |
0 |
1 |
0 |
FDH |
20H |
4 |
0 |
1 |
1 |
1 |
1 |
1 |
FBH |
A1H |
5 |
1 |
0 |
0 |
0 |
1 |
1 |
FCH |
A0H |
6 |
0 |
0 |
1 |
1 |
0 |
1 |
F9H |
81H |
7 |
0 |
1 |
0 |
1 |
1 |
0 |
FAH |
21H |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
F8H |
00H |
Рис. 17. Электрическая принципиальная схема подключения
позиционных датчиков и исполнительных элементов
Из рис.17 видно, что если позиционный датчик разомкнут, то в разряде порта установлен единичный уровень, если же датчик замкнут, то в разряде порта нулевой уровень.
Рис. 18. Алгоритм решения задачи по первому варианту
Исполнительные элементы подключены к МК через ключи, выполненные на транзисторах. Поставленную задачу можно решить двумя способами.
Рис. 19. Алгоритм решения задачи с использованием табличного метода
Алгоритмы решения задачи представлены на рис. 18 и 19. Первый вариант основан на сканировании состояния порта датчиков и перебора возможных комбинаций согласно таблице и выбору соответствующих состояний исполнительных элементов. Другой вариант использует табличный метод, согласно которому комбинации состояний исполнительных элементов записаны в ПЗУ.
Рассмотрим первый вариант программы.
<1> ORG 0000H
<2> MOV P2,#00H ; Обнуление порта ИМ
<3>SCAN: MOV A,P1 ; Опрос состояния порта датчиков
<4> CJNE A,#0FFH,M1;Проверка состояния 1 таблицы
<5> MOV P2,#01H ; Если "ДА", то включить VD
<6> JMP SCAN ; Переход на сканирование порта датчиков
<7>M1: CJNE A,#0FEH,M2; Проверка состояния 2 таблицы
<8> MOV P2,#80H ; Если "ДА", то включить ЗВ
<9> JMP SCAN ; Переход на сканирование порта датчиков
<10>M2: CJNE A,#0FDH,M3; Проверка состояния 3 таблицы
<11> MOV P2,#20H ; Если "ДА", то включить К
<12> JMP SCAN ; Переход на сканирование порта датчиков
<13>M3: CJNE A,#0FBH,M4 ; Проверка состояния 4 таблицы
<14> MOV P2,#0A1H ;Если "ДА", то включить VD,K,ЗВ
<15> JMP SCAN ; Переход на сканирование порта датчиков
<16>M4: CJNE A,#0FCH,M5 ; Проверка состояния 5 таблицы
<17> MOV P2,#0A0H ;Если "ДА", то включить ЗВ и К
<18> JMP SCAN ;Переход на сканирование порта датчиков
<19>M5: CJNE A,#0F9H,M6 ; Проверка состояния 6 таблицы
<20> MOV P2,#81H ;Если "ДА", то включить VD и ЗВ
<21> JMP SCAN ; Переход на сканирование порта датчиков
<22>M6: CJNE A,#0FAH,M7 ;Проверка состояния 7 таблицы
<23> MOV P2,#21H ;Если "ДА", то включить VD и К
<24> JMP SCAN ; Переход на сканирование порта датчиков
<25>M7: CJNE A,#0F8H,M8 ; Проверка состояния 8 таблицы
<26> MOV P2,#00H ;Если "ДА", то выключить все ИМ
<27>M8: JMP SCAN ; Переход на сканирование порта датчиков
С использованием команд “Сравнить и перейти, если не равно” проверяются все возможные комбинации срабатывания датчиков (шаги 4, 7, 10, 13, 16, 19, 22, 25). Этот вариант программы занимает 69 байт в ПЗУ.
Рассмотрим второй вариант программы более подробно. Для лучшего понимания показаны адреса расположения команд и табличных кодов управления исполнительными элементами.
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 75A000 2 MOV P2,#00; Обнулить порт ИМ - ов
0003 90000F 3 MOV DPTR,#TABLE ;Указание на начало таблицы
0006 E590 4 SCAN: MOV A,P1 ; Опрос порта датчиков
0008 5407 5 ANL A,#07H ; Выделение разрядов датчиков
000A 93 6 MOVC A,@A+DPTR ;Выборка кода из таблицы
000B F5A0 7 MOV P2,A ; Включение соответствующих ИМ
000D 80F7 8 JMP SCAN ; Переход на новое сканирование
000F 00 9 TABLE: DB 00H
0010 81 10 DB 81H
0011 21 11 DB 21H
0012 A1 12 DB 0A1H
0013 A0 13 DB 0A0H
0014 20 14 DB 20H
0015 80 15 DB 80H
0016 01 16 DB 01H
Шаг 4 опрашивает состояние порта датчиков. На 5-м шаге происходит выделение разрядов, к котором подключены датчики. Все остальные биты обнуляются. Напомню, что порт при включении питания настраивается на ввод информации, а следовательно, при его чтении в разрядах будут зафиксированы единицы (если датчики не замкнуты). На шестом шаге происходит выбор кода из таблицы. Адрес кода вычисляется как сумма содержимого аккумулятора и содержимого регистра DPTR. Например, если датчики не замкнуты, то после выполнения 5-го шага А = 07Н. Адрес начала таблицы, указанный в DPTR, равен 000FH. Таким образом, при сложении @A + DPTR получается адрес 0016Н, по которому находится код 01Н для управления исполнительными элементами, то есть включится светодиод. Проанализируйте самостоятельно другие комбинации. Второй вариант программы является предпочтительным и занимает всего лишь 23 байта в памяти программ.
В рассмотренных задачах мы не учли неприятный эффект “дребезг контакта” при замыкании датчиков. Он может быть устранен аппаратно при использовании RS триггера либо с помощью программной задержки на время переходного процесса.
З а д а н и е д л я с а м о с т о я т е л ь н о й р а б о т ы
Разработайте программы для управления объектом, используя второй вариант, если табл.17 и 18 состояний имеют вид:
Таблица 17
Разр. |
Р1.4 |
Р1.3 |
Р1.2 |
Р2.0 |
Р2.1 |
Р2.2 |
|
|
№ |
D3 |
D2 |
D1 |
VD |
К |
ЗВ |
Порт1 |
Порт2 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
|
|
2 |
1 |
1 |
0 |
1 |
0 |
0 |
|
|
3 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
4 |
0 |
1 |
1 |
0 |
0 |
0 |
|
|
5 |
1 |
0 |
0 |
0 |
1 |
1 |
|
|
6 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
7 |
0 |
1 |
0 |
1 |
1 |
0 |
|
|
8 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
Таблица 18
Разр. |
Р1.7 |
Р1.6 |
Р1.5 |
Р2.2 |
Р2.3 |
Р2.4 |
|
|
№ |
D3 |
D2 |
D1 |
VD |
К |
ЗВ |
Порт Р1 |
Порт Р2 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
|
2 |
1 |
1 |
0 |
0 |
0 |
1 |
|
|
3 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
4 |
0 |
1 |
1 |
1 |
1 |
0 |
|
|
5 |
1 |
0 |
0 |
0 |
1 |
1 |
|
|
6 |
0 |
0 |
1 |
1 |
0 |
1 |
|
|
7 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
8 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|