Hosted by uCoz

Переход на главную страницу

Программирование PIC контроллеров с "нуля"

Самоучитель по программированию PIC контроллеров для начинающих

(руководство по конструированию устройств на микроконтроллерах)
Автор: Корабельников Евгений Александрович         г. Липецк


Общие замечания по стратегии "въезда".
"Самоучитель..." составлен таким образом, что, в случаях наличия каких-то неясностей, возникающих после прочтения предыдущих разделов, в последующих разделах, они постепенно проясняются за счет дополнительной информации, предоставляемой по мере "подворачивания" многочисленных поводов.
На первичной стадии "въезда", главное - понять смысл, а все остальное к нему, со временем, приложится.

Открытая часть "Самоучителя..." (разделы с 1 по 17)


Книжную версию открытой части "Самоучителя по программированию PIC контроллеров для начинающих" (3,2 Мб., 287 страниц, формат PDF) Вы можете скачать: здесь.

Приложения к нему (2,5 Мб., формат PDF) Вы можете скачать: здесь.

Дистрибутив MPLAB версии 5.70.40 (архив 25 Мб.) Вы можете скачать: здесь (через файлообменник).

Примечание: при установке MPLAB версии 5.70.40 на "комп", в котором отсутствует LPT порт (например, ноутбук), нужно отказаться от предлагаемой разработчиками установки и выбрать выборочную установку. После этого, нужно убрать "галку", которая установлена в строке MPLAB ICE, и согласиться со всеми пунктами дальнейшей установки.


Введение
1.   Готовим инструменты. Изготовление программатора и работа с ним.
2.   Что такое микроконтроллер, и как он работает.
3.   Система команд PIC16F84A.
4.   Что такое программа и правила ее составления. Пример создания программы автоколебательного мультивибратора. Директивы. Принципиальная схема мультивибратора
5.   Интегрированная среда проектирования MPLAB IDE и работа в ней.
6.   Что дальше?
7.   Пример создания программы (начало).
8.   Пример создания программы (продолжение).
9.   Работа в симуляторе. Отладка программы.
10. Как отследить выполнение программы
11. Прерывания. Стек. Пример разработки программы с уходом в прерывания.
12. Организация вычисляемого перехода. Работа с EEPROM памятью данных.
13. Флаги. Работа с флагами. Как работает цифровой компаратор. Перенос и заем.
14. Пример задействования флага С в трехбайтном суммирующем устройстве. Циклический сдвиг. Операция умножения.
15. Введение в принцип построения подпрограммы динамической индикации. Косвенная адресация.
16. Преобразование двоичных чисел в двоично-десятичные. Окончательное формирование текста подпрограммы динамической индикации.
17. Принцип счета. Работа с таймером TMR0. Принцип установки групп команд счета в текст программы.
...........................................................................................
...........................................................................................
Заключение
Дополнительно

Полезные программы Николая Марова (ссылка активна)




Содержание "Самоучителя..." от раздела №18 и далее.

18. Пример программы, включающей в себя группы подпрограмм 15, 16, 17 разделов. Выполнение заданий на разработку: автоколебательные мультивибраторы, формирующие пачки импульсов с паузами между ними и 2-х тональный сигнал без внешнего управления и с внешним управлением. О пользе "хулиганства".
19. Разные "полезности".
20. Принцип организации опроса клавиатуры. Организация оперативной памяти клавиатуры. Примеры.
21. Организация гашения незначащих нулей. Пример уменьшения объема текста программы при использовании косвенной адресациии. Примеры.
22. Пример использования информации, изложенной в предыдущих разделах, при конструировании устройств.
23. Введение в принцип организации последовательного интерфейса I2C. Организация последовательного интерфейса при работе с жидкокристаллическими модулями. ЖКИ модули на основе м/контроллера HT1611/1613. Примеры.
- дополнение к 23-му разделу.
24. Переход с одного типа ПИКа на другой. Практический пример перехода с PIC16F84A на PIC16F628.
25. Жидкокристаллические, алфавитно-цифровые модули на основе м/контроллера HD44780.
- принцип работы модуля
- вывод данных на индикацию
- вывод данных на индикацию (продолжение)
- переход с 8-разрядного на 4-разрядный интерфейс
- использование EEPROM памяти при выводе символов на индикацию
26. Практический пример создания групп подпрограмм работы с клавиатурой и цифровой шкалы. Их "врезка" в программу ранее разработанного 8-разрядного частотомера.
- организация трех интервалов измерения (1 сек. + 0,1 сек. и 10 сек.)
- организация процедур суммирования и вычитания для многобайтных чисел
- организация режима цифровой шкалы с суммированием и вычитанием значения промежуточной частоты, установленной по умолчанию. Организация энергонезависимой памяти настроек.
- организация возможности установки пользователем выбранного им значения промежуточной частоты. Вывод на индикацию признаков подрежимов цифровой шкалы +ПЧ и -ПЧ.
- организация дополнительной процедуры вывода символов на индикацию. "Укрощение строптивого" вычисляемого перехода. Экономия ресурса EEPROM памяти данных.
Заключение

Продолжение раздела №11
11/1. Детальные разбирательства с прерываниями по входу INT. Одновибратор с перезапуском.
11/2. Детальные разбирательства с прерываниями по изменению уровней сигналов на выводах RB4...RB7. Организация многосценарной работы с использованием клавиатуры, содержащей до 15-ти кнопок включительно. Устранение "дребезга контактов". Примеры.
11/3. Детальные разбирательства с прерываниями по переполнению TMR0. Работа с несколькими источниками прерываний. Отложенные прерывания и работа с ними. Примеры.
11/4. Детальные разбирательства с прерываниями по окончанию записи в EEPROM память данных и их совместная работа с прерываниями по переполнению TMR0. Пример такой работы с "разбором полетов".
Продолжение раздела №12
12/1. Отслеживание в симуляторе MPLAB процесса чтения данных из EEPROM памяти данных и процесса записи данных в EEPROM память данных (лучше 1 раз увидеть, чем 100 раз услышать).
12/2. Организация работы с массивами данных при чтении из EEPROM памяти данных и записи в EEPROM память данных в случае необходимости применения операции "чтение/модификация/запись. Что такое "плавающая" задержка. Примеры.
Приложение №1:
Что такое "условно линейные" подпрограммы и как с ними работать. Подпрограммы умножения однобайтного числа на однобайтное, двухбайтного числа на однобайтное и двухбайтного числа на двухбайтное. Примеры. Введение в основы программного анализа.
Приложение №2:
Подпрограмма деления 2-х байтного числа на однобайтное с вычислением остатка. Подпрограмма деления 3-х байтного числа на 2-х байтное с округлением по уровню 0,5 и описание ее преобразования в подпрограмму деления 2-х байтного числа на однобайтное. Принцип работы ПП округления. Примеры.
Приложение №3:
Сбросы. Зачем они нужны? Источники сбросов для PIC16F84A. Организация сбросов. Состояния регистров специального назначения после сбросов и перехода в режим SLEEP.
Приложение №4:
Организация работы в режиме пониженного энергопотребления SLEEP. Организация работы в режиме RC генератора. Примеры.

Файлы текстов программ ЧМ/ЦШ Kea3a.asm, Kea3a_1.asm, Kea628.asm, Kea628_1.asm.

Статья 1:
Функции асинхронного стимула и их применение при отслеживании и отладке программ.
Статья 2:
Подпрограмма досчета. Можно ли обойтись без блокировки счетного входа? Пример применения программно-аппаратного анализа.
Продолжение статьи 2:
Продолжение статьи 2 или в чем собака зарыта?
Статья 3:
Быстрая подпрограмма преобразования 8-разрядных двоично-десятичных чисел в двоичные. Описание принципа работы.
Статья Игоря Батова:
О делении (детальные разбирательства с ПП деления). Опубликована на сайте в разделе "Пример успешной работы".
Статья 4:
Тестовое устройство для визуального контроля содержимого знакогенераторов ЖКИ модулей на основе HD44780, плюс практикум по конструированию (описание процесса).
Статья 5:
Моя первая программа" или "с этого все и начинается".


karabea@lipetsk.ru

Переход на главную страницу

Hosted by uCoz