Открыто

[ВШЭ] Основы электроники и программирования микроконтроллеров

Тема в разделе "Курсы по программированию", создана пользователем alexbinka, 19 май 2018.

Основной список: 34 участников

Резервный список: 26 участников

  1. 19 май 2018
    #1
    alexbinka
    alexbinka ЧКЧлен клуба

    Складчина: [ВШЭ] Основы электроники и программирования микроконтроллеров


    [​IMG]
    Каждый день мы пользуемся компьютером, но далеко не каждый из нас понимает, какие процессы превращают электрический ток в 0 и 1. Данная программа расскажет о принципах работы и особенностях всех видов цифровой электроники: начиная от включения лампочки от батарейки и заканчивая индикации текста на дисплее, управляемого микроконтроллером.
    На курсе вы поработайте с мультиметром, паяльником и цифровым осциллографом. Своими руками создадите из транзисторов логический элемент ИЛИ-НЕ. Увидите кремниевые кристаллы невооруженным глазом и под микроскопом. И, конечно же, напишете свою программу для микроконтроллера на языки Си, ассемблере и при помощи двоичных кодов.

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


    [​IMG]

    1. Основы электроники

    1.1. Электрический ток

    1.1.1. Обзор курса

    1.1.2. Аналогия электрического тока и жидкости

    1.1.3. Электрические характеристики: сила ток, напряжение, мощность, заряд

    1.1.4. Замкнутость цепи

    1.1.5. Источники тока

    1.1.6. Мультиметр

    1.2. Сопротивления

    1.2.1. Сопротивление и проводимость – свойства проводника

    1.2.2. Последовательное и параллельное соединение

    1.2.3. Комбинации последовательного и параллельного соединения

    1.2.4. Законы Кирхгофа для тока и напряжения

    1.2.5. Переменный резистор

    1.2.6. Резистивный делитель напряжения

    1.2.7. Мощность, выделяющаяся на резисторах (свечение ламп накаливания, нагрев резисторов)

    1.2.8. Точность вычислений и экспоненциальная форма записи чисел «Ax10B»

    1.3. Пайка

    1.3.1. Пайка выводных резисторов и контактов PLS

    1.3.2. Пайка провода АМП и МГТФ

    1.3.3. Пайка микросхем в корпусе TSSOP-14

    1.3.4. Пайка SMD-резисторов и SMD-светодиодов

    1.4. Диоды

    1.4.1. Свойства диодов

    1.4.2. Вольт-амперная характеристика

    1.4.3. Диодный мост

    1.4.4. Светодиоды: свойства, характеристики, корпуса

    1.4.5. Создание полупроводникового светодиода своими руками

    1.5. Транзисторы

    1.5.1. Свойства полевых транзисторов

    1.5.2. Применение полевых транзисторов для усиления и коммутации (динамик и лампочка)

    1.5.3. Различие свойств полевых и биполярных транзисторов

    1.5.4. n-канальные и p-канальные полевые транзисторы

    1.5.5. Транзисторы в составе микросхем – процесс производства

    1.5.6. Коммутация электромагнитным реле

    2. Логические элементы и устройства на их основе

    2.1. Логические элементы НЕ, И, ИЛИ

    2.1.1. Логика

    2.1.2. Элементы И/ИЛИ/НЕ

    2.1.3. Таблица истинности

    2.1.4. Возможность построения по таблице истинности любого логического элемента на основе И/ИЛИ/НЕ

    2.1.5. Лог.НЕ из полевых транзисторов

    2.1.6. Лог.И из полевых транзисторов

    2.1.7. Лог.ИЛИ из полевых транзисторов

    2.1.8. Микросхемы И/ИЛИ/НЕ

    2.2. Логические элементы ИЛИ-НЕ, И-НЕ, ИСКЛ.ИЛИ

    2.2.1. Возможность заменить элементы И/ИЛИ/НЕ комбинацией элементов И-НЕ или ИЛИ-НЕ

    2.2.2. Построение элементов ИЛИ-НЕ и И-НЕ из полевых транзисторов

    2.2.3. Элемент ИСКЛ.ИЛИ из элементов И/ИЛИ/НЕ

    2.2.4. Микросхемы ИЛИ-НЕ/И-НЕ/ИСКЛ.ИЛИ

    2.3. Мультиплексор

    2.3.1. Коммутация сигналов

    2.3.2. Мультиплексор из логических элементов И/ИЛИ/НЕ

    2.3.3. Мультиплексор, как универсальный логический элемент

    2.3.4. Мультиплексор из отдельных транзисторов

    2.4. ПЛИС

    2.4.1. Основные принципы устройства ПЛИС: входы, выходы, логические блоки, связи, интерфейс программирования ПЛИС

    2.4.2. Описание электронного устройства в среде визуального проектирования Quartus Prime

    2.5. Двоичная система счисления

    2.5.1. Десятичная система счисления (как на пальцах досчитать до 1000)

    2.5.2. Счеты (десятичные)

    2.5.3. Часовая, минутная и секундная стрелка.

    2.5.4. Счеты для часов

    2.5.5. Счеты для семеричной и четверичной системы счисления

    2.5.6. Счеты для двоичной системы счисления

    2.5.7. Счет в двоичной системе на пальцах

    2.6. Сумматор

    2.6.1. Сумматор на основе И/ИЛИ/НЕ

    2.6.2. Сумматор на основе ИСКЛ.ИЛИ

    2.6.3. Вычитание двоичных чисел

    2.7. Элементы памяти на логических элементах

    2.7.1. Ячейка памяти на логическом НЕ

    2.7.2. RS-триггер

    2.7.3. D-защелка

    2.8. Устройства на триггерах

    2.8.1. D-триггер (со сбросом)

    2.8.2. Счетчик

    2.8.3. Сдвиговый регистр

    2.8.4. Передача данных сдвиговым регистром

    2.9. Память SRAM

    2.9.1. Устройство ячейки SRAM

    2.9.2. Шины адреса, данных, управления у SRAM

    2.9.3. Двухпортовая SRAM

    2.10. Память EEPROM

    2.10.1. Память EEPROM с параллельным интерфейсом

    2.10.2. Последовательная память EEPROM (93LC46)

    2.10.3. SPI при помощи сдвигового регистра

    3. Ассемблер, Си и устройство микроконтроллера

    3.1. Операторы Си

    3.1.1. Среда программирования dev-c++

    3.1.2. Операторы языка Си (не связанные с присвоением)

    3.2. Среда MPLAB

    3.2.1. Среда программирования микроконтроллеров PIC - MPLAB

    3.2.2. Операторы Си применительно к микроконтроллерам

    3.3. Игра в микроконтроллер

    3.4. Ассемблер PIC18

    3.4.1. Набор команд ассемблера PIC18, структура двоичного кода команд и мнемоники

    3.4.2. Ассемблерные аналоги операторов Си

    3.5. Переменные

    3.5.1. Переменные типа char в Си (примеры в среде dev-c++)

    3.5.2. Переменные типа char применительно к микроконтроллерам (примеры в MPLAB, есть отличие компилятора C18 от стандартного Си)

    3.5.3. Ассемблерный аналог переменных

    3.6. Операторы ветвления

    3.6.1. Алгоритм

    3.6.2. Язык блок-схем

    3.6.3. Операторы ветвления в Си (примеры в среде dev-c++)

    3.6.4. Ассемблерные операторы ветвления

    3.7. Операторы циклов

    3.7.1. Операторы циклов в Си (примеры в среде dev-c++)

    3.7.2. Ассемблерные аналоги операторов циклов

    3.7.3. Понятие о циклической работе программы в микроконтроллере, бесконечный цикл и таймер «сторожевой пёс» (watch dog timer)

    3.8. Массивы

    3.8.1. Массивы в Си (примеры в среде dev-c++)

    3.8.2. Механизм работы с массивом в ассемблере при помощи косвенной адресации

    3.9. Функции

    3.9.1. Функции, значения и аргументы в реальном мире. Повторное использование кода

    3.9.2. Синтаксис объявления и вызова функции в Си (примеры в среде dev-c++)

    3.9.3. Ассемблерные подпрограммы, их вызов и возврат из них. Стек вызова.

    3.10. Типы переменных

    3.10.1. Типы переменных в Си, оператор sizeof() (примеры в среде dev-c++)

    3.10.2. Анализ ассемблерного кода, сформированного компилятором C18 при сложении двух переменных типа char и двух переменных типа int

    3.10.3. Способы хранения данных в переменных. Числа с плавающей точкой

    3.11. Структуры

    3.11.1. Понятие о классах, объектах и свойства в реальном мире

    3.11.2. Объявление структуры в Си (примеры в среде dev-c++)

    3.11.3. Вложенные структуры

    3.12. Указатели

    3.12.1. Понятие указателей в Си и синтаксис работы с ними (примеры в среде dev-c++)

    3.12.2. Арифметика указателей

    3.12.3. Передача аргументов в функцию и возврат значения функции при помощи указателей

    3.12.4. Написание программы на Си (MPLAB) для микроконтроллера, работающей с портами ввода-вывода без использования библиотек

    3.12.5. Адресное пространство

    4. Применение микроконтроллеров

    4.1. Бегущий огонек (тактирование и питание микроконтроллера)

    4.1.1. Написание программы «мигающий светодиод» на Си и ассемблере

    4.1.2. Написание программы «бегущий огонек» на Си и ассемблере

    4.1.3. Система тактирования микроконтроллера. Ток через порты ввода-вывода

    4.2. Реакция на кнопку

    4.2.1. Написание программы на Си и ассемблере, реагирующей на нажатие кнопки. Используется главный цикл

    4.2.2. Написание программы на ассемблере, реагирующей на нажатие кнопки при помощи механизма внешнего прерывания

    4.2.3. Написание программы на Си, реагирующей на нажатие кнопки с использованием внешнего прерывания. Понятие указателя на функцию

    4.2.4. Эффект дребезга контактов и его устранение

    4.3. Плавное мерцание (таймер)

    4.3.1. Понятие широтно-импульсной модуляции

    4.3.2. Написание программы плавного мерцания на Си в главном цикле

    4.3.3. Написание программы плавного мерцания на Си с использованием таймера

    4.4. Аналого-цифровой преобразователь

    4.4.1. Понятие о преобразовании аналоговых величин в дискретные

    4.4.2. Написание программы «растущая шкала» на Си с применением переменного резистора

    4.5. Семисегментный индикатор

    4.5.1. Написание программы, демонстрирующей различные символы на паре семисегментных индикаторов

    4.5.2. Написание функции, преобразующей число в CodeB

    4.5.3. Написание программы, преобразующей двоичное число на порте в десятичное число от 0 до 99 на семисегментных индикаторах

    4.6. Матричная клавиатура

    4.6.1. Написание программы, осуществляющей сканирование 16-кнопочной клавиатуры 8-битным портом ввода-вывода и выдающей нажатую клавишу на семисегментные индикаторы

    4.6.2. Написание программы, осуществляющие суммирование с накопление 16-ричных чисел, нажатых на клавиатуре и вывод суммы на семисегментные индикаторы (следует предусмотреть обработку дребезга контактов и нажатия двух и более кнопок одновременно)

    4.7. SPI

    4.7.1. Написать программу, осуществляющую обмен данными с микросхемой памяти EEPROM 93LC46, используя главный цикл

    4.7.2. Написать программу обмена данными с 93LC46 используя встроенный в микроконтроллер передатчик SPI

    4.8. Контроллер семисегментного дисплея

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

    4.9. I2C

    4.9.1. Написать программу, осуществляющую обмен данными с микросхемой памяти и расширителем портов по протоколу I2C


    Продажник:
    Цена и доп. инфо:

     

    Вложения:

    4 пользователям это понравилось.
  2. Последние события

    1. Smextene
      Smextene не участвует.
      14 май 2025
    2. SoflyMad
      SoflyMad не участвует.
      23 мар 2025
    3. SoflyMad
      SoflyMad участвует.
      29 ноя 2024
    4. Кирсан Кайфат
      Кирсан Кайфат не участвует.
      8 сен 2024
  3. Обсуждение
  4. 19 май 2018
    #2
    alexbinka
    alexbinka ЧКЧлен клуба
    В понедельник позвоню узнаю все вопросы типа: если записаться сейчас что можно получить, будут ли записи материалов и будут ли повторы, а так же про другие курсы от ВШЭ
     
    2 пользователям это понравилось.
  5. 24 май 2018
    #3
    alexbinka
    alexbinka ЧКЧлен клуба
    Записывайтесь смело в сентябре будет повтор - будущий орг может ориентироваться на начало сентября
     
  6. 14 июн 2018
    #4
    braver
    braver ЧКЧлен клуба
    Судя по описанию можно и самому комп на коленке спаять. [​IMG] А вообще-то нужный и полезный курсик. Мне нравится.
     
  7. 16 июн 2018
    #5
    Maksimiliano Teodorri
    Maksimiliano Teodorri ДолжникДолжник
    Интересная тема записываемся активно=))
     
  8. 19 окт 2018
    #6
    Ruslan1994
    Ruslan1994 СкладчикСкладчик
    что-то помимо основ си и CODE Петцольда будет?
     
  9. 5 дек 2019
    #7
    Dimon0014
    Dimon0014 ЧКЧлен клуба
    Курс по ходу сдох, он по мимо всего прочего еще оффлайновый по ходу был))