Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Arduino ide язык программирования. | Знаток Статьи

Инновационный мир микроэлектроники и робототехники многогранен и интересен. В настоящее время робототехнические системы представляются важной составляющей ежедневной реальности. Они и домашние ассистенты, но еще и сложные электромеханические аппараты, предоставляющие безопасность и связь, информационную и информативную поддержку в разнообразных сферах и областях, а также обработку данных. Также станции, служащие различным исследовательским экспериментам, необходимые специализированные модули, ежедневно оберегающие жизни людей, а также сложные робототехнические наборы.

Кибертехнологии продолжают полномасштабно двигаться вперёд. Едва ли не первым из перспективнейших течений в обсуждаемой сфере является искусственный интеллект. Возможности интеллектуальных систем неоспоримы. Инновационные программируемые роботы умеют решать творческие задачи, а также формировать другую модель данных на основе уже существующей.

Искусственный Интеллект призван копировать умственную суть человека.

Наиболее простой и доступный путь понять Искусств. Интеллект — создание обучаемой модели сети, разработанной на основе биологических нейросетей. А также программное и аппаратное решение, настройка математического сценария. Для реализации этого нужны понимание азов программирования и устройства микропроцессоров. С помощью универсального конструктора выпускаемого на плате Arduino есть возможность реализовывать разные модули, руководимые нейронной сетью.

Основное количество современных компьютеров, считая платы Arduino исполняются процессорами. Они реализуют их связь по совместным протоколам. А также взаимодействие с разработчиками. Конструкторы Arduino строятся на узлах из известных типов контроллеров, например, таких как AVR ATMEGA8.

Кодинг устройств Arduino строится на C. Этот инструмент довольно прост в освоении и имеет собственную обобщенную среду разработки. Это дает возможность смоделировать незаурядные замыслы тем, кто располагает не самым высоким уровнем программирования.

В наши дни некоторые ребята 13-14 лет изучают начальный уровень разработки программ, а также микроэлектронику. Сейчас и у школьников появилcя шанс постичь востребованные в будущем навыки. Повсеместно открываются классы и школы изучения языков программирования и робототехники для ребят. На этих курсах ребята начинают использовать комп как ЭВМ для интеллектуального образования, своими руками разрабатывать интернет мини сайты, заниматься с искусственной реальностью, делать начального уровня компьютерные игрушки, а также проектировать другого уровня электромеханические модули. Дети любых возрастов уже практически с третьего класса могут определиться с избранием пути в программировании и разобраться стоит ли им совершенствовать обучение в этой области. Более того, подобные лекции готовят школьников в момент вырабатывать решения, быть в группе и суметь найти выход из самых трудных критических ситуаций.

Для сегодняшнего школьника 10-13 лет любимым подарком будет электромеханический гаджет, а именно, такой как трансформируемый конструктор. С его помощью он получает знания, необходимые в школе, и сумеет самостоятельно конструировать и реализовывать новые изобретения, которые позднее станут необходимыми для всего человечества.

Ардуино: программирование для начинающих без платных курсов

Программирование Ардуино интересует многих начинающих программистов и конструкторов. На сегодняшний день про мини-компьютеры Ардуино знают многие, потому что это самая популярная возможность сделать первые шаги в:

  • программировании;

  • робототехнике;

  • автоматизации;

  • и т. д.

Но самое интересное, что возможности Ардуино можно использовать на профессиональном уровне и создать собственную версию системы «Умный дом».

 

Ардуино, что это

Чем программирование Ардуино  так привлекает многих людей? В первую очередь, это относительной дешевизной устройств Ардуино, а второе — это их возможностями.

Ардуино — это  полноценная платформа для разработки устройств на основе микрокомпьютеров, в нее входит:

По своей сути, Ардуино можно сравнить с конструктором, потому что в зависимости от того какие модули Ардуино вы будете собирать воедино — в конечном итоге у вас будут получаться разнообразные устройства.

Ардуино — это не просто мини-компьютер, который можно внедрить хоть в утюг. Это универсальный способ завлечь в программирование и робототехнику молодых специалистов, школьников и подростков. Применяя Ардуино, можно автоматизировать электрочайник или даже обычную розетку, но при этом можно автоматизировать и большой производственный станок.

На сегодняшний день существует большое разнообразие центральных плат Андруино, которые характеризуются своими особенными возможностями и мощностью. К этим центральным платам в дополнение идет большое количество модулей, которые нужно подбирать под свой собственный проект:

  • сенсорные платы;

  • разнообразные датчики;

  • исполнительные механизмы;

  • мини-мониторы;

  • усилители;

  • модули WiFi;

  • модули для управления;

  • и мн. др.

Все это разнообразие модулей комбинируется и управляется центральной платой — мини-компьютером, а программируется на Arduino IDE.

 

Программирование Ардуино

Многие ошибочно полагают, что программирование Ардуино — это достаточно сложно и никак не подходит для «чайников». На самом деле, программирование Ардуино не слишком сложное действие. Такие вещи как само программирование, загрузка скриптов в микрокомпьютер, мониторинг кода и др. осуществляются при помощи Ардуино IDE. И основная работа происходит силами именно этой платформы, если нужно запрограммировать что-то специфическое, тогда можно будет найти подходящую библиотеку или расширение для платформы и все.

 

Программирование скриптов для Ардуино

Программирование Ардуино идеально подходит для «чайников», так как знакомит с потенциалом такого крутого языка как С++. С++ считается достаточно сложным языком программирования низкого уровня. На этом языке создают масштабные крутые компьютерные игры, также его применяют при создании операционных систем и других сложных проектов.

Но не нужно  пугаться сложности С++, потому что в Ардуино используется его облегченная версия. Также, чтобы программирование Ардуино на С++ не было слишком сложным, существует большое количество готовых:

  • библиотек;

  • скриптов;

  • функций;

  • методов;

  • и др.

Это еще больше упрощает программирование Ардуино и делает его очень доступным.

Ниже мы приведем описание самых необходимых операторов и функций, которых вам хватит для того, чтобы создать собственные прошивки для ваших творений на базе Ардуино.

 

Операторы
  1. Setup().

    Применяется один раз в скрипте при каждом запуске или перезапуске системы Ардуино. Его основная цель — это запустить нужную библиотеку или определить нужный режим работы.

  2. Loop(). Обычно запускается сразу после setup(). Его цель — это запустить цикл, который позволит вашему скрипту выполнить необходимые вычисления. Фактически этот оператор дает вам активное управление вашей платой Ардуино.

  3. If(). Контролирует исполнение условия, если оно выполнено, тогда будет выполняться следующий блок кода.

  4. If…else(). Данная конструкция позволяет точнее контролировать ход выполнения. Означает, что если не соблюдено условие, тогда выполняется конкретный блок кода или другое условие.

  5. For(). Этот оператор применяется для запуска целого блока различных операторов, которые прописываются в фигурных скобках.

       

  6. Swich…case. Данная конструкция напоминает работу конструкции if…else и помогает управлять условиями выполнения всего скрипта. Особенность этой конструкции в том, что  «switch»  сравнивает значение из «case», и когда значения совпадают, то начинает выполняться код, который указан в этом «case».

  7. While(). Это цикл при котором код в цикле будет выполняться до тех пор, пока значение в круглых скобках () не станет «false».

  8. Do…while(). Данная конструкция имеет похожий принцип работы с «while», с той разницей, что все условия будут проверяться в конце цикла, поэтому все, что указано в «do», выполнится минимум один раз.

  9. Break. Это оператор для выхода из циклов «do», «for», «while», «switch». Он применяется, когда не нужно дожидаться конца циклов.

  10. Continue. Данный оператор помогает пропускать ненужные операторы цикла, в каком-либо конкретном шаге.

  11. Return. Оканчивает выполнение функции и возвращает ее полученное значение в функцию, которая ее вызвала.

  12. GoTo. Это оператор «перемещения» по скрипту, когда нужно, чтобы выполнение скрипта начиналось или продолжалось с какой-либо конкретной точки кода.

  13. Арифметические операторы: «=» — присваивание,  «+» — сложение, «-» — вычитание, «*» — умножение, «/» — деление, «%» — остаток от деления.

  14. Операторы сравнения: «==» — равно, «!=» — не равно, «<» — меньше чем, «>» — больше чем, «<=» — меньше или равно, «>=» — больше или равно.

  15. Логические операторы: «&&» — и, «||» — или, «!» — не.

     

Типы данных 
  1. Void — применяется для объявления функций.

  2. Boolean — переменные, у которых может быть только 2 значения: «true» или «false».

  3. Char — тип данных, который использует только 1 бит памяти.

  4. Byte — может хранить в себе число из 8 бит.

  5. Int — тип данных, который применяют для хранения чисел.

  6. Word — может хранить в себе число из 16 бит.

  7. Long — может хранить в себе числа из 32 бит.

  8. Short — это тип данных из 16 бит.

  9. Float — это числа с «плавающей точкой».

  10. String — это строки.

  11. Array — массив данных.

  12. Static — применяется для написания переменных, которые должны быть видны всего для одной лишь функции.

  13. Const — это переменные, которые уже предопределены, например «true», «false» и др. 

 
Функции
  1. PinMode — описывает режим ввода/вывода, который возможно будет настраиваться.

  2. DigitalWrite — контролирует значения HIGH/LOW (включение-выключение устройств).

  3. DigitalRead — считывает значения HIGH/LOW с конкретного места их вывода.

  4. AnalogReference() — контролирует источник основного напряжения для работы Ардуино.

  5. AnalogRead — следит за входным напряжением.

  6. Tone() — генерирует звуковую частоту, а также длительность звукового сигнала, чтобы звук воспроизводился; к Ардуино нужно подключить динамик.

  7. NoTone() — прекращает генерирование звука.

  8. Pulseln() — считывает длительность любых импульсов.

  9. Millis() — в возвратном значении этой функции будет количество миллисекунд, отсчитанных с момента запуска Ардуино.

  10. Micros() — в возвратном значении этой функции будет количество микросекунд, отсчитанных с момента запуска Ардуино.

  11. Delay() — временно останавливает исполнение программы на указанное количество миллисекунд.

  12. Математические вычисления: min() — вычисляет минимальное значение из двух чисел, max() — максимальное значение, a bs() — абсолютную величину числа, map() — преобразует значения переменных из разных диапазонов в нужный, pow() — возводит числа в степень, sqrt() — вычисляет квадратный корень числа, sq() — вычисляет квадрат числа.

  13. RandomSeed() — активирует генератор случайных чисел.

 

Заключение 

Программирование Ардуино — штука интересная. Мы, естественно, описали не все операторы и функции, которые можно использовать при программировании мини-компьютеров Ардуино.

Больше информации можно найти на официальном сайте arduino.cc. Там можно скачать последнюю версию Arduino IDE под вашу операционную систему, а также найти подробную документацию по сборке и программированию ваших устройств. Изучите внимательно, чтобы программирование Ардуино стало для вас занятным увлечением, а не очередной неразрешимой задачей.

Программирование Arduino | Программирование Adafruit Feather nRF52840 Sense

Скетчи Arduino написаны на языке C с расширениями из C++. Мы опишем только наиболее распространенные и полезные функции языка C по двум причинам. Во-первых, нам нужно использовать только несколько основных функций языка. Во-вторых, изучение C как конечная цель требует много времени и практики. Признавая эти два аспекта, мы можем довольно быстро узнать о подмножестве C достаточно, чтобы писать скетчи для выполнения забавных и полезных задач.

Jump to detail pages on …

  • Fundamentals
    • Variables
    • Operations
    • Assignments
  • Code structures: if , loops, functions
    • “if” constructs
    • functions
    • loops
  • Встроенные функции Feather nRF52840 Sense: NeoPixels, датчики, кнопки
  • Подключение к внешним устройствам

Содержание этой страницы

  1. Основные компоненты
    1. Что такое эскиз?
    2. Установка и Loop
  2. Программирующие конструкции
    1. Петли
    2. , если конструкции
    3. . узнать о типах переменных, операциях и назначениях. Эти концепции представлены на странице «Основы программирования», где вы также найдете ссылки на дополнительную информацию.

      Наша непосредственная цель — познакомить вас с этими идеями, чтобы вы могли понять, что такие термины, как «типы переменных», «операции» и «назначения», имеют точное значение, которое может повлиять на работу вашей программы. По мере того, как вы будете учиться, вы вернетесь к этим концепциям и поймете, насколько они просты, а порой и неуловимы.

      Что такое эскиз?

      Переменные, операции и присваивания являются важными строительными блоками компьютерных программ на любом языке. Чтобы запрограммировать Arduino, мы также должны предоставить еще один ключевой компонент, называемый эскиз .

      Эскиз — это операторы C/C++, которые вы предоставляете программе Arduino для ее уникального набора задач. Arduino IDE объединяет ваш скетч с другими компонентами (например, шаблоном) для создания инструкций, которые загружаются на плату Arduino.

      setup и loop

      Все скетчи Arduino должны иметь функцию setup и функцию loop . Функция setup выполняется один раз при первом включении платы Arduino или при нажатии кнопки сброса. 9Цикл 0018 Функция повторяется бесконечно после первого и единственного выполнения функции настройки .

      Программные конструкции

      Существует несколько основных программных конструкций, которые помогают нам писать более компактные, эффективные программы, которые легче писать и поддерживать.

      Циклы

      Цикл программирования — это повторяющийся блок кода. Два распространенных типа циклов: для циклов и для циклов. Как правило, на 9Цикл 0019 используется, когда количество повторений известно заранее, а цикл while используется, когда неизвестное количество повторений продолжается до тех пор, пока не будет выполнено условие.

      Подробнее о для и в то время как петли на этой странице.

      если конструирует

      Программы, реагирующие на изменяющиеся условия, должны иметь способы принятия решений. Когда один набор условий верен, выполняется предопределенный блок кода. Если присутствуют альтернативные условия, выполняется другой блок кода. Общая концепция реагирования на изменения данных называется разветвление . Это логическое принятие решений реализовано с помощью , если конструируется и описано на этой странице.

      функции

      В программировании функции представляют собой модули кода. В сложном коде, который выполняет несколько отдельных задач, обычно рекомендуется писать функцию для каждой основной задачи (или набора задач). Функции могут иметь входы, управляющие их работой. Функции также могут возвращать значения.

      Языки программирования имеют набор встроенных функций для выполнения общих задач. Примерами являются математические функции, такие как cos(x) и sin(x) и функции, выводящие значения на внешнее устройство.

      Подробнее о функциях на этой странице.


      Введение в программирование на машинном языке Arduino — Arxterra

      Микроконтроллер AVR и встраиваемые системы с использованием ассемблера и C, авторы Мухаммед Али Мазиди, Сармад Наими и Сепер Наими

      Вот некоторые из источников, которые я использовал для разработки материала, использованного цикл лекций.

      0010 0111 0000 0000 → 1110 1111 0001 1111 → 1011 1001 0000 0111 → 1011 1001 0001 1000
      1011 1001 0000 0100 → 1011 0000 0111 0110 → 1011 1000 0111 0101 → 1100 1111 1111 1101

      Напишите программу сборки для включения и выключения света с помощью переключателя. Похожая программа использовалась при разработке The Wake-up Machine.

      Важной частью этого курса является понимание дизайна и языка «Компьютера».

      Компьютер реализует классический цифровой вентиль , который вы изучили в классе Digital Logic (EE201) в программном обеспечении с такими инструкциями, как and, or, и eor/xor.

      Вам также придется плавно переходить от двоичной системы счисления к шестнадцатеричной и обратно (например, Системы счисления ).

      Компьютерные программы перемещают данные через регистры, поэтому знание триггеров и регистров также является важной базовой частью этого класса.

      Наконец, вместо проектирования с помощью вентилей (EE201) вы будете проектировать с помощью кода. Таким образом, вам нужно будет просмотреть такие концепции Программирование , как: передача данных (выражения присваивания), арифметические и логические операторы, передача управления (ветвление и цикл), а также битовые и битовые тестовые операторы, которые вы использовали в своем классе программирования (CECS174 или CECS100). .

      Хорошей новостью является то, что помощь доступна в Главе 0: «Введение в вычислительную технику» вашего учебника, в дополнительных материалах, приведенных в начале этого документа, в Интернете и в Приложении A – Системы счисления.

      Числа и их компьютерное представление

      Введение

      Основание 10 результат десяти пальцев символ предшествует другому символу или следует за ним. Бывший. IV = 4 против VI = 6. Это была очень неуклюжая система для арифметических операций.

      Позиционная запись (положительные действительные целые числа)

      Дробные числа не будут рассматриваться, но следует отметить, что добавление указанного было бы простым и логичным дополнением к представленной теории.

      Значение каждой цифры определяется ее позицией. Обратите внимание на произношение 256 «Двести пятьдесят шесть?

      Пример. 256 = 2*10 2 + 5*10 1 + 6*10 0

      Обобщение по любому основанию или основанию

      Основание или основание = количество различных цифр, которые могут встречаться в каждой позиции в системе счисления.

      N = A n r n + A n-1 r n-1 + … + A 1 r 1 + A 0 r 0   (or simple A 1 r + A 0 )

      Введение в двоичную систему

      Работа большинства цифровых устройств по своей природе двоичная, они либо включены, либо выключены.

      Примеры: переключатель, реле, лампа, транзистор и транзисторно-транзисторно-логическая интегральная схема (TTL IC)

      Таким образом, для цифрового компьютера вполне логично использовать основание 2.

      Примечание. Будущие устройства могут не иметь этой характеристики, и это одна из причин важности основ и теории. Потому что они добавляют гибкости системе.

      В двоичной системе допускается только 2 состояния; 0 и 1 (ЛОЖЬ или ИСТИНА, ВЫКЛ или ВКЛ)

      Пример:      Старший бит

      Бит = одна двоичная цифра (0 или 1)

      Это уравнение, связанное с позициями, также дает нам инструмент для преобразования заданной системы счисления в основание 10 — в этом примере двоично-десятичный.

      Основание восемь и основание шестнадцать

      В начале разработки цифрового компьютера фон Нейман осознал полезность работы в промежуточных системах счисления, таких как основание 8 (или восьмеричное)

      Путем группировки 3 двоичных цифр или битов формируется одна восьмеричная цифра . Обратите внимание, что 2 3 = 8

      Двоина для октального преобразования Таблица

      2 2 2 1 2 0

      0 0 0 = 0

      0 0101010266

      0 0 0 = 0,00003

      010 01010266

      0 0 0 0. 0,00003

      0 01010266

      0 0 0 0. 0,00003

      0 010266

      0 0 0 0. 0 . =  2

      0 1 1 = 3

      1 0 0 = 4

      1 0 1 = 5

      1 1 0 = 6

      1 1 1 = 7 Символы (не числа) 8 и 9 не используются в октелальном .

      Пример: 100 001 010 110

      4 1 2 6 8 = 4*8 3 + 1*8 2 + 2*8 1 + 6*8 0 = 2134

      Это это еще один эффективный способ перехода от основания 2 к основанию 10

      Резюме: Основание 8 позволяет вам работать на языке компьютера, не имея дело с большим количеством единиц и нулей. Это стало возможным благодаря простоте преобразования с основанием 8 в основание 2 и обратно.

      В микрокомпьютерах используется группировка из 4 бит (вместо 3 бит) или основание 16 (2 4 ). Первоначально произносившийся шестнадцатеричным, основание 16 было быстро переименовано в шестнадцатеричное (на самом деле это должно быть основание 6).

      Двоирный в шестнадцатеричный преобразование Таблица

      2 3 2 2 2 1 2 0

      0 0 0 = 0

      0 0 010103

      0 0 0,00003

      0 0 0,10103

      0 0 00003

      0 010103

      0 0,00003

      01019 2

      0 0 0,00003

      0 01019 2

      0 0 0,0197 . 2

      0 0 1 1   =  3

      0 1 0 0   =  4

      0 1 0 1 = 5

      0 1 1 0 = 6

      0 1 1 1 = 7

      1 0 0 0 = 8

      1 0 0 1 = 9

      1 0 1 0 = A

      1 0 1 1 = B

      1 1 0 0 = C

      1 1 0 1 = D

      1 1 1 0 = E

      1 1 1 1 = F

      в HEX Символы для 10-15 из алфавита. Это показывает, насколько относительными являются числа на самом деле, или, другими словами, они действительно являются просто символами.

      Пример:    1000 0101 0110

      8       5       6 16  = 8*16 2 + 5*16 1 + 6*16 0 = 2134


      требует небольшой практики.

      Преобразование двоичной системы счисления по основанию 10 в заданную систему счисления (или основания)

      Последовательное деление            лучше всего продемонстрировать на примере.

      Для этого примера:  43 10 = 101011 2 Быстрая проверка (октальная) 101 011 = 5*8 + 3 = 43 10

      Другой пример: преобразовать 43 10 от десятичного до октального

      Октальное длинное деление

      для этого примера. : 43 10 = 53 8              Быстрая проверка (восьмеричная) 5*8 + 3 = 43 10

      Обобщение процедуры ИЛИ Почему это работает ИЛИ Почему это работает ИЛИ Почему это работает ИЛИ = Ar

      9 остаток, а n = количество цифр в основании r для числа N. Деление обычно выполняется по основанию 10.

      Другой способ выразить вышеуказанную таблицу:

      N = R*N 1 + A 0

      N 1 = R*N 2 + A 1

      09209209209209 2 + A 1

      0209202 2 = R*N 3 + A 2

      :

      N N-1 = R*N N + A N-1

      N N = R*0 + A n

      или (теперь на рукоприкладство)

      N    = r*( r*N 2 + A 1 )+ A 0                                               substitute N 1

      N  = r 2 N 2 + rA 1 + A 0                                                     multiply R через уравнение

      n = R 2 (R*N 3 + A 2 ) + RA 1 + A 0 Заменитель N 2

      :

      . 0002 N = A n r n + A n-1 r n-1 + … + A 1 r 1 + A 0 r 0    

      Nomenclature

      бит = 1 бинарная цифра

      байт = 8 бит

      Nibble = один половина байта = 4 бита

      слово = компьютерный зависимость

      Двоирный арифметику

      Бинарное добавление

      Двоичное сложение выполняется аналогично десятичному сложению с использованием следующих правил двоичного сложения:

      0 + 0 = 0

      0 + 1 = 1

      1 + 0 = 1

      1 + 1 = 10 (0 с переносом 1)

      Примеры:

      Проблема 21 10 + 10 10 = 31 10 45 10 + 54 10 = 99 10 3 10 + 7 10 = 10 10
               10101 2

      +       01010 2

      _______________

      11111 2

               101101 2

      +       110110 2

      _______________

      1100011 2

               011 2

      +       111 2

      _______________

      1010 2

      Чек 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 =

      1*8 + 0*4 + 1*2 + 0*1 = 10 10

      Восьмеричное сложение

      Восьмеричное сложение также выполняется аналогично десятичному сложению, за исключением того, что каждая цифра имеет диапазон от 0 до 7 вместо 0 до 9.

      Задача 21 10 + 10 10 = 31 10 45 10 + 54 10 = 99 10 3 10 + 7 10 = 10 10
               25 8

      +       12 8

      _______________

      37 8

               55 8

      +       66 8

      _______________

      143 8

               3 8

      +       7 8

      _______________

      12 8

      Чек 3*8 1 + 7*8 0

      3*8 + 7*1 = 31 10

      1*8 2 + 4*8 1 + 3*8 0

      64 + 32 + 3 = 99 10

      1*8 1 + 2*8 0

      8 + 2 = 10 10

      Шестнадцатеричное сложение

      Шестнадцатеричное сложение также выполняется аналогично десятичному сложению, за исключением того, что каждая цифра имеет диапазон от 0 до 15 вместо 0 до 9.

      Задача 21 10 + 10 10 = 31 10 45 10 + 54 10 = 99 10 3 10 + 7 10 = 10 10

               15 16

      +       0A 16

      _______________

      1F 16

               2D 16

      +       36 16

      _______________

      63 16

               3 16

      +       7 16

      _______________

      А 16    (не 10)

      Чек 1*16 1 + 15*16 0

      16 + 15 = 31 10

      6*16 1 + 3*16 0

      96 + 3 = 99 10

      10*16 0

      10 10

      Двоичное умножение
      Десятичное число Двоичный

      11 10

      x        13 10

      _______________

      33 10

      11 10–

      _______________

      143 10

           1011 2

      x   1101 2

      _______________

      1011 2

      0000 2-

      1011 2–

      1011 2—

      _______________

      10001111 2

      Чек 8*16 1 + 15*16 0

      128 + 15 = 143 10

      Бинарное разделение

      Проверка: 1*16 1 + 5*16 0 = 16 + 5 = 21 10

      Практические арифметические их обратно к основанию 10 через разные основания (например, 2, 8 и 16).

      То, как компьютер выполняет арифметические операции, является гораздо более сложной темой и не рассматривается в этом разделе.

      Дополнения и отрицательные числа ИЛИ Добавление бита знака

      Сложение, умножение и деление — это хорошо, но как насчет вычитания и отрицательных чисел? Из начальной школы вы узнали, что вычитание — это просто сложение отрицательного числа. Математики вместе с инженерами использовали этот принцип вместе с арифметикой по модулю — естественным результатом сумматоров конечной длины — чтобы позволить компьютерам работать с отрицательными числами без добавления каких-либо новых аппаратных элементов в арифметико-логическое устройство (АЛУ).

      Величина знака

      Вот простое решение, просто добавьте бит знака. Чтобы реализовать это решение на аппаратном уровне, вам потребуется создать вычитатель; а значит больше денег.

      Знак величина

      Пример: - 2 = 1 0010 2

      Один комплемент

      Вот решение, которое немного более сложно. Добавьте бит знака и инвертируйте каждый бит, составляющий величину — просто измените 1 на 0 и 0 на 1.

      Знак величина

      Пример: - 2 = 1 1101 2

      , чтобы вычесть 1 комплемент, вы просто добавляете бит и биты величины, позволяя последнему биту (из знака) вмещается в бит. затем добавьте 1 к ответу. Еще раз позвольте последнему биту переноса упасть в ведро с битами. Битовое ведро возможно из-за физического размера сумматора.

      0 1010 2                       10

      +_ 1 1101 2 +(-2)

      0 1000 2 8

      +______ 1 2 Регулировка

      0 1001 2

      Несмотря на , теперь вам нужно добавить 1 к ответу. Это снова означает добавление оборудования. Усугубляет эту проблему то, что дополнение до единицы позволяет двум числам равняться 0 ( шизофренический ноль ).

      Двойки Дополнение

      Вот решение, которое немного сложнее в настройке, но не требует корректировок в конце добавления. Есть два способа получить дополнение числа до двух.

      Метод 1 = Возьмите дополнение до 1 и добавьте 1

      __0 0010 2              2

      +1 1101 2 1 комплемент (т.е. инверт)

      +1 2 Добавить 1

      1 1110 2

      Метод 2 = Двигайтесь справа налево, пока не встретите 1, затем инвертируйте.

      0 0010 2 начало = 2 10
      0 2 без изменений
      10 2 нет изменений, но встречается одно
      110 2 инвертировать = изменить 0 на 1
      1110 2 инвертировать = изменить 0 на 1
      1 1110 2 инвертировать = изменить 0 на 1

      Вычитание в дополнении до двух аналогично сложению. Никакой корректировки не требуется, и в дополнении до двух нет шизофренического нуля , хотя у него есть дополнительное отрицательное число (см. Как это работает).

      0 1010 2 10

      +1 1110 2 +(-2)

      0 1001 2 8

      Примеры:

      Проблема 33 10 – 19 10 = 14 10 69 10 – 84 10 = -15 10

               0 100001 2

      +       1 101101 2

      _______________

      0 001110 2

               0 1000101 2

      +       1 0101100 2

      _______________

      1 1110001 2

      Чек преобразовать в промежуточную базу E 16 = 14 10 преобразовать обратно в знак величины

      – 0001111 2

      преобразовать в промежуточную базу (16)

      – F 16 = – 15 10

      Почему это работает

      Реальные сумматоры имеют конечное число битов, что естественным образом приводит к арифметике по модулю — битовому ведру.

      Переполнение

      Теперь, когда арифметика сводится к хождению по кругу, положительные числа могут складываться с отрицательными и наоборот. Два теста позволяют быстро проверить, существует ли состояние «переполнения».

      Тест 1 = Если два числа отрицательные, а ответ положительный, произошло переполнение.

      Тест 2 = Если два числа положительные, а ответ отрицательный, произошло переполнение.

      Если бы компьютеры были калькуляторами, а мир был идеальным местом, мы бы закончили. Но это не так, поэтому мы продолжаем рассматривать несколько реальных проблем и их решения.

      Коды символов ИЛИ нечисловая информация

      Проблема с десятичными числами

      Представление десятичных чисел в двоичном компьютере. Двоичное представление десятичного числа несколько лет назад могло быть «зашито» в арифметико-логическое устройство (АЛУ) компьютера. Сегодня он, скорее всего, просто представляет некоторую информацию, которая естественным образом представлена ​​в базе 10, например, ваш студенческий билет.

      Решение

      В этой задаче нужно представить десять различных цифр. Использование 4 бит 2 4 или 16 комбинаций могут быть созданы. Используя 3 бита 2 3 или 8 комбинаций, можно создать. Таким образом, для представления одной десятичной цифры потребуется 4 бита. Здесь следует указать, как из 4 битов (0000–1111) можно создать 16 комбинаций, в то время как наибольшее числовое значение, которое может быть представлено, равно 15. Причина, по которой наибольшее числовое значение и количество комбинаций различаются, связана с ноль (0) является одной из комбинаций. Эта разница указывает на необходимость всегда следить за тем, мокрее вы работаете, ноль или один родственник, и что именно вы ищете — двоичное число или комбинации.

      Наиболее распространенный способ представления десятичного числа называется двоично-десятичным кодом (BCD). Здесь каждое двоичное число соответствует своему десятичному эквиваленту, а числа больше 9 просто не допускаются. BCD также известен как код 8-4-2-1, поскольку каждое число представляет соответствующий вес двоичных цифр. Напротив, код Excess-3 представляет собой невзвешенный код, использовавшийся в более ранних компьютерах. Его кодовое назначение происходит от соответствующего двоично-десятичного кода плюс 3. Преимущество кода Excess-3 заключалось в том, что, дополняя каждую цифру двоичного кодового представления десятичной цифры (дополнение до 1), 9будет сформировано дополнение этой цифры. В следующей таблице перечислены все десятичные цифры и их эквиваленты в кодах BCD и Excess-3. Я также включил отрицательный эквивалент каждой десятичной цифры, закодированной с использованием кода Excess-3. Например, дополнение 0100 (1 десятичный знак) равно 1011, то есть 8 десятичных знаков. Вы можете найти больше десятичных кодов на странице 18 «Цифрового дизайна» М. Морриса Мано (текст курса).

      Двоично-десятичный код (BCD) Превышение-3
      Десятичная цифра Двоичный код 8-4-2-1 Десятичная цифра Двоичный код Комплимент из девяток

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      Н/Д

      Н/Д

      Н/Д

      Н/Д

      Н/Д

      Н/Д

      0000

      0001

      0010

      0011

      0100

      0101

      0110

      0111

      1000

      1001

      1010

      1011

      1100

      1101

      1110

      1111

      Н/Д

      Н/Д

      Н/Д

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      Н/Д

      Н/Д

      Н/Д

      0000

      0001

      0010

      0011

      0100

      0101

      0110

      0111

      1000

      1001

      1010

      1011

      1100

      1101

      1110

      1111

      1111

      1110

      1101

      1100

      1011

      1010

      1001

      1000

      0111

      0110

      0101

      0100

      0011

      0010

      0001

      0000

      Проблема с буквенно-цифровыми символами

      Представляет буквенно-цифровые данные (строчные и прописные буквы алфавита (az, A-Z), цифровые числа (0-9) и специальные символы (возврат каретки, перевод строки, точка и т. д.). .).

      Решение

      Для представления прописных и строчных букв алфавита плюс десять цифр необходимо не менее 62 (2×26+10) уникальных комбинаций. 2 6 или 64 уникальные комбинации будут работать, для специальных символов останется только 2 комбинации. С другой стороны, код, использующий 7 бит, обеспечивает 2 7 или 128 комбинаций, что дает более чем достаточно места для алфавита, цифр и специальных символов. Итак, кто решает, какие бинарные комбинации каким символам соответствуют. Здесь нет «лучшего пути». Около тридцати лет назад IBM выпустила новую серию компьютеров, в которых для хранения одного символа использовалось 8 бит (2 8 = 256 комбинаций), и разработала расширенный двоично-десятичный код обмена (EBCDIC, произносится как ep-su-dec). для этой цели. Поскольку у IBM была почти монополия в области компьютеров, в то время другие производители компьютеров отказались принять EBCDIC, и именно так появился 7-битный американский стандартный код для обмена информацией (ASCII). В настоящее время ASCII принят практически всеми производителями микрокомпьютеров и мини-компьютеров. В таблице ниже показан частичный список кодов ASCII. На странице 23 текста перечислены все 128 кодов с пояснениями к управляющим символам.

      ДЕКАБРЬ ШЕСТИГР. СИМВОЛ ДЕКАБРЬ ШЕСТИГР. СИМВОЛ
      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      2D

      2F

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      3D

      3F

      !

      "

      #

      $

      %

      и

      (

      )

      *

      +

      ,

      *

      /

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      :

      ;

      ?

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      4D

      4F

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      5D

      5F

      @

      А

      Б

      С

      Д

      Е

      Ф

      Г

      Х

      я

      Дж

      К

      л

      М

      Н

      О 9

      _

      Слово «строка» обычно используется для описания последовательности символов, хранящихся в виде их числовых кодов — например, ASCII).

      Хотя для ASCII требуется только 7 бит, в компьютерах стандартом является использование 8 бит, где крайний левый бит равен 0. Это позволяет вам кодировать еще 128 символов (включая такие символы, как греческие буквы), что дает вам расширенных набор символов , просто заставив крайний левый бит быть 1. Это также может привести к компьютерной версии Вавилонской башни. В качестве альтернативы крайний левый бит может использоваться для обнаружения ошибок при передаче символов по телефонной линии. Что подводит нас к нашей следующей проблеме.

      Synthesis

      Хотя ASCII решает проблему связи между англоязычными компьютерами, как насчет японских, китайских или русских компьютеров, которые имеют разные, и во всех этих примерах, более крупные алфавиты?

      Проблема связи

      Двоичная информация может передаваться последовательно (по одному биту за раз) через некоторые средства связи, такие как телефонная линия или радиоволны. Любой внешний шум, внесенный в среду, может изменить битовые значения с 1 на 0 или наоборот.

      Решение

      Самое простое и наиболее распространенное решение проблемы связи заключается в добавлении к отправляемой информации бита четности . Функция бита четности состоит в том, чтобы сделать общее количество отправляемых единиц либо нечетным (нечетная четность), либо четным (четная четность). Таким образом, если было отправлено любое нечетное количество единиц, но получено четное число единиц, вы знаете, что произошла ошибка. В приведенной ниже таблице показаны соответствующие биты четности (нечетные и четные), которые будут добавлены к 4-битному фрагменту данных.

      Синтез

      Что произойдет, если две двоичные цифры изменят значения битов? Можно ли разработать систему не только для обнаружения ошибок, но и для идентификации и исправления измененных битов? Один из наиболее распространенных кодов исправления ошибок был разработан Р. У. Хэммингом. Его решение, известное как код Хэмминга, можно найти в самых разных местах, от схемы оперативной памяти (ОЗУ) до телекоммуникационной линии космического корабля. Дополнительные сведения о кодах исправления ошибок см. на стр. 29.9 к 302 текста.

      Хотя обнаружение ошибок — это хорошо, предотвращение их появления — еще лучше. Что, конечно же, подводит нас к нашей следующей проблеме.

      Ошибка энкодера вала

      Когда вал вращается, вам необходимо преобразовать его радиальное положение в двоично-цифровое число.

      Решение

      Тип кодера, который будет кратко описан ниже, преобразует положение вала в двоично-кодированное цифровое число. Это преобразование будет выполнено несколькими различными типами устройств; описываемый тип представляет устройства, используемые в настоящее время, и следует понимать, что более сложные кодеры могут обеспечить дополнительную точность. Кроме того, обычно возможно преобразовать физическое положение в электрический сигнал аналогового типа, а затем преобразовать этот сигнал в цифровую систему. Однако в целом можно построить более прямые и точные кодеры, исключив промежуточный этап преобразования физического положения в аналоговый электрический сигнал. На рисунке ниже показан диск с кодированными сегментами, соединенный с валом.

      Энкодер может быть физически реализован с использованием электромеханической (щеточной) или электрооптической технологии. Предполагая электрооптическое решение, кодирующий диск состоит из полос, разделенных на прозрачные сегменты (заштрихованные области) и непрозрачные сегменты (незаштрихованные области). С одной стороны диска размещен источник света, а с другой стороны - набор из четырех фотоэлементов, расположенных так, что по одной ячейке находится за каждой полосой диска кодера. Если между источником света и светочувствительной клеткой находится прозрачный сегмент, будет получен результат 1; и если перед фотоэлементом находится непрозрачная область, будет выход O.

      Существует одна основная проблема с показанным кодером: если диск находится в позиции, где выходное число меняется с 011 на 100, или в любой позиции, где несколько битов изменяют значение, выходной сигнал может стать неоднозначным. Как и в любом физически реализованном устройстве, как бы тщательно оно ни было изготовлено, кодер будет иметь ошибочные выходы в нескольких позициях. Если это происходит, когда 011 изменяется на 100, возможно несколько ошибок; значение может быть прочитано как 111 или 000, любое из которых является значением со значительными ошибками. Чтобы обойти эту трудность, инженеры используют код «Грей» или «единичное расстояние» для формирования диска кодера (см. предыдущий рисунок). В этом коде 2 бита никогда не меняют значения в последовательных закодированных двоичных числах. При использовании диска с кодировкой Грея 6 может быть прочитано как 7, а 4 как 5, но больших ошибок не будет. В таблице ниже показан список 4-битного кода Грея.

      Десятичный Серый Код

      0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      0000

      0001

      0011

      0010

      0110

      0111

      0101

      0100

      1100

      1101

      1111

      1110

      1010

      1011

      1001

      1000

      Synthesis

      Код Грея используется во множестве приложений, отличных от энкодеров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *