Лекция 6 Проектирование устройств на универсальных микроконтроллерах Лектор: Люличева И.А. 1 1 Рассматриваются вопросы Обзор пройденного Блок регистров спецфункций МК Интерфейс пользователя – типы клавиатур, примеры подключения. Интерфейс пользователя – типы индикаторов, примеры подключения. Примеры МК систем. 2 Краткий обзор пройденного Введение в МК Структура МК 8051 Карта памяти МК 8051 Система команд 8051 (форматы команд, группы команд, виды адресации) Схема подключения внешней памяти данных к МК 3 Виды адресации (данных) 1. Прямая к байтам Примеры MOV R0, Р0; ADD R1, 40h 2. Прямая к битам SETB P0.0 3. Непосредственная Примеры MOV R0, #0FFh; ADD R1, #40h 4. Косвенная Примеры MOV @R0, Acc; MOV @DPTR, R3 5. Стековая PUSH R0, POP R0, ACALL z0, RET 4 Группы команд 5я группа - Команды работы с битами – все что можно делать с битом: CLR bit, SETB bit; Обнулить или установить CPL bit; инвертировать ANL C,bit; ORL C,bit; XRL C,bit; логич. опер MOV C,bit, MOV bit,C; операции пересылки Ну и передачи управления по биту JB/JNB. 5 Вектор прерываний и ПП Система прерываний включает 5 источников прерываний с фиксированными векторами, из которых 2 внешних (входы INT0, INT1) и 3 внутренних (таймеры 0 и 1, последовательный порт) источника. 0030 0023 001В 0013 000B 0003 0000 Free memory SINT Т1 Int1 T0 Int0 Reset 6 Подключение внешней памяти программ 7 Блок регистров специальных функций (SFR) Регистры специальных функций - это дополнительные устройства, которые отображаются в адресное пространство внутренней памяти данных. В различных х51-совместимых микроконтроллерах состав дополнительных устройств различается. Микроконтроллеры различаются между собой количеством параллельных портов, последовательных портов, таймеров. Регистры специальных функций (для более современного семейства x51) с указанием их адресов в адресном пространстве SFR внутреннего ОЗУ приведены на следующем слайде. 8 Блок регистров специальных функций (совр. Аналог 8051) 9 Блок регистров спецфункций Блок регістрів спеціальних функцій починається з адреси 80Н і містить адреси вбудованих портів та пристроїв, а також акумулятора і деяких регістрів: Е0Н, F0Н - адреса акумулятора і його розширення; 81Н - SP - вказівник стеку; 80Н, 90Н, А0Н, В0Н - адреси парних паралельних портів - від Р0 до Р3; 87H - PCON - регістр керування потужністю; 88H - 8DH - адреси регістру керування і двохбайтних лічильників-таймерів ( TMOD,TH0,TL0,TH1,TL1); 98Н, 99Н – SBUF SCON регістри керування зв’язковим адаптером; A8H, B8H - регістри маски і пріоритетів контролеру переривань; D0 - слово стану програми. 10 Параллельные порты 80Н, 90Н, А0Н, В0Н - адреса Р0 - Р3. Все 4 могут служить как порты вводавывода, но есть и специализация. Р0 и Р2 могут быть использованы для создания внешних шин адреса и данных (см. слайд 7) Все биты Р3 имеют альтернативные функции. 11 Альтернативные функции порта Р3 12 Регистры таймера В составе микроконтроллера имеются регистровые пары с именами TH0, TL0 и TH1, TL1, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счетчика событий (T/C0 и T/C1). При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора. При работе в качестве счетчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0, T1) вход микроконтроллера. 13 Пример программы задержки с использованием таймера Задача 7. Розробити програму організації тривалої часової затримки для ОЕОМ К1816ВЕ51 за допомогою вбудованого таймера. Рішення. Для організації тривалої часової затримки використаєм переривання від вбудованого таймеру з адресою 0BH. ORG 0BH ; адреса вектора переривань CLR TCON.4 ; зупинка таймера RETI ; повертання ORG 100H ; адреса основної програми МОV TMOD, #01 ; встановлення таймера в режим лічильника MOV TL0, #LOWB ; молодший байт лічильника MOV TH0, #HIGHB ; старший байт лічильника SETB TCON.4 ; запуск лічильника SETB IE ; дозвіл переривань SETB PCON.O ; режим холостого ходу МП NEXT: ... ; продовження програми 14 Режимы УАПП (UART) Режим 0. В этом режиме информация и передается и принимается через внешний вывод входа приемника (RXD). Принимаются или передаются 8 бит данных. Через внешний вывод выхода передатчика (TXD) выдаются импульсы сдвига, которые сопровождают каждый бит. Частота передачи бита информации равна 1/12 частоты резонатора. Режим 1. В этом режиме передаются через TXD или принимаются из RXD 10 бит информации: старт-бит (0), 8 бит данных и стоп-бит (1). Скорость приема/передачи _величина переменная и задается таймером. Режим 2. В этом режиме через TXD передаются или из RXD принимаются 11 бит информации: старт-бит, 8 бит данных, программируемый девятый бит и стоп-бит. При передаче девятый бит данных может принимать значение 0 или 1, или, например, для повышения достоверности передачи путем контроля по четности в него может быть помещено значение признака паритета из слова состояния программы (PSW.0). Частота приема/передачи выбирается программой и может быть равна либо 1/32, либо 1/64 частоты резонатора в зависимости от управляющего бита SMOD. Режим 3. Режим 3 совпадает с режимом 2 во всех деталях, за исключением частоты приема/передачи, которая является величиной переменной и задается таймером. 15 УАПП (UART) Запись байта в буфер SBUF приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта. Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного байта. Если к моменту окончания приема байта предыдущий байт не был считан из SBUF, то он будет потерян. Настройка на режим производится через SCON. 16 Диаграмма работы УАПП в режиме 3 17 Регистр управления УАПП (SCON) 18 Структурная схема микроконтроллерной платы 19 Типы клавиатур Отдельные кнопки (как в пейджере) Цифровая клавиатура 3х4 (простой телефон или калькулятор) Цифро-буквенная клавиатура (мобильный телефон) Кодирующие типы клавиатур (в ПК – на базе МК) 20 Пример подключения – одна кнопка 21 Пример подключения – три кнопки 22 Пример подключения клавиатуры к PIC24 23 Схема подключения клавиатуры c использованием дешифратора 24 Пример подключения клаиатуры к МК 51 25 Типы индикаторов Промышленно выпускается огромное количество моделей индикаторов, начиная от светодиодов и оканчивая матричными дисплеями, наиболее часто встречаются: Светодиод – отображает 1 бит 7-сегментный индикатор – отображает 1 цифру Линейка из нескольких 7-сегм. индикаторов Одно- и дву-строчные матричные индикаторы со встроенным контроллером Многострочный дисплей, управляемый видеокартой. 26 Выбор индикаторов в среде Proteus 27 Простой пример подключения индикаторов к МК 28 Измеритель напряжения на МК 29 Цифровые часы 30 Пример подключения двустрочного индикатора AT90S2313 имеет маленькие EEPROM и RAM, и портов ввода/вывода явно маловато, поэтому подключать его будем к порту D по параллельному 4-х битному интерфейсу. Кодовая таблица контроллера Hitachi соответствует ASCII (Латиница и специальные символы). Есть возможность запрограммировать свои собственные 8 символов. При отладке пригодились светодиоды на порту B, оставшиеся от светодиодной мигалки. 31 Электрическая схема 32 Кодовые таблицы Буфер данных имеет больше ячеек, чем число знакомест дисплея. Смещая окно индикатора относительно буфера данных (см. систему команд), можно отображать на дисплее различные области буфера. У двустрочных индикаторов первые 40 ячеек буфера данных, обычно, отображаются на верхней строке дисплея, а вторые 40 ячеек - на нижней строке. Сдвиг окна дисплея относительно буфера данных для верхней и нижней строк происходит синхронно. Курсор будет виден на индикаторе только в том случае, если он попал в зону видимости дисплея (и если предварительно была подана команда отображать курсор). 33 Кодовые таблицы Кроме DDRAM, контроллер ЖКИ содержит еще один блок памяти - знакогенератор. Его "прошивка", то есть соответствие ASCIIкодов начертанию символов, обычно имеется в описании индикатора. Знакогенератор состоит из двух частей. Основная его часть представляет собой ПЗУ (CGROM) и ее, следовательно, нельзя изменить. Вторая часть, в которой задаются начертания символов для первых 16-ти кодов таблицы знакогенератора, представляет собой перепрограммируемое ОЗУ(CGRAM). Имеется возможность задать начертание 8 символов. 34 Порядок инициализации дисплея: включить питание (ждать 30 мкс) 0b00000011 (ждать 40 мкс) 0b00000011(ждать 40 мкс) 0b00000011(ждать 40 мкс) здесь происходит переход в четырехбитный режим(0b00000010)(ждать 40 мкс) 0b00000010,0b00001000 (ждать 40 мкс) выключить дисплей (0b00000000,0b00001000)(ждать 40 мкс) установить направление сдвига курсора и разрешить сдвиг дисплея (0b00000000,0b00000110)(ждать 40 мкс) включить индикатор и разрешить курсор, установить его тип* (0b00000000,0b00001111)(ждать 40 мкс) очистить индикатор, курсор домой (0b00000000,0b00000001)(ждать 1500 мкс) 35 Пример просмотра состояния регистров 36 Цифровой осциллограф В наше время портативным цифровым осциллографом с экраном на ЖКИ никого не удивишь. Фирмы Fluke, Velleman, Metrix, Hameg, и др. предлагают разные модели А ведь сделать самодельный осциллограф не сложно. Из крупных деталей потребуются МК, ЖКИ, 3 переменных резистора и кнопка (рис.8). Параметры осциллографа: диапазон входных напряжений 0…5 В; диапазон входных частот 0…33 кГц; количество отображаемых на ЖКИ аналоговых уровней - 8; максимальная частота дискретизации - 66 кГц; 37 38 Вопросы для самоконтроля Что такое блок РСФ, что в него входит в МК 51? Перечислите типы клавиатур. Приведите пример подключения матричной клавиатуры. Перечислите типы индикаторов. Приведите пример подключения матричного индикатора. Приведите пример таблицы кодировки. 39