Микроконтроллеры |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Микроконтроллеры |
9.9.2009, 17:52
Сообщение
#1
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Ну что, начнем. Заранее заявляю, что я сам тоже новичок в этом деле, так, что если что не так с удовольствием приму и критику и замечания и дополнения.
Что такое микроконтроллер (МК)? Это микросхема которая сама по себе АБСОЛЮТНО ничего не умеет делать в отличии от даже самой примитивной логики. Для того, чтобы заставить МК выполнять какую-нибуть работу надо прошить (загрузить) в него программу. МК выпускаются многими фирмами - Mikrochip, Atmel, Motorolla, etc. Здесь будут рассматриваться только МК фирмы Mikrochip, так называемые pic-контроллеры. Их легко различить по маркировке от других, название начинается с префикса PIC или (в современных сигнальных процессорах) dsPIC, например, PIC18F2520, PIC16F877 и т.д. Наиболее употребимые в любительской практике - 8-разрядные контроллеры среднего и высшего семейств, PIC16 и PIC18. Буква "F" в маркировке МК означает, что он может многократно перезаписываться, т.е. если по каким-либо причинам надо поменять программу (прошивку), то это легко можно осуществить при помощи программатора (об этом попозже). Есть МК и с буквой "С" - это однократно программируемые. Питание МК - +5В, хотя многие из них могут работать и при пониженном напряжении, от +2,5В. Потребляемый ими ток насколько мал, что о нем и говорить неудобно (IMG:style_emoticons/default/dry.gif) Так что-же все таки представляет собй МК? Это микросхема с определенным количеством выводов (8, 14, 16, 18, 20, 28, 40 и т.д), как минимум двое из которых предназначены для подачи питания, а почти все остальные представляют собой линии ввода-вывода. Почти - потому-что есть МК, которые обязательно должны тактироваться внешним кварцем (еще 2 вывода) и/или имеют отдельный вывод сброса. А есть и такие, что могут работать как от внешнего так и от внутреннего генераторов, в этом случае освободившиеся выводы тоже можно использовать для дела. Конкретно количество выводов данных можно посмотреть в даташите на конкретный МК. Т.к. МК 8-и битные, то и выводы организованы в шины той-же разрядности, или, как их называют - порты. В зависимости от кол-ва ножек могут быть порты A, B, C, D, E, которые на изображении МК обозначаются след. образом: буква R, затем наименование порта, затем номер разряда порта, напр. RA0, RC2, RB7... В МК совсем необязательно наличие всех разрядов какого-либо порта, например, могут быть RC3...RC7, a RC0, RC1 и RC2 - отсутствовать. В принципе, это не имеет значения, т.к. любой порт можно запрограммировать на выполнение практически любой задачи (исключая некоторые специфические, такие, как обмен данными по USB или Ethernet), так, что без разницы - подключен, например, светодиод, сигнализирующий о превышении температуры к порту RB5 или RE0. Исключение составляют выводы порта А, которые можно сконфигурировать так, чтоб они работали в аналоговом режиме (все остальные только цифровые). Естественно, порт А также может работать в цифровом режиме, что он и делает по умолчанию. Аналоговый режим используется для задействования встроенных АЦП - аналого-цифровых преобразователей, с их помощью измеряются аналоговые сигналы, например, напряжение, показания термодатчиков и т.д. С распространением различных протоколов на определенные выводы могут также возлагаться дополнительные функции. Это не значит, что с другими выводами нельзя добиться результата, просто, если на вывод подключена какая-либо доп. функция, то результат достигается более легкими программными способами. Для примера приведу обозначения выводов МК PIC16F876 1 MCLR/VPP/RE3 2 RA0/AN0 3 RA1/AN1 4 RA2/AN2/VREF-/CVREF 5 RA3/AN3/VREF+ 6 RA4/T0CKI/C1OUT 7 RA5/AN5/SS/HLVDIN/C2OUT 8 VSS 9 OSC1/CLK1 10 OSC2/CLK0 11 RC0/T1OSO/T13CKI 12 RC1/T1OSI/CCP2 13 RC2/CCP1 14 RC3/SCK/SCL 15 RC4/SDI/SDA 16 RC5/SDO 17 RC6/TX/CK 18 RC7/RX/DT 19 VSS 20 VDD 21 RB0/INT 22 RB1 23 RB2 26 RB3/PGM 25 RB4 26 RB5 27 RB6/PGC 28 RB7/PGD Смотрим, что мы тут имеем. МК имеет 2 вывода для соединения с общим проводом (8 и 19 - Vss), вывод питания - 20 - Vdd, отдельные выводы для подачи тактовых импульсов или подключения кварца - 9 - OSC1/CLK1 и 10 - OSC2/CLK0. Вывод сброса по желанию можно переконфигурировать для обработки данных - 1 - MCLR/VPP/RE3, т.е. он превращается в RE3. Все остальные - данные. Дальше, некоторые выводы не имеют никаких специальных функций, например, RB1...RB7. Здесь PGM, PGC, PGD, а также Vpp на выводе 1 - сигналы с программатора, после прошивки МК они (имеются в виду сигналы а не выводы) не используются. Порты А, как видно, могут переконфигурироваться и работать как AN0...AN5 - аналоговые входы. Некоторые сигналы (вернее протоколы) могут нам никогда и не понадобиться, так, что не стоит сейчас акцентировать на них внимание, просто опять же для примера упомянем 17 - RC6/TX/CK 18 - RC7/RX/DT, т.е. если надо, чтоб МК взаимодействовал с компьютером по последовательному интерфейсу (СОМ порт), то для этой цели лучше выбрать выводы 17 и 18, т.к. на них посажены также режимы RX и TX. ----------------- Естественно, т.к. МК работают под управлением программы, то в них должна быть предусмотрена память для этих самых программ. В зависимости от МК объем памяти может колебаться от сотен байт до десятков килобайт. Память, как уже отмечалось, обычно многократно перезаписываемая. Помимо программной МК может также иметь RAM память (ОЗУ) - для временного хранения данных/переменных во время работы программы, а также EEPROM - постоянная память для хранения данных при выключенном питании контроллера. Скажем, если на контроллере построен борткомпьютер, то, например, пройденный путь или израсходованный бензин надо писать именно в EEPROM, иначе данные потеряются после выключения зажигания. Данные же о мгновенном расходе пишутся в RAM. Конкретно объем программной памяти и наличие/отсутствие и объем RAM и EEPROM надо опять же смотреть в соотв. даташитах. ----------------- Я честно говоря, не знаю, надо ли продолжать или нет, т.к. в сети есть куча информации по различным МК, так, что если есть желание, то изучить их работу в желаемом для себя объеме нетрудно. Если есть интерес к обсуждению этого вопроса именно здесь а не на спец. форумах, то в след. раз поговорим о самих программах и программаторах. |
|
|
1.5.2011, 11:50
Сообщение
#141
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
(IMG:style_emoticons/default/smile.gif)
Сравнивать можно с любым, или с RAW -кодом (см. даташит на DS1820) или уже с перерасчитанным. |
|
|
26.5.2011, 21:37
Сообщение
#142
|
|
Technical maniac Группа: Почетные ветераны Сообщений: 1181 Регистрация: 13.7.2010 Из: Астрахань Вне форума Авто: Lancer IX-1.5 CVT Репутация: 49 |
Ну как, кто-нибуть купил/получил PicKit? Что-то все молчат... (IMG:style_emoticons/default/dry.gif) Я купил!И адаптер спаял (IMG:style_emoticons/default/smile.gif) |
|
|
23.8.2011, 22:52
Сообщение
#143
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 17 Регистрация: 13.1.2011 Вне форума Репутация: 0 |
как на PicBasicPro можно реализовать RGB свет?
|
|
|
24.8.2011, 16:07
Сообщение
#144
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
3 программных ШИМ-а
|
|
|
25.8.2011, 15:58
Сообщение
#145
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 17 Регистрация: 13.1.2011 Вне форума Репутация: 0 |
x var word
TRISIO = %110001 main: For X = 0 to 255 step 5 pwm GPIO.1, X, 5 next pause 1000 next x end это программа одного светодиода включение на pic 12 f629 просто если pic 12 f629 выполняет команду pwm он не может выполнять других действий , а как тогда быть с другими светодиодами? |
|
|
25.8.2011, 16:22
Сообщение
#146
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Есть пики со встроенными (аппаратными) PWM. Напр. PIC16F737, имеет на борту 3 PWM модуля.
Запуск встроенного модуля подразумевает непрерывное выполнение программы. Еще глянь здесь, правда не на PicBasic, но все-таки... В частности AN1074 http://www.gaw.ru/html.cgi/txt/publ/opto/led.htm |
|
|
5.9.2011, 20:40
Сообщение
#147
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 36 Регистрация: 11.2.2011 Из: Шуя Вне форума Репутация: 0 |
Здравствуйте, подскажите можно ли так делать PORTА. 1 = ( здесь имя переменной) значение у которой будет 1 или 0, будет ли так порт работать? МикроБейсик
|
|
|
5.9.2011, 20:50
Сообщение
#148
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Можно, если тип переменной выбран правильно (bit)
|
|
|
6.9.2011, 17:26
Сообщение
#149
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 36 Регистрация: 11.2.2011 Из: Шуя Вне форума Репутация: 0 |
SSh, Вы ни когда не делали что-то, типо бегущей строки, я думал что все просто, электронную часть сделал, а вот с программной появилис проблемки, хотелось бы понять принцип действия её, или исходники программы посмотреть. PIC 16F876, микробейсик.
|
|
|
6.9.2011, 17:38
Сообщение
#150
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Нет, не делал... А на чем реализуется эта строка (LED матрицы, ЖК индикаторы, etc...)?
|
|
|
6.9.2011, 17:45
Сообщение
#151
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 36 Регистрация: 11.2.2011 Из: Шуя Вне форума Репутация: 0 |
Светодиоды пиранья, 5х15. на транзисторах.
|
|
|
6.9.2011, 18:43
Сообщение
#152
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
А дальше? Драйвера, сдвиговые регистры и т.д. Вообще мне часто попадались подобные устройства, просто за ненадобностью не читал...
http://www.google.com/search?hl=en&sou...591l591l5-1l1l0 |
|
|
6.9.2011, 19:40
Сообщение
#153
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 36 Регистрация: 11.2.2011 Из: Шуя Вне форума Репутация: 0 |
Мне хочется как можно проще, ПИК транзисторы и светодиоды, схему сам придумывал, работает! но получается выводить только строчки по горизонтали или по вертикали. Мне не нужно слова разные выводить, клавиатуры подсоединять, пик к компу...., просто с прошивкой пару слов залить и все. Так можно?
|
|
|
6.9.2011, 20:27
Сообщение
#154
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Так, навскидку, в любом случае придется применить сдвиговые регистры.
Вот здесь законченные конструкции, повыкидывай ненужное или подправь... http://begstr.narod.ru/ http://monitor.net.ru/forum/topic208883-32.html http://radionet.com.ru/shem/shem877.html и таких еще очень много... |
|
|
6.9.2011, 20:46
Сообщение
#155
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 36 Регистрация: 11.2.2011 Из: Шуя Вне форума Репутация: 0 |
SSh, спасибо, буду пытаться...
|
|
|
3.10.2011, 21:08
Сообщение
#156
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 17 Регистрация: 13.1.2011 Вне форума Репутация: 0 |
еще раз про RGB я прото читал эт статью http://www.radiohlam.ru/teory/shim_3ch.htm
там код на асемблере , думаю как описать это на picbasic |
|
|
3.10.2011, 21:22
Сообщение
#157
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Один из вариантов - переключать выходные уровни по прерыванию от внутр. таймера.
Или подобрать контроллер с соответствующим кол-вом ССР модулей на борту, напр. PIC16F737 содержит 3 таких модуля, а некоторые из серий PIC24 и dsPIC - до 8-и Для этого случая в PicBasic есть команда HPWM. |
|
|
3.1.2012, 21:20
Сообщение
#158
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 36 Регистрация: 11.2.2011 Из: Шуя Вне форума Репутация: 0 |
SSh, вы ни когда не писали или не встречались с программами на микробэйсике под контроллер пик16ф873 для ключа iButton? Интересно как считывать с него код.
|
|
|
3.1.2012, 21:38
Сообщение
#159
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
iButton работает по протоколу OneWare, MikroBasic имеет соотв. библиотеки.
Такой девайс у меня уже давно валяется - никак времени не выберу поковыряться, да в принципе не было пока необходимости. А какой пик - не важно... |
|
|
3.1.2012, 21:42
Сообщение
#160
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Посмотри еще здесь
http://www.mikroe.com/forum/search.php?key...author=&fid[]=142&sc=1&sf=all&sk=t&sd=d&sr=posts&st=0&ch=300&t=0&submit=Search |
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|