Що таке мікроконтролер і як його зібрати?
Подивіться на свою кухню. Мікрохвильова піч із світлодіодним дисплеєм, що світиться, і гумовою клавіатурою? Вона приховує ваш мозок. Це більше, ніж плата. Це мікроконтролер. Ці маленькі кремнієві чіпи всюди. Вони глибоко заховані усередині сучасних продуктів. Ви, мабуть, використовуєте їх десятки разів на день.
Подумайте про свою машину. Кожен має хоча б одну. У дорожчих моделях може бути до 6-7 автомобілів. Працює лише один двигун. Використовуються різні антиблокувальні гальма. Круїз-контроль? Це третя. Ви почнете помічати закономірність. Пристрій, з яким ви розмовляєте, напевно, має один.
Вони показані на телевізорі. Вони є у відеомагнітофонах. Навіть старі висококласні стереосистеми покладаються на них. Бажаєте зробити знімок? У високоякісній цифровій дзеркальній або цифровій камері це так. Мобільний телефон? Так. Камера. Відповідач. Лазерний принтер Це сучасний телефон із визначником номера та слотом пам’яті для 20 номерів? Так. пейджер. Так. Вони також використовуються у багатофункціональних побутових приладах, таких як холодильники та посудомийні машини із цифровими інтерфейсами.
По суті, коли продукт взаємодіє із користувачем, усередині нього є мікроконтролер.
Але що саме таке? Чому нам варто дбати?
Розуміння цього компонента змінить ваш погляд на технології. Не магія. Це просто інженерія. Розуміння того, як це працює, відкриває чорну скриньку. Ви можете почати створювати щось самі.
Давайте розгадаємо цю таємницю. Дізнайтеся, що таке мікроконтролер. Зрозумійте, як ваші дані обробляються. Потім ви маєте це зробити. Зробіть цифровий годинник. Ось і все. Використовуйте мікроконтролер.
Далі ми зробимо цифровий термометр.
Ці предмети більше, ніж просто іграшки. Вони розкажуть вам про комерційно доступні продукти. Подивіться, як інженери проектують обладнання, яке використовують. Це практична інформація.
“По суті, мікроконтролери вбудовані в продукти та пристрої, з якими взаємодіють користувачі.”
Це перший крок. Все, що залишилося, — це реалізація.
Мікроконтролер – це комп’ютер. Він має ту саму базову структуру, що й настільний комп’ютер, де ви, мабуть, читаєте цей текст. У ньому є процесор, який виконує код. Він витягує цей код із пам’яті зберігання. Використовує оперативну пам’ять (RAM) для тимчасових змінних. Має входи та виходи, які взаємодіють із зовнішнім світом.
Різниця полягає у призначенні. Настільний комп’ютер – це пристрій загального призначення. На ньому можна запускати браузер, ігри чи текстовий процесор. Мікроконтролери – це спеціалізовані пристрої. Вони виконують одне завдання. І роблять це дуже добре.
Пристрій використовує вбудований драйвер, якщо він відповідає певним стандартам.
Спеціалізоване призначення
Ці чіпи приховані всередині інших пристроїв. Вони керують функціональністю чи поведінкою споживчих товарів. Ви їх не бачите. Ви взаємодієте лише з контентом, який вони забезпечують.
Вони призначені для конкретних завдань. Вони запускають одну програму. Програми зазвичай зберігаються у ПЗП (постійній пам’яті) і рідко змінюються. Вони «впаяні» у пристрій.
Енергоспоживання тут має важливе значення. Настільний комп’ютер, підключений до електромережі, може споживати 50 Вт потужності. Мікроконтролер, що працює від батареї, може споживати всього 50 мл. Це значно впливає ефективність.
Входи, виходи та довкілля
Мікроконтролери мають свої пристрої введення. Часто вони мають невеликий світлодіод (LED) або РК-дисплей для виведення інформації. Але більшу частину часу вони взаємодіють із обладнанням, яким керують.
Візьміть телевізор. Мікроконтролер отримує вхідні дані від пульта дистанційного керування. Виводить інформацію на екран. Керує перемикачем каналів. Регулює гучність динаміків. Налаштовує тональність та яскравість електроніки електронно-променевої трубки.
Або подивіться на ваш автомобіль. Контролер двигуна отримує вхідні дані від датчика кисню та датчика детонації. Керує паливною сумішшю. Синхронізує роботу свічок запалювання.
Мікрохвильова піч також є класичним прикладом. Вона приймає вхідні дані із клавіатури. Відображає час на РК-екрані. Активує реле для увімкнення або вимкнення магнетрону.
Ці чіпи також працюють у суворих умовах. Вони зазвичай є надійними, хоча не обов’язково міцними та довговічними у механічному сенсі. Контролери двигуна для автомобілів, що експлуатуються на Алясці, повинні витримувати температуру до -30°F. У Неваді температура може досягати 120°F. У поєднанні із власним теплом двигуна температура в салоні автомобіля може підніматися до 150–180°F.
Мікроконтролер усередині відеомагнітофона (VCR)? Йому, мабуть, все одно. Він зовсім не є міцним.
Внутрішнє обладнання
Сам процесор відрізняється. Він може бути застарілим. Він може бути напрочуд потужним.
Процесори Z-80 можуть використовуватись у цифрових телефонах. Це 8-бітний чіп 1970-х років. Спочатку він живив домашні комп’ютери.
GPS-навігатори Garmin використовують енергоефективну версію процесора Intel 80386. 80386 є стандартом настільних комп’ютерів. Тепер він знаходиться усередині портативного навігатора.
Для простих завдань виробники віддають перевагу спеціалізованим чіпам мікроконтролерів. Ціна та розмір є вирішальними факторами. Motorola 6811 та Intel 8051 є історичними прикладами. Вони розроблені так, щоб бути недорогими, компактними та енергоефективними.
Потім є мікроконтролери PIC. Є причина, через яку ці продукти, розроблені компанією Microchip, такі популярні. За сучасними мірками вони мінімалістичні. Але при покупці великими партіями вони неймовірно дешеві. Один чіп задовольняє потреби розробника.
Чому простота перемагає
Розглянемо типовий недорогий чіп мікроконтролера. Він може мати 1000 байт ПЗП. 20 байт оперативної пам’яті. 8 контактів вводу/виводу.
При виробництві великими партіями його вартість становить лише кілька центів.
На цьому чіпі ви ніколи не запустите Microsoft Word. Word вимагає 30 МБ оперативної пам’яті та процесора, здатного обробляти мільйони команд за секунду.
Однак для керування мікрохвильовою піччю вам не потрібний Word. Вам потрібно виконати конкретне завдання. Низька ціна. Низьке енергоспоживання. Ось ціннісна пропозиція мікроконтролерів.
Використання мікроконтролера
Тенденції змінюються. У міру того, як пристрої стають розумнішими, грань між «мікроконтролером» і «процесором» розмивається. Але основна філософія залишається незмінною. Якщо вам потрібно просто керувати реле, контролювати датчики та блимати світлодіодами, вам не потрібний суперкомп’ютер. Вам потрібен сфокусований та ефективний «мозок».
Наступного разу, коли ви перевірите годинник, відрегулюєте термостат або заведете машину, згадайте про цей маленький, надійний і недорогий чип, який тихо працює у фоновому режимі. Це не просто апаратне забезпечення. Це спеціалізований комп’ютер, який виконує свою роботу.
Найкращий спосіб – зібрати цифровий годинник на логічних елементах серії 7400 TTL. Ви навчитеся розуміти, як виникають стрибки напруги на транзисторі. Ви побачите, чому один інвертуючий вентиль (NOT gate) є фізичним чіпом. Ви також зрозумієте, що реалізація складних функцій потребує складного розведення та безлічі чіпів. Простий годинник може вимагати 15 або 20 окремих компонентів. Вони працюють. Однак вони громіздкі. І їх складно збирати.
Програмне забезпечення повністю змінює правила гри.
Мікроконтролери пакують логіку десятків вентилів в один кремнієвий чіп. Ви пишете програму. Чіп її виконує. Апаратна частина робить все інше. У цій статті ми пропускаємо етап складання на макетній платі та переходимо відразу до коду. Ми створюємо цифровий годинник. Вони коштують майже двісті доларів. Це здається безумством для годинника, який тільки показує час. Проте ціль — не економія грошей. Мета – навчитися взаємодіяти з мікроконтролером. Якщо ви зрозумієте це, ви зможете зробити все, що завгодно.
BASIC Stamp: Спрощення апаратної частини
Більшість мікроконтролерів вимагають знання мови асемблера чи складних драйверів. Необхідний програматор. Потрібно розуміти тактові цикли та відображення пам’яті. BASIC Stamp від Parallax усуває ці перешкоди. Це мікроконтролер PIC, запрограмований мовою BASIC, який добре знайомий більшості любителів електроніки.
Назва дослівна. Плата має розмір приблизно за поштову марку.
Ми працюємо над версією BASIC Stamp Revision D. Це не просто чіпи. Це повністю зібрана платня-носій. У комплекті тримач для 9-вольтової батареї. Оснащена регулятором напруги, що підтримує його стабільність. Є штирьові роз’єми для ліній введення/виводу. Також є невелика зона для прототипування, якщо ви бажаєте припаяти резистор або два безпосередньо до плати. Ви також можете купити оригінальний чіп BS-1 та спаяти схему самостійно. Версія D просто рятує вас від головного болю.
Чому варто використовувати «дорогі» Stamp?
BASIC Stamp не підходить для споживчих продуктів. Виробники їх не люблять. Вони дуже повільні. Вони дорогі. Якби ви виробляли 10 000 одиниць, ви, ймовірно, використовували б стандартний PIC або AVR. Але для прототипування? Їм немає рівних.
Встановлення звичайного мікроконтролера може тривати кілька годин. Потрібно налаштувати запобіжники (fuses). Потрібно записати завантажувач (bootloader). Потрібно налагоджувати послідовне виведення даних. Stamp вимагає лише двох речей. Підключіть його до порту на настільному комп’ютері. Ви пишете програму. Натискаєте “Надіслати”. Чіп працює.
За цією простотою ховається компроміс. Пам’ять BS-1 у Stamp обмежена. Пам’ять EEPROM містить всього близько 256 байт. Це еквівалентно приблизно 75 рядків коду BASIC. Є обмеження. Ви не можете створити веб-сервер. Високоякісні зображення не можна зберегти. Однак, ви можете змусити блимати світлодіод. Можна зчитувати дані із датчика. Можна запустити годинник.
Створюємо годинник
Я використовую це обладнання для створення цифрового годинника. Це буде дорого. Сама плата коштує лише частину цієї суми, але вам потрібен комп’ютер її програмування. Ви маєте знати свої межі.
Ліміт у 75 рядків змушує вас бути ефективним. Ви не можете роздмухувати свій код. Ви повинні враховувати, що саме чіпу потрібно робити. Чи потрібно йому відображати секунди? Так. Чи повинен дисплей оновлюватись кожну мілісекунду? Мабуть, ні. Кожен рядок важливий.
Цей підхід вчить вас основам вбудованих систем (embedded systems). Йдеться не лише про написання коду. Ви контролюєте свої ресурси. Ви працюєте у рамках апаратних обмежень. Якщо ви можете змусити годинник працювати на Stamp, ви можете керувати практично будь-яким пристроєм за допомогою мікроконтролера. Логіка залишається тією ж. Масштаб змінюється.
Сам годинник простий. Але шлях до їхнього створення — це справжня цінність. Навчіться підключатися через піни. Навчіться керувати часом. Навчіться завантажувати код на чіп із мінімальною пам’яттю або взагалі без неї.
“Stamp настільки малі і працюють від батареї, що ви можете брати їх майже куди завгодно.”
Ця портативність – реальна перевага. Ви можете взяти годинник anywhere. Ви можете підключити датчики. Ви можете перетворити їх на метеостанцію. База надійна. Код оптимізовано. Обладнання мінімальне.
Ви не просто створюєте годинник. Ви розвиваєте навички.
Спрощена мова для вбудованої логіки
Програмування на BASIC Stamp – це не винахід велосипеда. Використовується вдосконалена версія мови програмування BASIC. Якщо ви вже знаєте BASIC, вам буде все знайоме, тільки більш суворий синтаксис. Якщо у вас є досвід роботи з C, Pascal або Java, Stamp BASIC особливості легко освоїти. Якщо ви ніколи не писали код, не починайте з цього. Спочатку вивчіть основи на настільному комп’ютері.
Parallax детально описує це середовище, але для швидкого огляду розглянемо конкретний набір інструкцій, розроблених для обмеженого апаратного забезпечення.
Стандартний потік управління та підпрограми
Основна логіка залишається незмінною. Ось деякі стандартні конструкції для керування потоком програми:
for...nextдля стандартного циклу.gosubпереходить до підпрограми.gotoпереходить до позначеного рядка коду.if...thenдля умовних рішень.letдля виконання завдання (хоча Stamp BASIC зазвичай необов’язково).returnзавершує підпрограму.endзупиняє програму та переводить чіп у режим сну.
Прямі операції з висновками I/O
Тут і полягає життя та смерть Stamp. Висновки – це інтерфейси для фізичного світу. BS-1 має 8 висновків (0-7). BS-2 подвоює їхню кількість до 16 (0-15). Вони працюють в обох напрямках. Ви можете зчитувати дані з них та записувати дані в них.
Ви можете керувати ними за допомогою певних команд.
buttonвикористовує вбудовану логіку антибрязкоту та автоповтору для зчитування входів.highтаlowвстановлюють висновок у стан 1 (+5 В) або 0 (земля).inputтаoutputвизначають напрямок виведення.- Підключіть потенціометр до конденсатора відповідно до інструкцій, і
potзчитуватиме значення потенціометра. pulsinтаpulsoutобробляють введення та виведення тривалості імпульсу.- pwm генерує широтно-імпульсну модуляцію для двигунів або затемнення.
reverseзмінює напрямок введення-виведення.serinтаseroutобробляють послідовний зв’язок.soundгенерує певну частоту.toggleзмінює стан біта на виведенні.
Специфічні функції Stamp та EEPROM
Апаратне забезпечення має деякі особливості, на які мова реагує безпосередньо:
branchчитає таблицю розгалуження для прискорення пошуку.debugвідправляє рядок у консоль настільного комп’ютера.eepromобробляє зберігання програми.lookdownтаlookupдозволяють індексувати таблиці.napтаpauseвводять затримки.randomгенерує псевдовипадкові числа.readтаwriteвикористовують енергонезалежну пам’ять EEPROM.sleepвідключає чіп на певний час.
Арифметичні та логічні оператори
Математика є фундаментальною. Вона дуже базова.
+та-для складання та віднімання.*для множення молодшого слова.**для множення старшого слова./для розподілу.//для операції модуля (залишок від розподілу).maxтаminвикористовуються для знаходження екстремальних значень.
Логічні операції, наприклад:
&(AND)|(OR)^(XNOR)&/(NAND)|/(NOR)^/(XNOR)
Оператори порівняння для оператора if – це =, <>, <, <=, >, >=, AND, OR.
Обмеження пам'яті: реальність 14 байт
Змінні BS-1 не нескінченні. Існує рівно 14 байт оперативної пам'яті (RAM). Ви повинні ставитись до кожного байта як до золота.
Мова надає певні імена змінних, але ви також можете додавати псевдоніми до імен змінних.
w0-w6: 16-бітові змінні-слова.b0-b13: 8-бітові змінні-байти.bit0-bit15: 1-бітові логічні змінні.
У цьому полягає проблема. Через спосіб відображення пам'яті w0 і b0 (а також b1 ) поділяють те саме фізичне місце в ОЗУ. w1 поділяється з b2 та b3. bit0 -bit15 знаходяться в w0. Це означає, що зміна w0 також змінить b0 та b1. Це не є помилкою. Це обмеження. Ви повинні точно знати, що ви перезаписуєте.
Спілкування зі світом через висновки
Чому так багато інструкцій введення-виводу? Тому що ці висновки – єдиний спосіб, за допомогою якого Stamp спілкується із зовнішнім світом.
Відправлення значень просте. high 3 передає +5 на висновок 3. low 3 відправляє землю. Ви можете вибрати будь-який висновок від 0 до 7 для BS-1. Логіка аналогічна BS-2, але є більше висновків для керування.
Просунуті інструкції, такі як pwm для двигунів і pot для змінних резисторів, спрощують проектування апаратури. Для кожного аналогового входу не потрібна складна зовнішня схема. Stamp керує таймінгом імпульсу.
Якщо ви застрягли, “Programming and Customizing a BASIC Stamp Computer” Скотта Едвардса є надійним джерелом. Він включає в себе приклад проекту, який показує, як підключити ці компоненти разом, а не просто писати код.
Вам не потрібна ступінь кандидата наук у галузі вбудованих систем, щоб почати використовувати BASIC Stamp. Все, що вам потрібно, це настільний комп'ютер і BASIC Stamp Starter Kit. Цей комплект включає необхідне обладнання, кабелі для підключення та настільний додаток для завантаження коду BASIC у пам'ять чіпа.
Цей комплект можна придбати у компаній Parallax або Jameco, постачальників, яких ви, можливо, знаєте з наших попередніх статей про електронні ворота та цифровий годинник. Parallax вказує номер деталі BASIC Stamp D Starter Kit - 27202. Номер деталі у Jameco - 140089. Обидва коштують 79 доларів.
Parallax іноді проводить акції "We've Bagged the Basics". Цю пропозицію додає книгу Скотта Едвардса "Programming and Customizing the BASIC Stamp Computer" на ваше замовлення. Це корисний довідковий посібник, якщо ви хочете заглибитися далі, ніж дозволяє посібник користувача.
Підключення та виконання коду
Фізичне підключення просте. Підключіть Stamp до паралельного порту комп'ютера. Потім запустіть програму DOS, відредагуйте код і відправте його кабелем.
Натисніть ALT-R, щоб запустити програму в редакторі. Спочатку програма перевіряє ваш синтаксис. Потім вона завантажує код в незалежну пам'ять EEPROM чіпа. Чіп негайно починає його виконання.
Стандартний приклад створює прямокутну хвилю на виводі I/O 3. Підключіть логічний пробник або світлодіод до цього висновку. Ви побачите, що він блимає двічі на секунду. Команда PAUSE змушує стан змінюватися кожні 250 мілісекунд.
Цей пристрій споживає досить мало енергії, щоб працювати кілька тижнів від 9-вольтової батареї. Можна збільшити час роботи, настроївши таймінги. Увімкніть світлодіод лише на 50 мс, а потім вимикайте його на 450 мс. Заміна інструкцій PAUSE на інструкції NAP також може значно знизити споживання енергії.
Створення дійсно дорогого цифрового годинника
Витрачати 79 доларів на миготливі вогники здається марнотратством. Більшість людей хоче створити щось корисне за допомогою BASIC Stamp. Ще 100 доларів дозволять зібрати цифровий годинник. Вартість здається високою, поки ви не зрозумієте, що деталі не одноразові. Вони знадобляться для повторного використання. Ми будемо використовувати їх у майбутніх проектах.
Управління кількома цифрами при обмеженій кількості висновків
Припустимо, потрібно вивести число на виведення вводу/виводу (I/O). У попередньому посібнику з цифрового годинника ми показали, як використовувати мікросхему 7447 для підключення до 7-сегментного світлодіодного індикатора. Ці мікросхеми добре працюють із BASIC Stamp. Підключіть 4 виводи безпосередньо до 7447. На дисплеї з'явиться число від 0 до 9. Stamp BS-1 має вісім висновків вводу/виводу. Цього достатньо прямого живлення двох мікросхем 7447.
Годиннику потрібно 4 цифри. Вісім висновків не можуть одночасно керувати чотирма мікросхемами. Тут вам доведеться виявити креативність.
Ось схема підключення. Вісім ліній йдуть від Stamp. Чотири лінії підключені до всіх чотирьох мікросхем 7447. Вони передають дані. Інші чотири лінії активують мікросхеми по черзі. Висновок «E» мікросхеми 7447 є входом роздільної здатності. Він гасить екран. Програма Stamp виводить першу цифру. Переключіть першу лінію, щоб дозволити роботу першої мікросхеми. Потім надішліть інше значення. Воно активує другу мікросхему. Повторюйте цей процес для всіх чотирьох мікросхем нескінченно.
З'єднання можна виконати безліччю різних способів. 7447 може виявитися недостатньо. Використовуйте дешифратор 74154. Більше драйверів. Таким чином, ви зможете керувати до 16 цифрами.
Реальність мультиплексування
Саме так ви керуєте своїм світлодіодним дисплеєм. Відкрийте старий калькулятор зі світлодіодним дисплеєм. Увімкніть його. Потрясіть, дивлячись на екран. Уважно спостерігайте. Кожного моменту часу горить лише одна цифра. Цей метод називається мультиплексуванням дисплея. Обдуріть свій зір, щоб він сприймав повне число.
Мультиплексування працює з годинником. Працює із калькулятором. Але він має проблеми.
Світлодіоди швидко витрачають заряд батареї.
7-сегментні світлодіодні дисплеї відображають лише цифри.
Кількість символів, що відображаються, обмежена. А як щодо літер? А як щодо символів?
Перехід на РК-дисплей
РК-екран є альтернативою. Такі екрани всюди. Їх легко підключити до Stamp.
Розглянемо дворядковий алфавітно-цифровий дисплей на 16 символів. Такий тип доступний у Jameco. Артикул 150990. Також доступний у Parallax. Артикул 27910.

На цьому зображенні показано типовий дисплей. Він підключений до макетної плати. Це полегшує підключення. Вам не потрібно паяти дроти до відкритих контактів. Ви просто вставляєте їх у ряди.
Однорядковий РК-дисплей доріг, але з простої причини
Ви отримуєте те, за що ви платите. Цей тип РК-модуля дорогий. Його ціна складає близько 59 доларів. Це не такі дрібні гроші для любителя. Його виразно не можна використовувати в масово вироблених духовках. Маржа зникне ще до продажу першої одиниці.
Але вони існують не так. Процес проектування спрощено. Ви можете керувати всім дисплеєм, використовуючи всього один висновок вводу/виводу (I/O).
Цей модуль містить логіку. Він перебирає основну роботу з послідовного зв'язку. Мікроконтролер Stamp повинен лише надсилати дані. Команда SEROUT у мові Stamp BASIC робить це очевидним завданням. Не потрібні складні цикли із таймінгами. Вам не потрібно вовтузитися зі специфікаціями протоколів. Апаратна частина виконує всю роботу.
Живлення та функції дисплея
Споживання енергії дуже низьке. Цей пристрій споживає всього 3 міліампери струму. Це дуже мало для проекту з батарейним живленням. Він живиться від стандартної 9-вольтової батареї через плату Stamp, яка забезпечує необхідні +5 вольт та землю.
Сам екран є універсальним. Він відображає алфавітно-цифровий текст. Літери. Цифри. Ви також можете визначити символи користувача, якщо хочете отримати конкретну іконку. Це більше, ніж просто миготливий індикатор. Це висновок справжнього тексту.
Прототип та виробництво
Це реальність інтегрованого проектування. Ви можете створювати прототипи за допомогою дорогих, але простих у використанні компонентів. Потім ви переробляєте конструкцію зниження вартості.
Якщо ви створюєте комерційний продукт, ви використовуватимете цей дисплей за 59 доларів для перевірки логіки. Тестування коду. Ви переконаєтесь, що інтерфейс працює. Як тільки це буде підтверджено, я перейду до дешевшого ЖК-диска загального призначення. Ви напишете власні драйвери чипів. Оптимізуйте програмне забезпечення. Дорогі модулі є інструментами розробки, а не інструментами для фінального постачання.
Підключення
Підключення апаратної частини дуже просте. Подайте +5В та землю. Підключіть один із висновків I/O плати до лінії введення монітора.
Я волію використовувати обтискні дроти (wire wrapping). Це чисто. Надійно. Не вимагає паяння. Вам знадобиться інструмент для обтиску проводів (деталь Jameco 34577) та обтискний провід калібру 30 (Jameco 22541 – поширений вибір). Структура з'єднання компактна. Ви можете розмістити все в невеликому корпусі без великої кількості паяльника.
Структура коду та точність
Програма на BASIC нижче перетворює Stamp на годинник. Вона передбачає, що РК-дисплей підключено до виведення I/O 0.
` basic
pause 1000 ' Чекати на завантаження РК-дисплея
serout 0, n2400, (254, 1) ' Очистити екран
serout 0, n2400, ("time:") ' Вивести заголовок "time:"
' Встановити змінні перед завантаженням програми
b0 = 0 ' Секунди
b1 = 27 ' Хвилини
b2 = 6 ' Годинник
again:
b0 = b0 + 1 ' Збільшити секунди
if b0 < 60 then minutes
b0 = 0 ' Скинути секунди
b1 = b1 + 1 ' Додати
Minutes:
time if b1 < 60
b1 = 0 ' Скинути хвилини
b2 = b2 + 1 ' Додати час
Time:
Show if b2 < 13
b2 = 1 ' Скинути час (формат 12 годин)
Display:
serout 0, n2400, (254, 135) ' Позиція курсору
serout 0, n2400, (#b2, ":", #b1, ":", #b0, " ") ' Показувати час
pause 950 ' чекати 950 мс
Перейти до "Play" знову.
`
Запустіть програму. На РК-екрані відображається температура в градусах Цельсія з точністю 0,5 градуса.
Як працює додатковий код (2's complement) у DS1620
DS1620 не надсилає прості числа. Він вимірює температуру з кроком 0,5 градуса Цельсія та виводить 9-бітове число у додатковому коді (two's complement).
Чому це важливо? Правильне оброблення негативних температур. Діапазон становить від -55°C до +125°C (від -110°F до +250°F). Розділіть це значення на два, щоб отримати вимір у градусах Цельсія.
Додатковий код – це стандартний спосіб, яким комп'ютери представляють цілі знакові числа. Старший біт (найлівіший) є бітом знака. Якщо він дорівнює 0, число позитивне. Якщо 1, число негативне.
Розглянемо приклад для 4 біт. Ці значення становлять діапазон від -8 до +7, а не від 0 до 15.
0111дорівнює 70000дорівнює 01000дорівнює -81111дорівнює -1
Щоб перетворити негативне число на позитивне і відобразити його, інвертуйте всі біти і додайте 1. Цей код робить саме це в підпрограмі display. Перевірте bit8 (біт знака 9-бітного результату). Якщо число негативне, інвертуйте b0 і додайте 1. Потім посуньте його вправо, щоб одержати цілу частину.
Вилучення логіки коду
Ця програма використовує три підпрограми для керування протоколом зв'язку.
Визначення символів
Цей код використовує symbol для зіставлення фізичних номерів висновків з іменами, що читаються для людини. RST, CLK, DQ відповідають висновкам Stamp 0, 1, 2. Це робить ваш код переносимим. Навіть якщо ви зміните визначення symbol, решта логіки залишиться незмінною.
Процедура переведення (shift_out)
shift_out бере байти з b0 і надсилає їх по одному біту за раз.
1. Призначте вихід даних (DQ ) як вихід.
2. Виконайте цикл 8 разів.
3. Перевірте молодший біт b0.
4. Потягніть штифт годинника вниз, встановіть штифт даних на цей біт і натисніть на штифт годинника вгору.
5. Зсув b0 праворуч, щоб наступний біт перемістився до позиції молодшого біта.
Порядок прийому (shift_in)
shift_in читає 9-бітне значення температури в w0.
1. Налаштуйте вихідні дані як входи.
2. Виконайте цикл 9 разів.
3. Перемістіть штифт годинника вниз.
4. Прочитайте статус виведення даних у `.
Код не просто читає дані. Він закладає основу. Встановлює очікуваний стан контактів CLK і RST мікросхеми DS1620. Це перший крок.
Далі йде конфігурація. Мікроконтролер записує командний байт в енергонезалежну пам'ять DS1620. Перемикає мікросхему в «режим термометра». Ось руб. Шаблони конфігурації зберігаються в енергонезалежній пам'яті. Цю операцію потрібно виконати лише один раз. Технічно після першого запуску ви можете видалити цю частину коду, заощадивши цінний простір програми. Але чи варто це робити? Безпечніше залишити її.
Потім програма надсилає команду $EE. Зауважте, що префікс "$" означає шістнадцяткове число. Десяткове значення $EE дорівнює 238. Це починає процес перетворення. Термометр починає працювати.
Потім починається цикл.
Щосекунди Stamp запитує у DS1620 поточну температуру. Мікросхема відповідає 9-бітним значенням. Це значення зберігається в змінній w0. Передача даних відбувається поступово. Stamp перемикає лінію CLK на DS1620, щоб зсунути біти всередину.
Структура змінної є ієрархічною. w0 (16 біт) охоплює b0/b1 (8 біт) і включає bit0 до bit15 (1 біт). Цей код ділить w0 на два, коли з’являється біт 8. Це зсуває кожен біт праворуч. Це чудовий спосіб упакувати 9-бітні значення температури в одну змінну.
Коли w0 зберігає дані, вони передаються до екранної процедури. Перевіряє, додатне чи від’ємне число. Форматує вихід для РК-дисплея. Результати відображаються в градусах Цельсія. Якщо вам потрібна температура за Фаренгейтом, перетворення легко.
dF = dC * 9/5 + 32
Це дуже просто. Це працює. Тепер у вас дуже дорогий термометр.
Навіщо платити так багато?
Уявіть, що ви працюєте у фармацевтичній компанії. Ви доставляєте дорогі ліки по всій країні. Ці ліки необхідно зберігати при певних температурах. Відтавання або заморожування їх пошкодить. Повна втрата.
Ви можете використовувати Stamp для створення термометра з журналом даних.
Jameco продає RAM Pack (номер деталі 143811). Parallax також продає той самий продукт (номер частини 27960). Це енергозберігаючий чіп оперативної пам’яті ємністю 8 Кбайт із послідовним інтерфейсом. Якщо вам потрібно більше місця, ви також можете вибрати версію 32 Кб.
Додайте цей компонент до свого штампа. Напишіть код, який щохвилини зберігає показання температури в оперативній пам’яті. Вставте штамп у партію ліків. Ви отримаєте штамп, коли він досягне місця призначення. Модуль оперативної пам'яті тепер записує температурну історію всієї поїздки. Ви точно знатимете, чи ліки коли-небудь виходили за межі допустимих специфікацій.
Це лише одне застосування. Як тільки ви зрозумієте, як працюють мікроконтролери, ви зможете використовувати Stamp для створення незліченної кількості корисних пристроїв.
Більш детальну інформацію про мікроконтролери та суміжні теми можна знайти за посиланнями на наступних сторінках:
Специфікації стали товстішими. Це не керівництво, яке можна прочитати один раз і забути. «Товстіша» у тому сенсі, що з'явилися реальні цифри. Ці цифри точно показують, що може робити пристрій, перш ніж ви його купите. І цифр ще більше. Далі йде застереження про час автономної роботи. Технічно це правда, але практично марно.
Перевірка реальності апаратного забезпечення
Ви отримуєте процесор. Він швидкий. Швидше за попередній. Швидше старих ноутбуків, які звучали як злітаючий реактивний двигун щоразу, коли ви відкривали таблицю. Але ж це не магія. Цей чіп не прибирає у кімнаті. Він просто обробляє дані. Швидко. Дуже швидко. Якщо ви редагуєте відео. Або пишете код. Або відкрили 50 вкладок і питаєте себе, чому ваш ноутбук так сильно нагрівається?
Екран став яскравішим. Це головна перевага. На нього можна дивитись на вулиці. Не мружачи. Не бажаючи, щоб ваші очі мали вбудований HDR. Точні кольори. Якщо це важливо. Якщо ви дизайнер. Або просто втомилися від картинок, що виглядають так, ніби були зроблені в печері.
Далі – вага. Він легший. Але не невагомий. Ви все ще відчуваєте його у сумці. Він справляє сильне враження. Нагадування про те, що ви несете ноутбук. Це не планшет. Це не блокнот у буквальному значенні. Комп'ютер. З портами. Справжніми портами. Це не док-адаптер. Не перехідники, які коштують дорожче за сам пристрій. Це важливо. Дуже важливо. Тому що док-адаптери ламаються. Перехідники губляться. Порти залишаються.
Особливості програмного забезпечення та оновлення
Операційна система та сама. Здебільшого. Але є й зміни. Невеликі. Те, що ви помітите за тиждень? Не одразу. Новий значок з'явиться відразу. Нова колірна схема. Коли ви відкриваєте програму, якою користувалися 10 хвилин тому, є невелика затримка.
Оновлення відбуваються автоматично. Це добре. І погано. Добре, тому що не потрібно думати про патчі безпеки. Погано, тому що ваш комп'ютер може перезавантажитись саме тоді, коли ви думаєте, що закінчили на сьогодні. Це відбувається у незручний час. Перед тим, як ви збираєтеся зберегти документ. Або просто перед зустріччю.
Цей програмний пакет увімкнено. Він завжди пов'язаний разом. Ви маєте текстовий редактор. Таблиці. Інструменти для презентацій. Вони працюють разом. Не завжди добре. Але вони намагалися. Є синхронізація із хмарою. Вона швидка. Зазвичай. Іноді вона зупиняється. Після цього потрібно перезапустити програму. Потім залишається лише молитися.
Пастка екосистеми
Це та частина, яку люди ігнорують, доки не стає надто пізно. Пристрій не існує у вакуумі. Воно живе у саду. У обгородженому саду. Ви можете вийти. Але навіщо ми це робимо? Ці програми були ретельно відібрані. Поєднання глибоке. Телефон спілкується з ноутбуком. Годинник говорить телефону, що робити. Це дуже зручно.
Але це також обмежує. Коли ви змінюєте бренд. Ця зручність втрачається. Зникає перемикання каналів. Я втратив загальний буфер обміну. Я не можу відповідати на дзвінки на своєму ноутбуці. Це здається дрібницею. Але це негаразд. Це щоденне тертя. Додати трохи роздратування.
Решта – це ціна аксесуарів. Це не є ціна. Оплата. Власний кабель. Спеціальний зарядний пристрій. Це ідеальний випадок. Це дорого. І вони гарні. І

















