У меня есть знакомые радиолюбители, с большим опытом работы с различной электроникой, но по разным причинам не освоившим работу микроконтроллеров.
Попытаюсь тут изложить мой вариант учебного курса для этой категории "начинающих эмбеддеров".
Рассматриваю только варианты на микроконтроллере 8051 (совместимый с 8052).
Для создания собственного проекта на МК 8051 нужно сделать несколько вещей:
1. Купить программатор и демоплату.
2. Нужно установить на компьютер компилятор (среду программирования) поддерживающий программатор и выбранный МК.
3. Найти в интернет демопроект соответсвующий среде программирования и МК. Или написать свой.
Варианты с прграммированием на Ассемблере не рассматриваю, т.к. они сложны для "этой категории" начинающих эмбеддеров. Язык Си намного проще в освоении - с ним и будем работать.
У меня есть несколько вариантов демоплат, но так как мне нужны в настоящий момент микроконтроллеры фирмы SiLabs и я уже купил программатор и демоплату для МК S8051F320, то буду рассматривать этот вариант. Мне так проще.
Фирма SiLabs предлагает свою среду программирования IDE, в которую можно подключить несколько разных компиляторов. Компиляторы могут быть платные и бесплатные - их выбор предлагается сделать пользователю. Одновременно с этим делается упор на программный продукт фирмы Keil, предлагают специальный драйвер программатора и т.д.
В интернете пишут, что Keil взяли за основу компилятор Franklin (купили фирму вместе с ее продуктом) и усовершенствовали его. Мне приходилось раньше работать с компилятором Franklin, поэтому выбор среды программирования Keil предпочтителен.
Есть еще популярный компилятор фирмы IAR, для МК 8051. Кстати, на его досовском варианте (DOS) мне посчастливилось изучать язык ANSI C.
В ДОС удобно изучать еще и потому, что там все этапы компиляции видны, наглядны и доступны. Имеется его полное описание на русском языке. Что есть большая редкость.
Предлагаю изучать язык программирования ANSI C и принципы работы компилятора на ДОС версии IAR. А сам учебный проект делать на современной windows версии Keil.
Среды программирования Keil и IAR дают возможность делать небольшие учебные проекты с размером кода до 2 или 8 кБайт ( у всех фирм по разному, бывает до 32 кБайт). Обьем 8 кБайт достаточно для работы очень многих устройств. Трудно в 8 кб реализовать расчеты с плавающей точкой или интернет приложения, а портативный измерительный прибор или устройство автоматики - без проблем.
Микроконтроллер Intel 8052 отличается от Intel 8051 расширенными возможностями. Традиционно их называют i8051, но фактически выпускаются только 8052.
В старых моделях на кристалле был только микропроцессор. Например, в отечественном аналоге КР1816ВЕ31 (i8031) вообще не было никакой памяти - ни ПЗУ, ни ОЗУ. Только "голый" процессор. Вся память была внешней. В современных МК 8052 на криссталее установлена многократно перепрограммируемая память программ (Flash), электрически программируемая память (ПЗУ) данных , оперативная память (ОЗУ), а кроме этого АЦП, ЦАП, компараторы, ШИМ, Интерфейсы с аппаратной поддержкой - I2C, SPI, UART, USB, Ethernet и т.д. Все, что кроме памяти и ядра называют "периферией".
В старых 8051 одна команда (типовая пересылка одного байта из регистра в регистр) выполнялась за 12 тактов генератора. Если частота генератора 12 мГц, то МК имел производительность 1 млн операций в секунду. Во многих современных 8052 одна операция выполняется за 1 такт, соответственно производительность равна тактовой частоте, при 25 мГц - 25 млн операций в секунду. Для сравнения IBM PC имел 8 Мгц генератор, 8-разрядную шину данных и одну команду выполнял за 12 тактов.
Есть модели МК 8051 с тактовой частотой 400 мГц и более.
Ядро 8051 удобно изучать по книге: Однокристальные микро ЭВМ. Справочник. Бобрыкин А.В. и др. М.: МИКАП, 1994 - 400 с.
В интернете много электронных копий этой книги, - позже выложу ее на файлообменник.
Язык программирования ANSI C подробно описан в документации к компилятору DOS IAR.
Там же описание работы компилятора DOS IAR для МК 8051, что тоже является общим для всех других компиляторов - есть небольшие отличия, но не существенные. Сам принцип общий.
Для начала нужно изучить материал, в книге "Однокристальные микро ЭВМ" начиная с 107 страницы, о принципах работы ядра 8051.
Затем изучить описание языка ANSI C.
Далее прочитать документацию на компилятор DOS IAR.
Это необходимый минимум.
Компилятор создает файл обычно формата HEX (расширение типа - name.hex, но бывают и другие форматы) который с помощью программатора загружается в область памяти программ (Flash). Этот код выполняется МК. Обычно всегда бывают ошибки - среды программирования предоставляют различные инструменты для отладки кода программы. Собственно этим они и отличаются друг от друга.
Продолжение следует...
Последний раз редактировалось Leff; 21.05.2012 в 10:10.
Подключаем дисплей WH-1602C-YYH-CTK, ЖКИ 16х2 англ/рус (DV-16236S1FBLY-H/R), например этот - http://www.platan.ru/cgi-bin/qwery.p...70&group=21103. к демоплате EX-320.
В плату дисплея WH-1602C запаиваем разьем IDC-16. Запаиваем с обратной стороны разьема подстроечный резистор 10 ком (ползунок резистора на 3 пин разьема). Распайка разьема дисплея в даташите.
Используем для подключения дисплея к плате специальные провода с "однопиновыми" разьемами.
Шина данных дисплея подключается к порту МК - Р1 (линии D0 дисплея к линиям Р1.0 порта демоплаты и т.д.)
Выводы управления к линиям порта P0: RS -> P0.5, R/W -> P0.6, E -> P0.7
Выводы подсветки 15 и 16 не используем.
Питание на плату подаем с лабораторного источника питания - 5 Вольт. Переключатель в соответствующем положении - см. фото. При подключенном программаторе питание может поступать от USB (если небольшой ток потребления платы).
Открываем проект в IDE Keil.
Нажимаем кнопку Download - должна быть произведена загрузка кода программы во Flash МК.
На дисплее должна появиться надпись:
" Hello, World!!
Привет RFCD "
Последний раз редактировалось Leff; 28.05.2012 в 19:02.
Подключил к плате, с программой для дисплея 1602, дисплейный модуль 1604 - тоже работает!
Очевидно, что понадобится небольшая корректировка программ, чтобы можно было выводить текст в 3 и 4 строки дисплея 1604.
Во вложенном файле схема демоплаты EX-320 и внешний вид - выкладывал ее в другой ветке, но тут она тоже нужна.
Плата очень проста, кроме микроконтроллера F320 и микросхемы стабилизатора 3.3 v, на ней больше ничего нет.
Раза три микросхему F320 выпаивал и запаивал в плату - вполне реально вручную паять эти корпуса. Под стереомикроскопом это значительно удобнее делать.
PS как выяснилось схема в даташите существенно отличается от схемы самой печатной платы.
Как говорится: "Производитель имеет право вносить изменения в конструкцию изделия, не ставя в известность потребителя".
Последний раз редактировалось Leff; 31.05.2012 в 18:58.
Во вложении файл конфигурации регистров микроконтроллера С8051F320.
Он почему то отличается от типового для Keil.
Этот файл нужно поместить в папки
C;/Keil/C51/INC/Cygnal/
C;/Keil/C51/INC/SiLABSl/
В папке SiLABS файл должен называться S8051F320