ШЭНЬЧЖЭНЬ: основы ввода-вывода для чайников. [Основы SHENZHEN I/O для чайников]

GHub Platform · Гайд · 0 ответов · 15 просмотров

( ru ) Эта игра посвящена не только программированию, но и чтению. Сначала руководство. Со временем вам придется его прочитать, но вы можете начать с этого руководства. (рус) Эта игра не только о программировании, но и о чтении инструкций перед этим. Инструкцию все равно читать о последствиях, но можно начать с гайда. ( ru ) Давайте посмотрим на нашу первую задачу. Нам нужно заставить светодиод на поддельной камере мигать правильно. Их два: «сетевой» и «активный». Нам нужен только «сетевой». Сначала нам нужно добавить микроконтроллер MC4000 (справа вверху) в нашу схему и подключить вывод «p0» к выходу «сеть». Откройте вкладку «Верификация» ниже. Вы можете увидеть две линии и изображение фальшивой камеры. Мы должны заставить наш микроконтроллер рисовать ту же линию, что и линия внизу. Мы можем сделать это, посылая сигналы через контакт «p0». Наведите указатель мыши на линию, чтобы увидеть ожидаемый уровень сигнала. Как видите, мы ожидали отправить сигнал с уровнем 0 или 100. При уровне сигнала 100 — светодиод загорается, а при 0 — нет. Теперь давайте более подробно рассмотрим линию. Он разделен единицами времени. В этой задаче нам нужно сделать следующее: Послать сигнал уровня 0 в течение 4 единиц времени. Отправьте сигнал уровня 100 на 2 единицы времени. Отправьте сигнал уровня 0 за 1 единицу времени. Послать сигнал уровня 100 за 1 единицу времени. Не обращайте внимания на остальную часть строки. Позже я объясню почему. Теперь нажмите на микроконтроллер, чтобы начать писать код. Чтобы отправить сигнал через вывод «p0», нам нужно записать некоторое значение в регистр «p0», например: mov 0 p0 Эта строка записывает число 0 в регистр «p0». (подробности см. в разделе «MOV»). С этого момента наш микроконтроллер отправляет сигнал с уровнем 0 через вывод «p0». Мы хотим, чтобы он оставался в течение 4 раз, поэтому нам нужно заставить наш микроконтроллер «спать» в течение 4 раз. Для этого нам нужно использовать команду «slp». slp 4 Эта строка переводит микроконтроллер в режим сна на 4 раза. (подробнее см. в разделе «SLP»). Сделайте то же самое для трех других шагов. В итоге у вас должен получиться следующий код: mov 0 p0 slp 4 mov 100 p0 slp 2 mov 0 p0 slp 1 mov 100 p0 slp 1 Запустите выполнение программы, нажав «Имитировать». Как вы можете видеть, это повторяется снова и снова, поэтому вам не нужно повторять код до конца «строки вывода». Теперь вам просто нужно дождаться завершения тестовых запусков. ( ru ) Вы можете записать значение в регистр или прочитать значение из регистра. Они для этого и нужны. Значение по умолчанию любого регистра равно 0. Мин. значение любого регистра равно -999. Макс. значение любого регистра равно 999. Существует 3 типа регистров: Acc Этот регистр присутствует во всех микроконтроллерах. Если вы впишете в него значение, то это значение останется до тех пор, пока вы не запишете другое. Этот регистр используется во всех арифметических операциях. dat Этот регистр присутствует только в некоторых микроконтроллерах. Если вы впишете в него значение, то это значение останется до тех пор, пока вы не запишете другое. Этот регистр используется только как хранилище данных. контактные регистры Эти регистры присутствуют во всех микроконтроллерах. Они используются для подключения микроконтроллера к входам/выходам и другим микроконтроллерам. Эти регистры не хранят никаких данных. Если вы записываете значение в такой регистр, оно просто определяет выходное значение. Существует два типа контактных регистров: Простой ввод-вывод (p0,p1...). Используется для подключения к простым входам/выходам. XBbus (x0,x1...) Используется для подключения к другим микроконтроллерам или сложному вводу-выводу, например клавиатуре или цифровому дисплею. Когда вы пытаетесь прочитать из такого регистра, выполнение блокируется до тех пор, пока данные не станут доступны. Когда вы попытаетесь записать данные в такой регистр, выполнение будет заблокировано до тех пор, пока эти данные не будут прочитаны на другой стороне. Эта команда просто перемещает (копирует) значение из одного места в другое. Это выглядит следующим образом: mov [номер/регистр] [регистр] Примеры: mov 0 acc помещает номер 0 в регистр «acc». Эта команда позволяет выполнить переход на специально отмеченную строку. Это выглядит так: jmp [название метки] Примеры: mov 0 acc jmp flag mul 2 mov acc p1 flag: slp 1 # переход к строке, отмеченной как "флаг" # эта строка пропускается # эта строка пропускается # строка, отмеченная как "флаг" Эта команда переводит микроконтроллер в режим сна на указанное количество единиц времени. Все значения регистров и выходов не изменяются, пока микроконтроллер «спит». Вы должны использовать эту команду или команду SLX в каждой программе. Это выглядит так: slp [число/регистр/вход] Примеры: slp 6 приостанавливается на 6 единиц времени. Есть пара секретных команд, которые могут быть полезны. Спасибо Брику за эту информацию. GEN Это выглядит следующим образом: gen [регистр] [время сна 1] [время сна 2] Выполнение gen эквивалентно выполнению следующих команд: mov 100 [регистр] slp [время сна 1] mov 0 [регистр] slp [время сна 2] Таким образом, gen p0 2 3 будет равен следующему набору команд: mov 100 p0 slp 2 mov 0 p0 slp 3 _________________________________________________________________ @ Любая команда, отмеченная этим флагом, будет выполнена только один раз. Это выглядит так: @ [любая команда] Например: @ slp 1 slp 1 mov 0 p0 slp 1 p0 mov 100 p0 эта команда выполняется только один раз и не будет повторяться эта команда выполняется каждый раз эта команда выполняется каждый раз эта команда выполняется каждый раз эта команда выполняется каждый раз ( ru ) Давайте взглянем на первое задание. Нам нужно сделать так, чтобы диоды на фальшивой камере правильно мигали. Их всего два: «сеть» («сеть») и «активен» («активный»). Диод "активен" уже сделан для нас, так что нам остается только сделать "сеть". Для начала нам нужно перетянуть микролер MC4000 (из правого верхнего угла) на схему и подключить выход «p0» к выходу «Сеть». Откройте вкладку «Верификация» внизу экрана. В ней включены две линии и изображение фальшивой камеры. Мы должны заставить наш микроконтроллер нарисовать такую ​​же линию, как и линию внизу. Это можно передать посылаемыми сигналами через выход «p0». Наведите мышь на линии, чтобы увидеть требуемый уровень сигнала. Как вы можете видеть, ведущий, что мы будем посылать сигналы с уровнем 0 и 100. Когда уровень сигнала равен 100 - диод загорается, а когда он равен 0 - диод гаснет. Откройте вкладку «Верификация» внизу экрана. Присмотрится ближе к этой линии. Она поделена на временные отрезки. (временные последствия) В данных задачах мы должны сделать следующее. Посылать сигнал с уровнем 0 на протяжении 4 временных единиц. Послать сигнал с уровнем 100 на протяжении 2 временных единиц. Посылайте сигнал с уровнем 0 на протяжении 1 временной величины. Посылайте сигнал с уровнем 100 на протяжении 1 временной величины. Не обращайте внимание на остальную линию. Позже я объясню почему. Теперь щелкните микроконтроллер, чтобы начать писать код. Чтобы отправить сигнал через выход «p0», мы должны записать число в регистр «p0», вот так: mov 0 p0 Эта строка записывает число 0 в регистр «p0». (см. подробности в разделе "MOV" ) С этого момента наш микроконтроллер посылает сигнал с нулевого уровня на выход "p0". Мы хотим, чтобы это продолжалось в течение 4 временных единиц, поэтому мы должны заставить наш контроллер «спать» на протяжении 4 временных единиц. Для этого мы используем команду "slp". slp 4 Эта строка заставляет микроконтроллер «заснуть» на 4 временных результата. (см. подробности в разделе «SLP») Сделайте тоже самое для трех оставшихся шагов, в конце у вас должен получиться следующий код: mov 0 p0 slp 4 mov 100 p0 slp 2 mov 0 p0 slp 1 mov 100 p0 slp 1 Запустите выполнение программы, нажав на кнопку «Имитировать». Программа будет постоянно повторяться, поэтому нам не нужно повторять команды по всей линии. Теперь остается только ждать, пока пройдут все тестовые запуски (тестовые прогоны). (

Источник

GHub Platform · автор12.08.2026, 07:00:44

( ru ) Эта игра посвящена не только программированию, но и чтению. Сначала руководство. Со временем вам придется его прочитать, но вы можете начать с этого руководства. (рус) Эта игра не только о программировании, но и о чтении инструкций перед этим. Инструкцию все равно читать о…

Войдите, чтобы писать в группе