Лабораторные работы на МК PIC или версия "БЫСТРОГО СТАРТА"

PIC
Когда то, давным давно… В далекой галактике....

Когда я был студентом вуза, обратился ко мне один мой бывший преподаватель из колледжа с предложением: разработать лабораторные работы по предмету микропроцессорная техника.
А дело обстояло так, курс приличный — 2 семестра, пар достаточно. Читал студентам колледжа по специальности АТПП банальные, скучные лекции по микропроцессорам, пытаясь давать какие то неинтересные, скучные, простые но все равно непонятные лабораторки на ассемблере.

Студенты в обще народ ленивый и большинство ходило на предмет для галочки, т.к. не интересно… слушать о каких то там регистрах, пересылках, ассемблерных командах ну и тд, не понимая зачем все это в конечном итоге и как все это работает. В общем решили сделать в дополнение к курсу небольшой цикл лекций и лабораторных работ на МК PIC и mikroC. Естественно то, что положено по программе никто не отменял.

В итоге получилось следующее:
Лекции — по возможности простые, без детального углубления, но позволяющие понять основы работы микропроцессорной техники и быстро «стартануть» на микроконтроллерах. (Напомню что они шли в дополнение к базовому курсу). Так вот по сравнению с лекциями базового курса, студенты реагировали гораздо лучше, к ним приходило какое то понимание и осмысление того, что они делают в принципе и для чего. Основой лекций являются презентации, а текстовые пояснения делались в первую очередь для себя, чтобы ни о чем не забыть рассказать, поэтому текстовый материал на полноту не претендует и требует наличие преподавателя, тем не менее я тоже решил его выложить.

Что же из себя представляют «лабы» — набор методичек в которых написано что и как делать, даны листинги программ с комментариями. Ну и постепенно работы усложнялись, сначала бегущий огонек, затем пиликанье мелодий, вольтметр, термометр, часы. И к каждой лабораторке предлагалось тем или иным образом изменить и доработать программу, что бы все не сводилось к набору текста и его компиляции. Ну а в коне — каждый должен был разработать модель собственного устройства, опираясь на полученные навыки. Писались программы на mikroC. Многие конечно закричат, что это безобразие, компилятор не оптимальный, нужно давать ассемблер и т.д. Но я решил так, лекции по ассемблеру им и так читали, а лабы на ассемблере — слишком сложно для студентов колледжа, все сводиться к поиску опечаток при наборе текста, а о каких то дополнительных изменениях в программе и говорить нечего… поэтому C. К тому же этот компилятор весьма прост и удобен, как показала практика, его достаточно быстро осваивают начинающие. Да и в общем то mikroC позволяет достаточно быстро решить относительно сложные задачи с минимальными затратами, конечно программа не очень оптимальна, но это не всегда критично, к тому же директиву ASM никто не отменял. В сочетании с mikroC использовался Proteus (кто не знает — система моделирования). В протеусе были разработаны 2 стенда, основанные на МК PIC16F887, и имеющие кучу всякой периферии: светодиоды, кнопки, клавиатуру, дисплеи, датчики температуры, терминал вместо кома, подстроечные резисторы для работы с АЦП, расширитель портов по протоколу I2C, даже двигатели: постоянного тока и шаговый. Можно написать программу, загнать в протеус и получить результат. Но еще те же самые стенды существовали в реальном железе, и вот они то и нравились студентам больше всего.

На лабораторные работы большинство народу ходило с интересом, зная что будет не скучно. Я охарактеризовал расклад в группе примерно так из 25 человек:
4-6 человек реально интересовались, быстро проделывая все лабы и выходили за рамки предложенного курса, начиная самостоятельно разбираться, вникать и экспериментировать.
1-3 человека не реагировали ни как, наверное это как раз те, которым все не интересно, и которые учатся чисто чтобы «предки отвязались».
а вот остальные — как раз проявляли заинтересованность, им было не скучно, даже с небольшими доп. заданиями обычно справлялись все.
К тому же интерес подогревался наличием реального железа, на котором каждый мог посмотреть свою программу и убедиться что она действительно работает.

В общем решил я выложить все это «добро», авось кому пригодится, поможет попробовать себя, «стартовать», даст практику. Ведь зачастую получается как — вот вроде выучил человек матчасть по МК, светодиодом помигал, а браться за что то серьезное еще страшно, да и не понятно как, вот как раз на преодоление этого этапа и направлены данные лабораторные работы. Proteus и mikroC можно брать с офф сайтов, хватит и демо версий. Файлы с моделями я прилагаю, а вот листингов программ нет, точнее они есть, но выкладывать не буду, мое убеждение такое — хочешь освоить программирование — пиши сам, копипаст тоже не прокатит, т.к. в PDF вставлены картинки с листингами. :)

Не нужно боятся — нужно пробовать!
Ну а если есть вопросы — пишите в комментариях, заинтересовавшимся буду помогать.
  • +8
  • 29 сентября 2014, 15:01
  • ppram5
  • 1
Файлы в топике: LAB.zip

Комментарии (8)

RSS свернуть / развернуть
Ну, насчёт кода в виде картинок это лишнее. Один хрен, бездельники будут копировать у ботанов, а так — только в умении набирать текст прок, но время ведь дороже, лучше вместо этого почитать что-то о контроллерах или программировании. Это разве что не давать готовые проекты, что бы сами разбирались, кто хочет, компилировали и т.д., а зажимать текст программы это лишнее. В любом случае — кому лень, те найдут выход. Или студентом не были?
0
  • avatar
  • Flash
  • 29 сентября 2014, 18:49
Цель такого действия банальна — когда студент набирает текст сам в голове остается значительно больше нежели он занимается переделкой готового кода, это проверено на практике.
0
Легко читается, материал подан очень хорошо, можно книгу выпускать…

Спасибо.
+1
Надо все переделать под изучение архитектуры и системы команд ARM.

Есть еще такая потешная гадость, как TI MSP430 — тоже можно дать дополнительно архитектуру и обязательно asm. Но это чисто в общих академических целях, чтобы детки знали что такое классический и правильный CISC проц (а-ля PDP-11/Motorola 68xxx) и его ассемблер. Но сей проц под большим вопросом, т.к. проприетарный и 16-битовый и не известно сколько он еще проживет под натиском Cortex-M, плюс еще пиндосы ВНЕЗАПНО объявят сие «уникальным достижением мозгов САСШ» и обрубят его поставки в РФ.

Есть еще старый, добрый MIPS — академическая классика при изучении 32-битового CPU с RISC архитектурой. Хнык-хнык, но сия архитектура сейчас тоже под большим вопросом.

А инструментарий — есно GCC only.
-3
С тем что вы пишите я в принципе согласен, но это уже вузовская программа и маленько по другой специальности.
+1
Респектище за проделанную работу! Ну и то, что передаёте эстафету.
+1
Добрый день! Спасибо за лекции.
Жаль нету слайдов
0
  • avatar
  • ae999
  • 09 декабря 2015, 22:24
Слайды есть. Скачал архив — все открывается (презентации сделаны в PowerPoint 2007).
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.