PIC — микроконтроллеры Гарвардской архитектуры, производимые американской компанией
Базовая архитектура состоит из контроллеров семейства PIC10 и части контроллеров семейств PIC12 и PIC16. Основываются они на 12-и разрядной архитектуре слова программ и представлены контроллерами в корпусах от 6 до 28-и выводов. Широкий диапазон напряжений питания, возможность работы при низких напряжениях преследует целью возможность применения микроконтроллеров в батарейных устройствах. Свойства: маловыводные и миниатюрные корпуса, Flash память программ, низкое потребление тока, низкая цена, легкое освоение, всего 35 команд
Общие атрибуты всех 16-и разрядных семейств — это совместимость по выводам, общая система команд и, соответственно, общие компиляторы Си и средства разработки. Семейство 32-разрядных микроконтроллеров PIC32 выделяется увеличенной производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами. PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы.
|
|
Система команд. Каждая команда представляет собой 14-разрядное слово, содержащее поле кода операции OPCODE и поле операндов. Система команд включает в себя команды работы с байтами, команды работы с битами, команды управления и операции с константами. Все команды выполняются в течение одного командного цикла, кроме следующих двух случаев:
Переход по проверке условия, если результат проверки условия - истина. Изменение счетчика команд как результат выполнения команды. В этих случаях команда выполняется за два цикла с выполнением второго цикла как NOP. Один командный цикл состоит из четырех периодов генератора. Так, для генератора с частотой 4 МГц время выполнения команды составит 1 мкс.
Текст программы должен быть разбит на секции с тем, чтобы его было легко читать, сопровождать, документировать и модифицировать. Применительно к PIC-микроконтроллерам структура
текста программы может выглядеть так:
а) блок определений: секция заголовка, секция подключаемых файлов, секция конфигурации,
секция определения констант, секция определения EEPROM-данных, секция определения макросов, секция объявления переменных
б) блок кода: вектор сброса, обработчик прерывания, код инициализации, основной цикл программы, подпрограммы, END.
Для оформления секций внутри одного файла есть свои правила:
а) Каждая секция должна содержать только те описания, которые ей соответствуют.
б) Секции должны быть едиными, а не разделенными на несколько кусков.
в) Каждой секции должен предшествовать хорошо заметный блок комментария.