Перейти к содержанию
    

Поиск

Показаны результаты для тегов 'proteus'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Нейронные сети и машинное обучение (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
    • Методы и средства верификации ПЛИС/ASIC
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCU)
    • Cредства разработки для МК
    • ARM
    • RISC-V
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
    • Пайка и монтаж
    • Корпуса
    • Вопросы надежности и испытаний
  • Аналоговая и цифровая техника, прикладная электроника
    • Вопросы аналоговой техники
    • Цифровые схемы, высокоскоростные ЦС
    • RF & Microwave Design
    • Метрология, датчики, измерительная техника
    • АВТО электроника
    • Умный дом
    • 3D печать
    • Робототехника
    • Ремонт и отладка
  • Силовая электроника - Power Electronics
    • Силовая Преобразовательная Техника
    • Обратная Связь, Стабилизация, Регулирование, Компенсация
    • Первичные и Вторичные Химические Источники Питания
    • Высоковольтные Устройства - High-Voltage
    • Электрические машины, Электропривод и Управление
    • Индукционный Нагрев - Induction Heating
    • Системы Охлаждения, Тепловой Расчет – Cooling Systems
    • Моделирование и Анализ Силовых Устройств – Power Supply Simulation
    • Компоненты Силовой Электроники - Parts for Power Supply Design
  • Интерфейсы
    • Форумы по интерфейсам
  • Поставщики компонентов для электроники
    • Поставщики всего остального
    • Компоненты
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
    • Обсуждение Майнеров, их поставки и производства
  • Дополнительные разделы - Additional sections
    • Встречи и поздравления
    • Ищу работу
    • Предлагаю работу
    • Куплю
    • Продам
    • Объявления пользователей
    • Общение заказчиков и потребителей электронных разработок

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники


Звание

Найдено: 0 результатов

  1. Возникли проблемы с реализацией цикличного мигания светодиодов с переключением скорости и направления по кнопке. Схема не реагирует на нажатие кнопки на PD7 (изменение скорости), изменение направления (на PD6) происходит только тогда, когда не горит ни один диод. Обязательно нужно применить прерывания по таймеру-счетчику, Преподаватель рекомендовал библиотеку axlib/timers.h . Задание: 8 светодиодов сделать сквозное переключение (циклично). Введем несколько режимов скорости (3 режима). Взять в 2 раза увеличивающий период (использовать библиотеку по таймерам) При работе с таймер счетчиком использовать прерывание Подключить семисегментый индикатор (будут отображаться только режимы скорости). 2 кнопки (одна меняет скорость, другая направление). Схема: Код программы: Сам проект прикреплен. project_Code_sxema.zip
  2. В противоположность известных всем процессоров «Intel», марку которых довольно легко запоминать и выговаривать, «Койяанискаци» задумывался как процессор, имя которого сложнее произнести, чем разобраться в его архитектуре и научиться его программировать на самом элементарном уровне машинного кода редакторами дампа, чтобы проверить, действительно ли стоит прогибаться под радиолюбительские ТУ и невозможно сформировать красивую систему команд, понятную на уровне интуиции? Не имеется ввиду код стиля «O'Kей, процик, вычисли мне среднее факториальное», а планировался машинный код с минимальным уровнем вхождения в основы искусства его программирования, не требующего жёсткой зубрёжки и заучивания всех команд. Введение Начальный дизайн процессора задумывался как шуточный автомат со сквозным байт-кодом и возможностью кодировать дамп сценария даже без необходимости обращения к таблице команд до полного их заучивания. Ставилась простая задача разработки простого процессорного устройства, в котором любые из 30 РОН можно заменить на всякую периферию из датчиков, двигателей и соленоидов. В таком дизайне имеется уникальная возможность организации почти непосредственного взаимодействия всех требуемых устройств без надобности в высоких частоте и производительности. Архитектура процессора Весь процессор основан на регистровом файле из четырёх функциональных групп по десять ячеек в каждой. Хотя операции АЛУ возможны над любыми ячейками, правила корректного оперирования с ними соблюдать необходимо более-менее строго. Здесь стоит просто запомнить логику и назначение этих функциональных групп: A₀…₉ - Аккумуляторы (A₀ хранит флажки статуса АЛУ) B₀…₉ - Base/База доступа к памяти (B₀ хранит Базу возврата из подпрограммы) C₀…₉ - Counter/Счётчик/Смещение байта в памяти (C₀ хранит Смещение возврата из подпрограммы) D₀…₉ - Devices/Доступные устройства с мгновенным откликом (можно организовать кеш) Так как процессор достаточно прост и не имеет встроенных аппаратных механизмов организации стековых операций, регистры B₀:C₀ сохраняют адрес, на котором была размещена операция обращения к подпрограмме. Программист при необходимости сам обязан позаботиться о всех операциях работы со стеком и описать их алгоритмом. Все эти сложности легко обходятся использованием стандартной библиотеки. Система команд Практически все команды кодируются WYSIWYG-стилем акына:«Что вижу, то значит». Шестнадцатеричная кодировка отчасти является аббревиатурой самой команды и всё задумывалось так, чтобы большинство команд просто совершали понятные действия. 00: HLT (останов программы) - крайне логичный и гармоничный код! 01: Приращение единицы к активному регистру-приёмнику 02…09: Префикс повтора операции от 2 до 9 раз или пропуск группы операций по условию 10…99: Используется BCD-код приращения к активному регистру-приёмнику - код 56 означает именно 56₁₀, а не 0x56₁₆ A0…A9, B0…B9, C0…C9: Безвременные префиксы выбора активного регистра указанной группы - A₀…A₉, B₀…B₉, C₀…C₉ соответственно D0…D9: Выбор активного устройства группы Devices - D₀…D₉ AA…AD, BA…BD, CA…CD, DA…DD: Безвременные префиксы выбора сочетания операндов для АЛУ-операций - A,A…D,D соответственно E0…E7: Обращение к расширению (Extension) через подпрограмму - CALL 0xE000…0xE700 F1…F9: Обращение к функции (Function) с указанным индексом - CALL 0xF100…0xF900 E8…EF: Условный префикс к исполнению кода следующей операции - Enable if SF/PF/CF/ZF F0: Завершение текущей функции (Function Over - как Game Over) AE/BE/CE/DE: Извлечение (Extract) данных из памяти в указанный регистр AF/BF/CF/DF: Запись/фиксация (Fix) данных указанного регистра в память FA…FF: Вызов прочих функций - CALL 0xFA00…0xFF00 0A/1A/2A…9A: АЛУ-операция "Сумма" (Add) над группой операндов - индекс правого операнда указывается явно 0…9 0B/1B/2B…9B: АЛУ-операция "Вычитание" (suB) над группой операндов - индекс правого операнда указывается явно 0…9 0C/1C/2C…9C: АЛУ-операция "Конъюнкция" (Conjunct/and) над группой операндов - индекс правого операнда указывается явно 0…9 0D/1D/2D…9D: АЛУ-операция "Дизъюнкция" (Disjunct/or) над группой операндов - индекс правого операнда указывается явно 0…9 0E/1E/2E…9E: АЛУ-операция "Исключающее ИЛИ" (Exclusive or/Eor/xor) над группой операндов - индекс правого операнда указывается явно 0…9 Основы программирования Однако, тут не стоит думать, что «процессор акына» совсем ничего не требует от продвинутого пользователя-программиста: Минимальный порог вхождения преодолеть всё-таки придётся… А значит, придётся чуточку поднапрячься и преодолеть порог! (Здесь подразумевается, что читатель уже имеет все базовые понятия и принципы, позволяющие ориентироваться в синтаксической конструкции и строить выражения…) Сложение величин из регистров A₁ и B₂ традиционно можно представить выражением «A1 += B2» или мнемонической записью «ADD A1,B2», которую и следует оформить в машинный код. Так как архитектура процессора предельно проста и организовалась на польской записи, буквально необходимо сначала предопределить используемые в операции операнды, чтобы потом произвести саму конкретную операцию вычисления. Так как используется сочетание регистров «A1» и «B2» в порядке «An,Bn», то под их определение следует указать машинный код AB₁₆. Выбор индексов на конкретных операндах выполняется кодами A1₁₆ и B2₁₆, что указывает на буквальность кодов. Так как индекс правого операнда равен двум, то в коде АЛУ-операции «Сумма» его следует указать явно в левой тетраде как 2A₁₆. Тем самым, становится очевидным размещения кода всего выражения как «A1 AB B2 2A». Но так как индекс B₂ указан явно в АЛУ-операции, байт команды «B2» можно исключить из цепочки, так как сам регистр B₂ не является приёмником результата и код сократится до одной из двух комбинаций записи «A1 AB 2A» или «AB A1 2A», так как от расположения префиксов перед операциями результат не изменяется и всё зависит от стиля программиста. 0000 A1 |----vv ;A1 выбирает регистр A₁ 0001 AB |------v ;AB задаёт порядок операндов A,B 0002 2A|ADD A1,B2;2A - ADD, где двойка выбирает индекс B₂ ^----------^ Выражение «A1 = A1 + B2 - B3 & B4 | B5 ^ B6» можно описать последовательностью «A1 AB 2A 3B 4C 5D 6E», так как в каждом следующем коде операции явно указан и индекс правого операнда, что позволяет писать код компактно и производительно. Максимально доступно каждому любителю Так как Logisim куда доступнее и проще того же Proteus и компактнее KiCAD, вся схема процессора разрабатывалась в рамках проекта именно Logisim, чтобы проект был по-детски прост и лёгок для использовании заинтересованными любителями. По предварительным подсчётам, если схему проекта попытаться собирать микросхемами серии 74xx или отечественной номенклатуры, понадобится порядка 250 корпусов... При грамотном подходе проектирования процессоров с применением мультиплексоров и специализированных микросхем РОН, число всех микросхем может снизиться всего до сотни корпусов с повышением производительности без переходов в Z-состояние. Скачать архив исходной схемы с прошивками можно по ссылке на странице проекта… Если смущает использование ПЗУ для дешифрации команд, имеется набросок схемы с использованием уровня комбинаторики, по которой можно осознать, что и красивую систему команд можно декодировать простейшим способом логических вентилей, без ущерба концептуальной задумки… Эмуляция? Никакого программного эмулятора не задумывалось специально, чтобы архитектурно процессор изначально готовился к реализации на физических макетных платах и не содержал в себе решений, которые аппаратно крайне сложно будет реализовывать в силу излишней вольности в эмуляторе. Вся схема разрабатывалась несколько лет в часы досуга эпизодически и несколько раз перерисовывалась вся с чистого листа. Ссылки Скачать исходные файлы симуляции можно здесь. Основная статья размещена здесь.
  3. Добрый день пытаюсь сформировать сигнал вот таким вот образом, но на осцилографе я вижу только как работает кнопка, но самого сигнала не вижу. Схема в протеусе прилагаю. может кто подскажет interrupt [EXT_INT1] void signal (void){ // Пока нажата соответствующая кнопка формируем сигнал while(PINF.6==0) { // Переводим таймер 1 в режим ШИМ TCCR1A=0xA1; TCCR1B=0x09; // Задаем начальное значение в регистр сравнения OCR1AL=0x00; // Формируем передний фронт сигнала while (OCR1AL<0xFF) { OCR1AL++; delay_us(200); } // Формируем длительность полочки delay_ms(47); // Формируем задний фронт сигнала while (OCR1AL>0x05) { OCR1AL--; delay_us(250); } // Формирем длительность паузы delay_ms(56); // Отключаем таймер 1 // В случае отключения соответствующей кнопки // МК не буде генериро TCCR1A=0x00; TCCR1B=0x00;} }
  4. Привет коллеги. Работаю через SPI c AD7714. Подскажите возможно ли ее моделирование в системах подобных Proteus ? Или какой другой путь отладки программы общения с AD7714 через SPI ?
  5. Добрый день, форумчане! По заданию преподавателя собрал в протеусе секундомер, а он отказывается работать, хотя ошибки я не вижу, хоть убейте. Помогите, пожалуйста, ее найти Ниже указаны требования преподавателя: "В задании с ОБЩИМ ВЫКЛЮЧАТЕЛЕМ задействуем два генератора (на NE555- генерят сигнал соответственно с частотой 1 гц и одну-десятую герца для десятков секунд), дешифраторы, у одного из которых мы на выходе (их 4-е в двоичном коде) отслеживаем число 9 (в десятичной системе, для чего и понадобятся микросхемы логики "и", с выхода которой) "резетим" через соответствующий Pin дешифратор, отвечающий за "Единицы" и, аналогично, 5-ку на старшем десятичном разряде (другая такая же микросхема- отвеч. за"Десятки"), с тем чтобы наш секундомер с "59" вновь обнулить."
×
×
  • Создать...