Схемы в программе proteus

Схема, которую мы собираемся нарисовать, показана ниже. Может показаться, что это будет довольно трудоёмким занятим. Однако некоторые её части похожи (если быть точным, четыре фильтра на операционных усилителях), что даёт возможность использовать средства копирования блока.

Основы рисования схем

Схема руководства

Разное

Интересно

Если у вас нет жидкого канифольного флюса, его легко изготовить самостоятельно.
В небольшом количестве спирта растворяют кусочки канифоли до образования темно-коричневой жидкости. Наносят такой флюс на место пайки кисточкой.

Похожие инструкции

Kicad

Система Kicad — это пакет прикладных программ для автоматизированной разработки электрических схем и проектирования печатных плат, который работает в следующих операционных системах:

PROTEUS УРОК 3 первая схема


• LINUX
• Windows XP
• Mac OS

Kicad

Просмотров: 2640

Sprint-Layout 6.0

Sprint-Layout является простым в использовании программным обеспечением для разработки односторонних, двусторонних и многослойных печатных плат (PCB).

Просмотров: 838687

Multisim

Multisim-это единственный в мире эмулятор схем, который позволяет вам создавать лучшие продукты за минимальное время.

Просмотров: 444080

Eagle

Комплексный пакет программ Cadsoft EAGLE — незаменимое решение для разработки печатных плат.

Просмотров: 165989

Proteus. Редактор ARES

ARES — графический редактор печатных плат со встроенным менеджером библиотек и автотрассировщиком ELECTRA, автоматической расстановкой компонентов на печатной плате.

Просмотров: 286815

DipTrace - Редактор корпусов

Программный пакет DipTrace представляет собой полнофункциональную систему для разработки принципиальных схем и печатных плат.

Просмотров: 127632

Radio-Hobby.org

Источник: radio-hobby.org

PROTEUS симуляция работы электронной схемы

Hello world — Proteus + MPLAB

Работайте так, словно деньги не имеют для Вас никакого значения.

I2C LCD и микроконтроллер для вывода на экран. Для повторения потребуются компьютер на Windows, программа Proteus для проектирования и запуска, программа MPLAB для сборки кода.

Сам проект был взят из simple-circuit.com.

Под катом много картинок.

Для начала создадим новый проект в Proteus.

Далее выбираете размер рабочей области для схемы, мне вполне хватило А4.

Не создаем PCB Layout (так как нам не нужна печатная плата для устройства).

Далее выбираем наш микропроцессор и компилятор.

После нескольких нажатий далее, попадаем на рабочий стол программы.

Для добавления новых элементов нам нужно перейти в меню «Component mode» (с левой стороны, чуть ниже курсора). После чего на свободном поле выбираем мышкой — Pick from Laibraries.

Если библиотека элементов не доступна, то запустите Proteus с правами администратора (например, кликнув правой клавишей по ярлыку на рабочем столе и выбрав соответствующий пункт меню).

В конечном итоге вы должны составить примерно следующую схему.

Читайте также:
Архитектура деловой программы это

Земля и + добавляются щелчком по свободному месту — выбрать Place — Terminal — GROUND или POWER (после чего изменить свойства питания на VDD).

После чего необходимо будет установить MPLAB. А также плагин для компилятора, в нашем случае хватит XC8.

Перейдём к созданию нашего нового проекта.

После чего наш проект будет располагаться по умолчангию в C:Usersимя_пользователяMPLABXProjectsимя_проекта.

В левой части экрана нам нужно будет создать/добавить файл в source files.

main.c — основная программа

Так же в папку проекта стоит добавить драйвер LCD дисплея .

/********************************************************************************** * I2C_LCD.c * * MPLAB XC8 compiler LCD driver for I2C LCDs with HD44780 compliant controllers. * * https://simple-circuit.com/ * * * *********************************************************************************/ #pragma warning disable 520 #include #define LCD_FIRST_ROW 0x80 #define LCD_SECOND_ROW 0xC0 #define LCD_THIRD_ROW 0x94 #define LCD_FOURTH_ROW 0xD4 #define LCD_CLEAR 0x01 #define LCD_RETURN_HOME 0x02 #define LCD_ENTRY_MODE_SET 0x04 #define LCD_CURSOR_OFF 0x0C #define LCD_UNDERLINE_ON 0x0E #define LCD_BLINK_CURSOR_ON 0x0F #define LCD_MOVE_CURSOR_LEFT 0x10 #define LCD_MOVE_CURSOR_RIGHT 0x14 #define LCD_TURN_ON 0x0C #define LCD_TURN_OFF 0x08 #define LCD_SHIFT_LEFT 0x18 #define LCD_SHIFT_RIGHT 0x1E #define LCD_BACKLIGHT 0x08 #define LCD_NOBACKLIGHT 0x00 #ifndef LCD_TYPE #define LCD_TYPE 2 // 0=5×7, 1=5×10, 2=2 lines #endif __bit RS; uint8_t i2c_addr, backlight_val = LCD_BACKLIGHT; void I2C_Init(uint32_t i2c_clk_freq); void I2C_Start(); void I2C_Stop(); void I2C_Write(uint8_t i2c_data); void LCD_Write_Nibble(uint8_t n); void LCD_Cmd(uint8_t Command); void LCD_Goto(uint8_t col, uint8_t row); void LCD_PutC(char LCD_Char); void LCD_Print(char* LCD_Str); void LCD_Begin(uint8_t _i2c_addr); /********************** I2C functions **************************/ void I2C_Init(uint32_t i2c_clk_freq) < SSPCON = 0x28; // configure MSSP module to work in I2C mode SSPADD = (_XTAL_FREQ/(4 * i2c_clk_freq)) — 1; // set I2C clock frequency SSPSTAT = 0; >void I2C_Start() < while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) SEN = 1; // initiate start condition >void I2C_Stop() < while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) PEN = 1; // initiate stop condition >void I2C_Write(uint8_t i2c_data) < while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) SSPBUF = i2c_data; // update buffer >void I2C_Repeated_Start() < while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) RSEN = 1; // initiate repeated start condition >uint8_t I2C_Read(uint8_t ack) < uint8_t _data; while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) RCEN = 1; while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) _data = SSPBUF; // read data from buffer while ((SSPSTAT 0x1F)); // wait for MSSP module to be free (not busy) // send acknowledge pulse ? (depends on ack, if 1 send, otherwise don’t send) ACKDT = !ack; ACKEN = 1; return _data; // return data read >/********************** end I2C functions **********************/ void Expander_Write(uint8_t value) < I2C_Start(); I2C_Write(i2c_addr); I2C_Write(value | backlight_val); I2C_Stop(); >void LCD_Write_Nibble(uint8_t n) < n |= RS; Expander_Write(n __delay_us(1); Expander_Write(n | 0x04); __delay_us(1); Expander_Write(n __delay_us(100); >void LCD_Cmd(uint8_t Command) < RS = 0; LCD_Write_Nibble(Command LCD_Write_Nibble((Command void LCD_Goto(uint8_t col, uint8_t row) < switch(row) < case 2: LCD_Cmd(LCD_SECOND_ROW + col — 1); break; case 3: LCD_Cmd(LCD_THIRD_ROW + col — 1); break; case 4: LCD_Cmd(LCD_FOURTH_ROW + col — 1); break; default: // case 1: LCD_Cmd(LCD_FIRST_ROW + col — 1); >> void LCD_PutC(char LCD_Char) < RS = 1; LCD_Write_Nibble(LCD_Char LCD_Write_Nibble((LCD_Char void LCD_Print(char* LCD_Str) < uint8_t i = 0; RS = 1; while(LCD_Str[i] != ‘’) < LCD_Write_Nibble(LCD_Str[i] LCD_Write_Nibble( (LCD_Str[i++] > void LCD_Begin(uint8_t _i2c_addr) < i2c_addr = _i2c_addr; Expander_Write(0); __delay_ms(40); LCD_Cmd(3); __delay_ms(5); LCD_Cmd(3); __delay_ms(5); LCD_Cmd(3); __delay_ms(5); LCD_Cmd(LCD_RETURN_HOME); __delay_ms(5); LCD_Cmd(0x20 | (LCD_TYPE void Backlight() < backlight_val = LCD_BACKLIGHT; Expander_Write(0); >void noBacklight()

Читайте также:
Увеличить время ожидания программы

После чего собираем наш код с помощью кнопки — Build project (выглядит как молоток) или F11.

Ищем готовый hex файл в папки проекта. имя_проектаdistdefaultproduction

Копируем его в папку проекта proteus, после чего выбираем свойства микроконтроллера, щелкнув по нему правой кнопкой.

После чего можно запустить проект с помощью большой кнопки play внизу проекта. В результате вы получите что-то вроде этого.

Все файлы вы можете скачать с гитхаба.

Источник: becooladmin.wordpress.com

PIC микроконтроллеры

PIC микроконтроллеры, средства проектирования, схемотехника

Создание иерархической схемы в proteus(схематическая модель энкодера)

Опубликовано 19 января 2012 автором sarge

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

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

Не забываем, что нужно добавлять правильные пины на символ, они находятся в пункте “Пины устройства”.

Далее нужно сохранить устройство в библиотеке, для этого выделяем все устройство, нажимаем правой кнопкой мыши и “Создать устройство”. Дальше по пунктам интуитивно все заполняем. Ничего сложного.

Энкодер я строю по принципу, о котором писал в прошлой статье (речь идет о двух сигналах смещенных друг относительно друга на определенную фазу). Сначала создадим схему эмулятор:

Вкратце о схеме, три источника прямоугольных импульсов, p90 смещен относительно p0 на 90 градусов, второй на 270. На два выхода с помощью реле комутируется либо p0 и p90, либо p0 и p180. Пины Up и Down предназначены для подключения кнопки, пины A и C – выходы энкодера.

Читайте также:
Как удалить все программы autodesk

Частота источников 50 Гц. Я подумал что врядли может быть больше импульсов за оборот ручки.

Далее создаем нашу схему, вставляем наш энкодер, тыкаем свойства и ставим галочку “Присоеденить иерархический модуль”. Потом, нажимаем на модели правой кнопкой и переходим на дочерний лист. Там и вставляем схему с реле. Вот в принципе все и готово.

Дальше можно в схему добавлять мк и тестировать на симуляторе.

Запись опубликована автором sarge в рубрике Другое, Схемотехника с метками proteus, энкодер. Добавьте в закладки постоянную ссылку.

Создание иерархической схемы в proteus(схематическая модель энкодера) : 11 комментариев

chaz говорит 19 января 2013 в 5:47 :

I cant figure out how you changed the phas of the generators?? could you let me know how? or could yopu be so kind as send me the encoder. DLL. I would relly appretiate if you could…cheers
CHaz
from Los Angeles California

Hi, I just changed start time of pulse in options. This works only for frequency 50 MHz, for other frequency you will need to change it.

Александр говорит 27 марта 2014 в 16:59 :

Не получается настроить смещение импульсов, можете поподробней написать, что и где писать в настройках

Смещение регулируете с помощью задержек в источнике сигнала. (Поле старт)
Che говорит 14 апреля 2014 в 13:58 :
Отличный способ имитировать работу энкодера! Очень пригодилось! спасибо!
Евгений говорит 30 мая 2014 в 19:05 :

Здравствуйте. Совсем не получается построить модель энкодера в протеусе. Не могли бы вы поделиться со мной готовым библиотечным элементом энкодера.
С уважением, Евгений.

Евгений говорит 4 июня 2014 в 21:30 :

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

С авр не работал, что никакой разницы нет, все зависит от того как вы написали вашу программу. Если по моим экспериментам то на любые порты ввода вывода.

Евгений говорит 4 июня 2014 в 23:55 :

А как сделать в протеусе, чтобы сам энкодер был подключен к микропроцессору, чтобы можно было выполнить любую даже самую простую программу… может у вас есть какие-либо мысли на этот счет. Много вариантов перебрал и никак не получается выполнить такую задачу.

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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru