Led индикатор загруженности цп

Индикатор загрузки процессора

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

Использовать для этой цели различные утилиты (например, «Диспетчер задач» в Windows XP) не всегда представляется возможным, поскольку некоторые программы (в основном игры) занимают весь экран монитора.

Наиболее оптимальным в этом случае, будет вывод информации о загрузке процессора через один из портов компьютера. Предпочтительней использовать COM порт, поскольку LPT порт, обычно занят принтером. Об одной из таких программ далее пойдёт речь. 

Програма постоянно находится в трее (скриншот ниже)

Для того чтобы программа запускалась при каждом включении компьютера, её следует помесить в папку «Автозагрузка». После запуска программы «CPU.exe», в трее (возле часов) появится иконка в виде небольшого квадратика, цвет которого будет зависеть от текущей загрузки процессора.

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

Для того чтобы выбрать порт, который будет использоваться этой программой, следует щёлкнуть правой кнопкой «мыши» по иконке и в появившемся меню, выбрать порт Рис. 1. При попытке выбрать недоступный порт (занятый другой программой или отсутствующий), появится сообщение об ошибке Рис. 2.

В качестве текущего останется порт, который был выбран до этого. Если в меню будет выбран пункт «нет», ни один из портов использоваться не будет. Для того чтобы завершить работу программы, в меню следует выбрать пункт «выход».

С порта, информация о текущей загрузке поступает на устройство индикации. Схема индикатора приведена на рисунке:

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

К его коллектору подключён вход приёмника USART, PIC-контроллера. Микроконтроллер принимает байт и в первую очередь проверяет, равен ли он числу «255». Если равен, тогда на индикатор будет выведено слово «OFF».

Если в течение нескольких секунд не поступит данных от компьютера, на индикатор также будет выведено слово «OFF». Программа «CPU.exe» может передать код «255», только в случае смены порта или при завершении своей работы.

Если же принятый байт не равняется этому числу, он после двоично-десятичного преобразования будет выведен на индикатор, на котором будет отображаться текущая загрузка процессора в процентах. В устройстве были использованы резисторы МЛТ-0.

125; оксидные конденсаторы К50-35, остальные – К10-17, КТ-1 или аналогичные импортные. Транзистор VT1 – любой из серий КТ315, КТ342, КТ3102, с коэффициентом усиления не менее 100. Диод VD1 – любой из серий КД521, КД522. Интегральный стабилизатор напряжения DA1, можно заменить на КР142ЕН5В или на её импортный аналог – 7805.

Для питания этого устройства был использован блок питания «Электроника Д2-10М, от отечественного микрокалькулятора.

В место него можно использовать любой источник питания с выходным напряжением 7…15 вольт при токе нагрузки 50 миллиампер. Допустимо питать устройство непосредственно от компьютера, например, с разъёма USB.

Для этого необходимо исключить конденсатор C1 и интегральный стабилизатор DA1, а напряжения питания подавать на конденсатор C2.

скачать

— прошивка для микроконтроллера PIC16F628A в HEX формате: cpu_hex_cod

— прошивка для микроконтроллера PIC16F628A в формате программы ProgCode: cpu.sfr

— Программа CPU.exe : cpu_exe

— Рисунок платы под 1 и 3 индикатор, формат LAY

Источник: http://elektro-shemi.ru/indikator_zagruzki_processora.html

Индикатор загрузки процессора

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

Использовать для этой цели различные утилиты (например, “Диспетчер задач” в Windows XP) не всегда представляется возможным, поскольку некоторые программы (в основном игры) занимают весь экран монитора. Наиболее оптимальным в этом случае, будет вывод информации о загрузке процессора через один из портов компьютера.

Предпочтительней использовать COM порт, поскольку LPT порт, обычно занят принтером. Об одной из таких программ далее пойдёт речь. 

Програма постоянно находится в трее (скриншот ниже)

Программу написал на языке “PureBasic 4.0”. Она получает текущую информацию о загрузке процессора из операционной системы и отправляет её через COM устройству.

При первом запуске этой программы, в папке “Temp” текущей операционной системы (C:WINDOWSTemp) будет создан файл “CPU.ini”, в котором в дальнейшем будет храниться информация о выбранном порте.

 

Если порт не удалось открыть программа выдаст сообщение:

Для того чтобы программа запускалась при каждом включении компьютера, её следует помесить в папку “Автозагрузка”. После запуска программы “CPU.exe”, в трее (возле часов) появится иконка в виде небольшого квадратика, цвет которого будет зависеть от текущей загрузки процессора. При минимальной загрузке, цвет будет зелённым, по мере увеличения загрузки, он плавно изменяется до красного.

Если навести указатель “мыши” на эту иконку, появится всплывающее сообщение, в котором будет указана в процентах текущая загрузка процессора. Для того чтобы выбрать порт, который будет использоваться этой программой, следует щёлкнуть правой кнопкой “мыши” по иконке и в появившемся меню, выбрать порт Рис. 1.

При попытке выбрать недоступный порт (занятый другой программой или отсутствующий), появится сообщение об ошибке Рис. 2. В качестве текущего останется порт, который был выбран до этого. Если в меню будет выбран пункт “нет”, ни один из портов использоваться не будет. Для того чтобы завершить работу программы, в меню следует выбрать пункт “выход”.

 

С порта, информация о текущей загрузке поступает на устройство индикации. Схема индикатора приведена на рисунке:

На входе установлен оптрон, обеспечивающий гальваническую развязку порта от индикатора. Он в первую очередь, предназначен для защиты порта от повреждения при ошибках в схеме. Транзистор VT1 усиливает и инвертирует сигнал, прошедший через оптрон. К его коллектору подключён вход приёмника USART, PIC-контроллера.

  Микроконтроллер принимает байт и в первую очередь проверяет, равен ли он числу “255”. Если равен, тогда на индикатор будет выведено слово “OFF”. Если в течение нескольких секунд не поступит данных от компьютера, на индикатор также будет выведено слово “OFF”. Программа “CPU.exe” может передать код “255”, только в случае смены порта или при завершении своей работы.

Если же принятый байт не равняется этому числу, он после двоично-десятичного преобразования будет выведен на индикатор, на котором будет отображаться текущая загрузка процессора в процентах.  В устройстве были использованы резисторы МЛТ-0.125; оксидные конденсаторы К50-35, остальные – К10-17, КТ-1 или аналогичные импортные.

Транзистор VT1 – любой из серий КТ315, КТ342, КТ3102, с коэффициентом усиления не менее 100. Диод VD1 – любой из серий КД521, КД522. Интегральный стабилизатор напряжения DA1, можно заменить на КР142ЕН5В или на её импортный аналог – 7805.  Для питания этого устройства был использован блок питания “Электроника Д2-10М, от отечественного микрокалькулятора.

В место него можно использовать любой источник питания с выходным напряжением 7…15 вольт при токе нагрузки 50 миллиампер. Допустимо питать устройство непосредственно от компьютера, например, с разъёма USB. Для этого необходимо исключить конденсатор C1 и интегральный стабилизатор DA1, а напряжения питания подавать на конденсатор C2.

  Печатная плата для этого устройства не разрабатывалась, все соединения были выполнены тонким монтажным проводом.  Дополнения (печатные платы) от 9 февраля 2010 года Плат было спроектировано 2 варианта: на одном трёхразрядном индикаторе (я не смог найти такой с общим анодом) и на трёх одноразрядных, которая и была воплощена в жизнь и показана на фото.

 Некоторые пояснения к плате :  1. Индикаторы монтируются со стороны, противоположной деталям.  2. Размер платы выбран под внутреннюю часть затычки флопи-дисковода. В 

затычке остаётся сделать прямоугольное окно под индикатор.

3. На плате использован стабилизатор напряжения +5V 78L05, который не нужен,  если располагать плату внутри системного блока и брать +5V от блока питания  компьютера.  4. На плате с тремя индикаторами задействована десятичная точка младшего  разряда (для красоты 🙂 5. На плате с тремя индикаторами необходимо соединить проводом анод каждого  из разрядов с соответствующей площадкой разводки 1, 2 и 3.  Дополнения (монтаж устройства) от 24 февраля 2010 года  Печатная плата вставлена в заглушку флопи-дисковода.  Удерживающие плату винты – с потайной головкой и утоплены глубже лицевой  поверхности заглушки (недопустимо, чтобы выступали) и снаружи закрашены  чёрным маркером. С внутренней стороны винты затянуты гайками, что превращает  их в резьбовые стойки и позволяет, при помощи других гаек, регулировать  положение платы в заглушке по глубине. Это позволяет добиться того, чтобы  плоскость поверхности индикаторов не выступала из плоскости заглушки и, в то 

же время, не была расположена слишком глубоко.

В оклейке заглушки плёнкой есть одна тонкость.

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

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

Порядок действий был такой:  1. Отрезал прямоугольник самоклеящейся плёнки от рулона, с запасом, примерно, по 2 см с каждой стороны.  2. Снял защитную плёнку (отделить тёмную плёнку от основы – самый трудный этап во всей работе!), и положил тёмную плёнку на стол клеем вверх (осторожно, она очень притягивает пыль!).  3.

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

Обрезал излишки тёмной плёнки, оставив запас по краям по 4…5 мм.  6. Приложил этот “бутерброд” к заглушке, аккуратно, внатяг, загнув липкие края и прижав их к верхней, нижней и боковым поверхностям заглушки.  7. Осталось вставить заглушку в системный блок и подключить провода.

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

Автор конструкции: Пётр Высочанский  АРХИВ:

Раздел: [Схемы]

Источник: http://www.cavr.ru/article/227-indikator-zagruzki-processora

Стрелочный индикатор загрузки ЦП своими руками. Как? #702190

Всем давно известно, что 1Сники знают всё, поэтому спрашиваю тут… Нашёл вот такую статью: И загорелся сделать такую же хреновину, но как обычно всплывают некоторые НО, из-за недостатка знаний в радиоэлектронике и микроконтроллерах. В частности: 1. Какие стрелочные индикаторы можно использовать.

А именно – что они должны измерять – постоянный или переменный ток, постоянное/переменное напряжение? Посмотрел в чипидипе – там “Стрелочные измерительные головки” на постоянное напряжение от 15В и выше , а мне кажется что нужен индикатор на миливольты.

Может я не то ищу? Как правильно называются эти штуковины? Где их можно купить? Какие параметры нужны? 2. Не совсем понятно какой там светодиод используется, на какое напряжение, с какими параметрами и т.д.(понял что он может менять цвет, в зависимости от подаваемых на разные контакты напряжений) 3.

Чё такое PGC и PGD на схеме? 4. Чего такое R1 82R… Судя по всему это резистор, но что такое 82R? 82Ом? Или это что-то другое? 5. X1 20MHz – это что за зверь? Где взять? 6.

В статье говорится про прошивку (firmware) контроллера(?) PIC18F2550, и даже к статье приложена сама прошивка, но я так и не понял как залить прошивку внутрь этой микросхемки. Буду рад другим мануалам на эту тему, или если пошлёте в нужный форум-обсуждение похожих разработок.

>я так и не понял как залить прошивку внутрь этой микросхемки напиши обработку

easyelectronic.ru. dihalt.ru

ну тогда давай инвайт 🙂

При чём тут осцилограф, и тем более лукоморье?

Индикаторы постоянного тока. Подаешь на него ШИМ и готово. Нафиг PIC, бери либо Arduino (самое юзерфрендли) либо STM32 (переделать во все и вся сможешь)

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

Паяешь на 8 резисторах ЦАП и подключаешь к LPT-порту – он как раз 8-битный. Это самый простой способ получить аналоговый сигнал из цифры.

Рано тебе инвайт, сперва читай.

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

Я так понял что программа, работающая с USB уже есть, причём как в виде исходников на C, так и в скомпилированном виде, так что этот вопрос не сильно напрягает. Arduino… Я так понял что будет не меньше гемора с ним, только там ещё надо понимать как сама эта железяка работает, и писать под неё программы.

Глянь сначала как этот автор предлагает. Он через FTDI микрухи последовательный порт эмулирует или с USB работает. Если последовательный порт то с Arduino тебе будет проще

Ну нету у меня LPT! Хочу с USB.

Для меня это мягкое и зелёное 🙂 Т.е. я не понимаю разницы, и не знаю как посмотреть.

В ардуино не надо ничего понимать. Пишешь readPort и все тут. Или Serial.read USB понятие очень растяжимое.

Посмотри насколько прост

Открой секрет, че ты с ним будешь делать? Прсобачишь на системник для красоты?

Ок, допустим Ардуино, там их модификаций вагон с тремя тележками: Какая нужна, что бы подошла как ты сказал – кнопку потыкать, лампочку позажигать, ну и плавно перейти к нужным мне целям? “Пишешь readPort и все тут” Почему именно readPort, и почему именно 10, кто и как должен давать команды Ардуине на этот порт? Да, но скорее на/под монитор, что бы перед глазами было, и можно было видеть загрузку проца и (что для меня более важно) памяти в режиме онлайн, без захода в диспетчер задач.

+”Пишешь readPort и все тут” Пишешь где, куда, каким макаром? На компе? Это на каком языке? Или у них свой макроязык? Как эту программу загнать в Ардуину?

на уровне собачки – почему бы и нет? он же не ставит перед собой здачу разобраться, как это работает. ох хочет просто повторить….

по головкам подсказка – если на них (на схемных условных обозначениях) написано “А” – значит, оне меряют амперы…

+хотя в схеме они включены как вольтметры.

светодиоды – пофиг,какие. ставь, какие нравятся.

PGC и PGD – Programming Clock и  Programming Data

“Ученые долго думали, в чем измерять частоту. не придумали, и поэтому так и пишут – ХЗ (Hz)”© зы. кварц это

прошивку – программатором. например, громовским.

ты сам этот самый “глянь” pic18f2550 вполне себе работает с usb

Любая. совершенно фиолетово.

Да много чего работает с USB. Вопрос как – usb-hid, serial и так далее. С одними дескрипторами сколька секса предстоит, если это не serial будет.

Спасибо, о, великий! ты мне открыл глаза 🙂 Но позволь ответить не читателю а пейсателю, что я спрашивал немного другое: “что они должны измерять – постоянный или переменный ток, постоянное/переменное напряжение? Посмотрел в чипидипе – там “Стрелочные измерительные головки” на постоянное напряжение от 15В и выше , а мне кажется что нужен индикатор на миливольты. Может я не то ищу? Как правильно называются эти штуковины? Где их можно купить? Какие параметры нужны?” Под параметрами здесь я понимаю – рабочее напряжение или рабочий ток. Это зависит от того, какое напряжение выдаёт контроллер PIC18F2550. Согласись, если на выходе микросхемы максимальный ток 15 мВ, а я воткну стрелку на 15В, то она даже не шевельнётся. А вот параметр выходного сигнала у этой микросхемы мне, к сожалению, не известен, поэтому и попросил знающих людей помочь. Не понятно… Это какие-то генераторы частоты? Можно пример детали, которая подойдёт именно для этой схемы? Можно пример?

“на выходе микросхемы максимальный ток 15 мВ” Попридираюсь – ток вообще-то в амперах измеряется. Поддержу , порекомендую stm32. И разработка проще и программатор не нужен и примеров много.

очепятался… конечно же напряжение 15мВ

я конечно тоже ламер в этих вопросах, но там мне кажется ограничение на ток в 25mA. А напряжение вроде зависит от того, что ты подаёшь на микросхему (по докам от 2 до 5.5V, от usb будет 5). 25mA достаточно для включения светодиода, а по индикаторам надо эксперементировать. Здесь, например, получилось подключить напрямую

Автор забей. С таким багажом и одинэсным подходом тебе ничего не светит.

Озвучу мысль оригинальную и свежую: Не боги горшки обжигают.

Ага. Т.е. ты думаешь  – зашел на мисту и сразу можешь горшки обжигать ? А почитать -поискать инфу, самому поразбираться?

У тебя синдром одинэсника…

софтовый чем не устроит?

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

я вообще-то не ТС, не надо на меня кидаться. если по делу сказать нечего – лучше молчать, умнее будешь выглядеть

.2 Это синхросигнал и данные для программирования. читай про ICSP .3

“Рабинович молит бога о том, что очень хочет выиграть в лотерею. Молит год, молит два… Ангелы подлетают к Господу и просят: – Ну помоги ты в конце концов Рабиновичу выиграть! – Да я не против! Но пусть он хотя бы раз в жизни купит лотерейный билет!..” ©

По простоте AVR и PIC все-таки  лидируют. в STM32 с его CMSIS не самое простое, особенно для начинающих.

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

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

+100500 Некоторых мёдом не корми, дай на мисте повыёживаться, потешить своё ЧСВ, при том что по теме такие чуда как правило ничего ответить не могут. Очень полезная информация, теперь я точно всё соберу. То что напряжение не может превышать, это и ёжику понятно.

Вопрос насколько оно не может превышать (какое максимальное наприжение на выходе в данной схеме? 5В, 1В, 0.1В, 0.001В?)

почитай про закон Ома. Учебник физики, 8 класс средней школы.

+3. И если максимальное напряжение 0.1В – где найти стрелки с рассчитанные на такое маленькое напряжение? Т.к. в чипидипе я нашёл только на 15В и выше, либо не то искал…

И вот только не надо рассусоливать про законы Ома и сферических коней в вакууме…

Если есть конкретный ответ – дай его, если нет – проходите мимо, на мисте полно ещё веток где можно повыпендриваться перед тупыми 1Сниками.

еще раз, для особо непонятливых: “единица” – практически напряжение питания. С ноги – стоит резистивный делитель напряжения (тоже, кстати, “Физика.8 класс”). Еще раз образаю внимание, что не “умножитель”, а “делитель”

все стрелочные индикаторы – микроамперметры

ЗЫ Благодарю Ksandr за конструктивные ответы! Обязательно посмотрю Ардуину и наверно прикуплю какую-нибудь из плат для образования ради. Остальным можно расходиться, балаган уехал, вместе с учебниками физики.

ты его еще добавочные резисторы или  шунты считать заставь 🙂 Если уж из этого выбрать не может:

от ардуйни до того, чего ты хочешь – еще дальше, чем от просто тупого повторения конструкции…

Т.е. тебе учебника физики уже не хватило? 🙂 Или ты уехал вместе с балаганом? :-)))

Источник: https://avprog.ru/q/702190/

LED индикатор загруженности ЦП

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

Эта статья является логическим продолжением для применения кода, описанного в третьем видеоуроке о mikroPascal.

Исходя из того, что у меня нет лазерного принтера (ЛУТ отпадает), двухъядерный процессор и один светодиод стоит примерно 0.8 гривны, было решено делать 3 строки светодиодов по 10  штук в каждой. Две – под индикацию загрузки процессора, и оставшаяся под память или третье ядро (не сталкивался, но слышал).

Основная информация об устройстве:

  1. Напряжение питания: 5 V
  2. Потребляемый ток: < 50 mA 
  3. Частота обновления данных: 0,5

Теперь можно перейти к схеме.

Как видите, она достаточно простая. Основа схемы – микроконтроллер ATmega8 (в корпусе DIP-28). Общее количество деталей – 40 шт. из них. светодиодов – 31, транзисторов – 5, остальное микроконтроллер и обвязка генератора.

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

Таким способом мне удалось “уложиться” в два порта МК (PORTB – 6 пин, PORTC – 5 пин). Можно было конечно использовать сдвиговые регистры, но это повлекло бы за собой усложнение программы, а так же занятое место на плате. По-этому решил обойтись без них.

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

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

Как видите, разводка платы не самая простая. В этом виновата прежде всего динамическая индикация.

Из-за нее пришлось часть проводников перенести на обратную сторону платы, а так же использовать большое количество переходных отверстий (в основном  для подключения светодиодов). Но, тем не менее эту плату возможно сделать и без ЛУТа.

И последнее относительно платы – я использовал текстолит толщиной 0,5 мм, так как другого с двухсторонним покрытием в наличии не оказалось.

Рассмотрев аппаратную часть можно перейти к программной.

Программу для МК я как всегда писал в среде mikroPascal for AVR (v 6.01). Так как в микропаскале нет библиотеки для микроконтроллера Atmega8, которая позволяет работать с USB, то выбор пал на UART. Но так как последний видеоурок по mikroPascal был про прерывания, то решил и сюда их всунуть. И вот что в итоге получилось:

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

  1. Анализируем принятые данные, если они соответствуют “/”, то разрешаем в следующий раз программе пройти дальше.
  2. Расшифровываем из ANCII кодировки.
  3. Рассчитываем и записываем в переменную

Далее, в основном цикле программы мы сначала сопоставляем, к какому ядру относятся полученные данные, а потом их присваиваем соответствующему элементу массива dat.

Вот и весь алгоритм программы.

Если вас интересует, как данные отображаются, то все так же просто:

  1. Смотрим, какая строка сейчас должна обновиться.
  2. Выбираем из массива dat нужный элемент.
  3. Если нужно зажечь пять или меньше светодиодов в строке, то просто оправляем значение в порт. Если же больше пяти (число n), то сначала зажигаем первые пять, а потом то что осталось (n-5). Все это крутится в цикле.

Из фузов нужно выставить только внешний кварц (8 MHz).

В Khazama AVR Programmer это выглядит следующим образом:

Вот и все! Но если у вас нет каких-то деталей, но есть их аналоги. Светодиоды можно взять любые, подходящие по току и размерам. Микроконтроллер заменить нельзя.

Только взять такой же но с любым другим индексом (например, вместо ATmega8 – ATmega8L и т.д.). Транзисторы так же можно взять любые маломощные структуры p-n-p. Я использовал КТ361Г (работают нормально, хотя еще 1987 г.

выпуска 🙂 ). Резисторы – с разбросом от указанного номинала до +/- 20 %.

И напоследок, о программе для Windows, которая управляет индикацией. Она написана в Delphi xe5 и называется iCPU.

Рассчитана на 2 ядра. В настройках выбирается порт, к которому подключено устройство. Возможно использовать как встроенный COM порт (через преобразователь уровней на MAX232 ), так и через виртуальный COM порт, с использованием переходника на базе PL2303 и подобных. У меня в городе можно купить такой кабель для старых моделей NOKIA.

Внутри платка, которая с успехом может использоваться как USB-COM переходник.

Вот несколько фотографий готового устройства.

Обновление от 20.07.2014:

Доработал программу, теперь можно выводить на 3-ю строку загруженность памяти. А так же мелкие исправления.

Источник: http://profinances24.ru/foreks-i-birzha/6710

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}