- •1. Операторы выбора языка c51: if и switch.
- •2. Операторы цикла языка с51: while, do…while, for.
- •3. Операторы перехода языка с51: break, continue, goto.
- •4. Программирование параллельным вводом/выводом в с51: операторы управления портами и отдельными разрядами портов. Примеры программ управления светодиодами и опроса контактов переключателей.
- •/* Программа управления светодиодом vd1 от кнопки sb1 */
- •5. Программирование таймеров микроконтроллеров mcs-51 на языке с51.
- •6. Программирование системы прерываний микроконтроллеров mcs-51 на языке с51.
- •7. Программирование последовательного ввода/вывода микроконтроллеров mcs-51 на языке с51.
- •8. Микроконтроллеры pic18: общая характеристика, особенности архитектуры и системы команд.
- •9. Язык с18 для pic-микроконтроллеров: структура программы, директивы препроцессора, ключевые слова.
- •10. Представление информации в языке с18: типы данных, переменные и константы.
- •11. Операции арифметические, поразрядные логические, логические и отношения в языке с18.
- •12. Операторы управления вычислительным процессом в языке с18.
- •13. Функции в языке с18: определение функции, прототип, библиотечные функции.
- •14. Функции формирования временных задержек в языке с18.
- •15. Программирование на языке с18 типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя.
- •16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.
- •17. Аналого-цифровое преобразование в pic-микроконтроллерах: структура внутреннего ацп, функции управления ацп на языке с18.
- •18. Реализация широтно-импульсной модуляции в pic-микроконтроллерах: параметры шим, функции управления шим на языке с18.
- •Void ClosePwm1(void);
- •Void OpenPwm1(char period);
- •Void SetDcpwm1(unsigned int dutycycle);
- •19. Прерывания в pic18: источники прерываний, управляющие биты, программирование прерываний на языке с18.
- •20. Динамическое управление линейным дисплеем на семисегментных индикаторах в pic-микроконтроллерах.
- •21. Интерфейсы мпс: понятие и характеристики. Стандартные интерфейсы мпс.
- •22. Внешние интерфейсы мпс: основные параметры, последовательные и параллельные, синхронные и асинхронные, способы соединения устройств.
- •23. Интерфейс rs-232: назначение, основные технические характеристики, принципы передачи данных.
- •24. Интерфейс ирпс: назначение, основные технические характеристики, принципы передачи данных.
- •25. Интерфейсы rs-422 и rs-485: назначение, основные технические характеристики, принципы передачи данных.
- •26. Интерфейс spi: назначение, основные технические характеристики, принципы передачи данных.
- •27. Интерфейс i2c: назначение, основные технические характеристики, принципы передачи
- •28. Интерфейс can: общее описание и основные параметры, виды и форматы сообщений в can.
- •29. Интерфейс can: арбитраж, обнаружение и обработка ошибок, скорость передачи и длина сети.
7. Программирование последовательного ввода/вывода микроконтроллеров mcs-51 на языке с51.
Последовательный порт ввода/вывода обеспечивает синхронный или асинхронный режимы передачи данных и служит для взаимодействия МК с различными внешними устройствами по последовательному интерфейсу. Последовательный порт МК 8051 представляет собой модуль UART (или по-другому, УАПП – универсальный асинхронный приемо-передатчик).
Два регистра специальных функций используются для работы с последовательным портом МК 8051:
SCON – регистр управления портом;
SBUF – регистр данных порта.
Последовательный порт использует две линии порта P3, которые выполняют альтернативную функцию: вывод P3.0 является входом последовательных данных RxD (входом приемника), вывод P3.1 – выходом последовательных данных TxD (выходом передатчика).
Регистр управления SCON имеет следующий формат:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
Здесь обозначено:
SM0, SM1 – биты выбора режима работы последовательного порта: 00 – режим 0, 01 – режим 1, 10 – режим 2, 11 – режим 3;
SM2 – бит управления режимом приема. Устанавливается программно для запрета приема сообщения, в котором 9-й бит данных имеет значение 0;
REN – бит разрешения приема: 1 – разрешен, 0 – запрещен;
TB8 – 9-й передаваемый бит данных (D8) в режимах 2 и 3;
RB8 – 9-й принимаемый бит данных (D8) в режимах 2 и 3;
TI – флаг прерывания от передатчика;
RI – флаг прерывания от приемника.
Порт может работать в четырех режимах, выбор которых осуществляется через регистр SCON.
Режим 1. Это асинхронный режим работы порта, в котором передаются через TxD или принимаются из RxD 10 бит информации: старт-бит, 8 бит данных и стоп-бит. Скорость приемо-передачи в этом режиме – величина переменная и задается таймером Т/С1.
В режиме 1 частота (скорость) приемо-передачи
где SMOD – это 7-й бит из регистра управления мощностью PCON, значение которого может быть задано программно;
fOV – частота переполнения Т/С1.
Прерывания от Т/С1 в этом случае должны быть запрещены. Обычно для синхронизации последовательного порта используется режим 2 таймера Т/С1 (режим автоперезагрузки). В этом случае
где (TH1) – десятичный код содержимого регистра TH1, который задается программно.
8. Микроконтроллеры pic18: общая характеристика, особенности архитектуры и системы команд.
Компания Microchip выпускает семейство 8-разрядных микроконтроллеров PIC18, которое идеально подходит для приложений, требующих быстродействия 10-16 MIPS, с объемом памяти программ до 128 Кбайт, корпусах от 18 до 100 выводов.
Семейство PIC18 обладает следующими отличительными чертами:
эффективное кодирование на языке Си;
16-разрядные слова программ;
встроенные АЦП и программируемый генератор;
векторная приоритетная система прерываний (высокий и низкий приоритеты);
Семейство PIC18 имеет МК с аппаратной поддержкой современных интерфейсов:
Интегрированный полноскоростной USB 2.0 с возможностью передачи данных со скоростью до 12 Mбит/сек.
Высокоскоростной последовательный протокол CAN с гарантированной доставкой данных для приложений, требующих высокую надежность и скорость до 1 Мбайт/сек.
Интегрированный Ethernet интерфейс для контроля и управления удаленными объектами, объединенными в общую сеть.
Встроенный драйвер ЖКИ, позволяющий управлять различными типами жидкокристаллических индикаторов с возможностью работы в режиме микропотребления.
Выпускаются МК двух вариантов: PIC18Cxxx и PIC18Fxxx. PIC18C имеют однократно программируемую память программ (OTPROM). PIC18F имеют флэш-память программ (Flash-ROM). Оба этих варианта МК могут быть запрограммированы непосредственно в устройстве с помощью последовательного программирования всего по трем проводам.
Основные особенности семейства PIC18 следующие.
Организация памяти
В PIC18 реализовано 3 типа памяти: память программ, память данных, память данных EEPROM. Память программ адресуется с помощью 21-разрядного счетчика команд PC, что позволяет иметь адресное пространство 2 Мбайта. Однако, выпускаемые МК имеют объем программной памяти в диапазоне от 16 до 128 Кбайт. В отличие от PIC16, PIC17 память программ PIC18 адресуется побайтно. Команды в памяти занимают 2 байта (однословные) или 4 байта (двухсловные), что редко. Команды имеют только четные адреса, поэтому младший бит PC всегда равен 0.
Память данных организована как массив 8-разрядных регистров, каждый из которых имеет 12-разрядный адрес. Все адресное пространство 4096 байт разделено на 16 банков объемом по 256 байт. Номер адресуемого банка содержится в четырех младших битах регистра выбора банка BSR. Характерной особенностью PIC18 является то, что все регистры специальных функций (РСФ) размещены только в банке 15, причем занимают его старшую (по адресации) половину. В банках 0 – 14 располагаются регистры общего назначения (РОН).
Чтобы гарантировать быстрый доступ к наиболее часто используемым данным и к РСФ без использования регистра BSR, в PIC18 применено оригинальное решение под условным названием «банк доступа» (Access Bank). В этот банк включены 128 регистра РОН из младшей половины банка 0 и старшая половина регистров из банка 15, т.е. все РСФ. Специальный «бит доступа к памяти» (a = 0) в коде команды показывает, что старшие разряды адреса игнорируются и обращение идет к банку доступа, а содержимое BSR не используется.
Объем стека в PIC18 существенно расширен и составляет массив из 31 ячейки памяти по 21 биту в каждой. Очень полезной архитектурной особенностью PIC18 является наличие теневого «быстрого» стека. Этот стек используется подпрограммой обработки прерывания высокого уровня для запоминания содержимого регистров STATUS, WREG, BSR. Если прерывания не используются, то теневой стек можно использовать для сохранения регистров STATUS, WREG, BSR при вызове подпрограммы.
Система прерывания. Система прерывания в PIC18 имеет векторную приоритетную структуру. Каждому источнику прерывания соответствуют три бита (разрешение, флаг и бит назначения высокого или низкого приоритета). Для прерывания низкого уровня необходимо сохранять содержимое регистров STATUS, WREG и BSR, так как теневой стек автоматически используется только для обработки прерывания высокого уровня.
Порты ввода/вывода. В порты ввода/вывода добавлены регистры-защелки. В результате повысилась предсказуемость результата работы некоторых команд. При выполнении операции чтение/изменение/запись данные при чтении берутся из регистра-защелки. Результат записывается туда же. Выходной сигнал поступает из регистра-защелки через буферный усилитель на вывод МК.
Генератор тактовых импульсов. Новым устройством узла тактового генератора является схема умножения частоты кварцевого резонатора на 4. При использовании резонатора на 10 МГц внутренняя тактовая частота достигает 40 МГц. Эту функцию удобно использовать для уменьшения электромагнитного излучения при сохранении высокой скорости выполнения программы.
Для устройств с батарейным питанием важна способность PIC18 переключать системную тактовую частоту с основного тактового генератора на альтернативный низкочастотный. Системная частота переключается специальным битом в регистре управления тактовым генератором.
Система команд PIC18. Набор команд состоит из 75-ти 16-разрядных команд (одно слово) и четырех 32-разрядных команд (два слова). Из двух слов состоят команды MOVFF, CALL, GOTO, LFSR. Большинство команд в PIC18 такие же, как и в PIC16, но есть и новые, а также некоторые различия.
Одной из особенностью команд, в которых используются регистры, является наличие бита доступа к памяти. Поэтому операнды в таких командах в общем случае записываются в виде:
MNEMONIC f, d, a ,
где обозначено: MNEMONIC – мнемокод команды; f – адрес (или имя) регистра; d – бит размещения результата (d=0 – результат в рабочем регистре WREG, d=1 – результат в регистре f); a – бит доступа к памяти (a=0 – обращение к банку доступа, содержимое регистра BSR игнорируется, a=1 – обращение к памяти данных с учетом регистра BSR).
Кроме того, появились команды условных переходов, в которых условия – это флаги (признаки результатов операций), находящиеся в регистре STATUS. Это упрощает процесс программирования и сокращает длину команд перехода.
В PIC18 значительно улучшена организация чтения табличных данных из памяти программ, а также появилась возможность записи во флэш-память.