Последние комментарии

Работа с внутренней памятью EEPROM

Все микроконтроллеры семейства Mega имеют в своем составе энергонезависимую память (EEPROM память). Объем этой памяти колеблется от 512 байт в моделях ATmega8x до 4 Кбайт в старших моделях. EEPROM память расположена в своем адресном пространстве и так же, как и ОЗУ, организована линейно. Для работы с EEPROM памятью используются три регистра ввода/вывода: регистр адреса, регистр данных и регистр управления.

Регистр адреса

Регистр адреса EEPROM памяти EEAR (EEPROM Address Register) физически размещается в двух РВВ EEARH:EEARL, расположенных по
адресам $1F ($3F) и $1E ($3E) соответственно. В этот регистр загружается адрес ячейки, к которой будет производиться обращение. Регистр адреса доступен как для записи, так и для чтения. При этом в регистре EEARH задействуются только младшие разряды (количество задействованных разрядов зависит от объема EEPROM памяти). Незадействованные разряды регистра EEARH доступны только для чтения и содержат «0».

Регистр данных

Регистр данных EEPROM памяти EEDR (EEPROM Data Register) расположен по адресу $1D ($3D). При записи в этот регистр загружаются данные, которые должны быть помещены в EEPROM, а при чтении в этот регистр помещаются данные, считанные из EEPROM.

Регистр управления

Регистр управления EEPROM памяти EECR (EEPROM Control Register) расположен по адресу $1C ($3C). Этот регистр используется для
управления доступом к EEPROM памяти. Его описание показано ниже в таблице:

Разряд Название Описание
7..4 - не используются, читаются как "0"
3 EERIE Разрешение прерывания от EEPROM. Этот разряд управляет генерацией прерывания, возникающего при завершении цикла записи в EEPROM. Если этот разряд установлен в «1», прерывания разрешены (если флаг I регистра
SREG также установлен в «1»). При сброшенном разряде EEWE (см. далее в
таблице) прерывание генерируется постоянно
2 EEMWE Управление разрешением записи в EEPROM. Состояние этого разряда определяет функционирование флага разрешения записи EEWE. Если данный разряд установлен в «1», то при записи в разряд EEWE «1» происходит запись данных в EEPROM. В противном случае установка EEWE в «1» не производит никакого эффекта. После программной установки разряд EEMWE сбрасывается аппаратно через
4 машинных цикла
1 EEWE Разрешение записи в EEPROM. При установке этого разряда в «1» происходит запись данных в EEPROM (если EEMWE равен «1»)
0 EERE Разрешение чтения из EEPROM. После установки этого разряда в «1» выполняется чтение данных из EEPROM. По окончании чтения этот разряд сбрасывается аппаратно

Для записи одного байта в EEPROM необходимо:

1. Дождаться готовности EEPROM к записи данных (ждать пока не сбросится флаг EEWE регистра EECR).

2. Дождаться завершения записи во FLASH память программ (ждать пока не сбросится флаг SPMEN регистра SPMCR).

3. Загрузить байт данных в регистр EEDR, а требуемый адрес — в регистр EEAR (при необходимости).

4. Установить в «1» флаг EEMWE регистра EECR.

5. Записать в разряд EEWE регистра EECR лог. «1» в течение 4-х машинных циклов. После установки этого разряда процессор
пропускает 2 машинных цикла перед выполнением следующей инструкции.

Для чтения одного байта из EEPROM необходимо:

1. Проконтролировать состояние флага EEWE. Дело в том, что пока выполняется операция записи в EEPROM память (флаг EEWE установлен), нельзя выполнять ни чтения EEPROM памяти, ни изменения регистра адреса.

2. Загрузить требуемый адрес в регистр EEAR.

3. Установить в «1» разряд EERE регистра EECR.

Когда запрошенные данные будут помещены в регистр данных EEDR, произойдет аппаратный сброс этого разряда. Однако следить за состоянием разряда EERE для определения момента завершения операции чтения не требуется, т. к. операция чтения из EEPROM всегда выполняется за один машинный цикл. Кроме того, после установки разряда EERE в «1» процессор пропускает 4 машинных цикла перед началом выполнения следующей инструкции.

В среде AVR Studio GCC есть стандартная библиотека для работы с EEPROM которая включается подключением файла <avr/eeprom.h>. Основными функциями являются eeprom_read_byte(), eeprom_write_byte(), eeprom_read_word(), eeprom_write_word(). Для примера напишем программу мини-счетчика от 0 до 9, где при нажатии на одну кнопку будет добавляться значение, а на другую кнопку будет сохраняться это значение в памяти. Микроконтроллер Atmega8 работает от внутреннего тактового генератора частотой 8МГц. Одноразрядный семисегментный индикатор с общим анодом через токоограничительные резисторы R1-R7 подключается к порту В, общий анод к плюсу питания. Схема показана ниже:

Работа с внутренней памятью EEPROM

Для начала подключаем необходимые для работы библиотеки, в том числе EEPROM. Определяем переменные. Переменная "s" хранит значение для вывода на индикатор, при нажатии на кнопку SB1 это значение увеличивается на единицу, но не больше 10. Переменная eeprom_var будет взаимодействовать с EEPROM. При включении питания читается EEPROM, считанные данные присваиваются переменной "s", исходя из этого на индикатор выводится определенная цифра. При нажатии на SB2 данные из переменной "s" записываютя в EEPROM, при этом индикатор мигнет один раз.

#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>

#define d0 ~(0x3F) // 0
#define d1 ~(0x06) // 1
#define d2 ~(0x5B) // 2
#define d3 ~(0x4F) // 3
#define d4 ~(0x66) // 4
#define d5 ~(0x6D) // 5
#define d6 ~(0x7D) // 6
#define d7 ~(0x07) // 7
#define d8 ~(0x7F) // 8
#define d9 ~(0x6F) // 9

unsigned char s;
unsigned char eeprom_var EEMEM; // определяем переменную в EEPROM

int main (void)
{
DDRB = 0xFF; // Порт В на выход
PORTB = 0xFF;
DDRD = 0x00; // Порт D на вход
PORTD = 0xFF; // Включаем подтагивающие резисторы

s = eeprom_read_byte(&eeprom_var); // считываем байт из EEPROM и помещаем его в "s"
 
while(1)
{          	    
if((PIND&(1 << PD0)) == 0) // если кнопка SB1 нажата
{   	   	
while((PIND&(1 << PD0)) == 0){} // ждем отпускания кнопки
s++;                          // увеличиваем "s" на единицу
_delay_ms(200);
}

if(s == 10) // Когда дойдет до 10 обнуляем "s"
{
s = 0;
}

if((PIND&(1 << PD1)) == 0) // если кнопка SB2 нажата
{   	   	
while((PIND&(1 << PD1)) == 0){} // ждем отпускания кнопки
DDRB = 0xFF;                  // мигаем индикатором
_delay_ms(200);
DDRB = 0x00;
_delay_ms(200);
DDRB = 0xFF; 
eeprom_write_byte(&eeprom_var, s); // записываем "s" в EEPROM   
_delay_ms(200);
}
		
if(s==0) // Выводим цифры на индикатор
PORTB = d0;
if(s==1)
PORTB = d1;
if(s==2)
PORTB = d2;
if(s==3)
PORTB = d3;
if(s==4)
PORTB = d4;
if(s==5)
PORTB = d5;
if(s==6)
PORTB = d6;
if(s==7)
PORTB = d7;
if(s==8)
PORTB = d8;
if(s==9)
PORTB = d9;

}
}

Метки: EEPROM

Печать E-mail

Комментарии  

0 #1 Макс 02.05.2013 21:43
Может я что-то путаю,но если у Вас индикатор с ОА, то достаточно одного резистора на линии 5в.Зачем ставить токоограничител ьные резисторы после элемента, который они должны защищать от большого тока??Объясните,пожалуйста.
P.S.Большое спасибо за Вашу работу!Я многому научился читая Ваши статьи. :-)
Сообщить модератору
0 #2 AntonChip 02.05.2013 22:15
Цитирую Макс:
Может я что-то путаю,но если у Вас индикатор с ОА, то достаточно одного резистора на линии 5в.Зачем ставить токоограничительные резисторы после элемента, который они должны защищать от большого тока??

Просто представь, что будет если замкнет один сегмент индикатора при такой и при другой схеме подключения резистора.
Сообщить модератору
0 #3 Макс 02.05.2013 23:25
Цитирую admin:

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

Я так и знал,что есть какая-то причина такого схемного решения. Спасибо за ответ!
Сообщить модератору
0 #4 gydok 14.05.2013 11:51
А как записать в eeprom двумерный массив?
Сообщить модератору
0 #5 AntonChip 15.05.2013 11:16
Цитирую gydok:
А как записать в eeprom двумерный массив?

Код:
#include <avr/eeprom.h> // Подключаем библиотеку

EEMEM unsigned char colors[2][3]={{1, 2, 3}, // Объявляем массив в EEPROM
{4, 5, 6}};

eeprom_write_byte(&colors[0][0], 1); // Запись элементов массива в EEPROM
eeprom_write_byte(&colors[0][1], 2);
eeprom_write_byte(&colors[0][2], 3);
eeprom_write_byte(&colors[1][0], 4);
eeprom_write_byte(&colors[1][1], 5);
eeprom_write_byte(&colors[1][2], 6);

unsigned char temp;
temp = eeprom_read_byte(&colors[1][0]); // Извлекаем из EEPROM элемент массива, 2 строка([1]), 1 столбец([0]), т.е. цифру 4
Сообщить модератору
0 #6 gydok 21.05.2013 13:07
Спасибо! А возможно ли записать и прочитать сразу весь двумерный массив?
Сообщить модератору
0 #7 Дмитрий 02.06.2013 15:32
мм... столько вопросов. Даже не знаю., с чего начать. (пытаюсь поработать с Тинькой-13). Достиг определенных успехов. Настала уже задача сохранения данных в ПЗУ.
Вопросы...
1. У меня КВАвр, не воспринимает вот это
#include . Смотрел в библиотеках *.h - такого файла вообще нет.
2. Уже месяц бьюсь над простой задачей записи в ип-ром. Уже наизусть выучил все статьи.. Вопрос. Почему?.. в дата-щите одно (надо дождаться. надо записать флаги. потом только запись), а народ как-то все упрощает и пишет по другому. eeprom_write_by te(&eeprom_var, s);
хотя до этого должно было произойти куча действий. Я уже не говорю про чтение из ип-рома.
Уже исчерпал все поисковые ресурсы... результат "0++".(ЭТА статья единственная, которая примером пытается ХОТЬ ЧТО_ТО объяснить) У Атмел ахриненный подход в дата щите. Сравнение с авто будет такое: сцепление включить- скорость выбрать - поехать. А ПОДРОБНЕЕ МОЖНО объяснить!!!!!? ???
Сообщить модератору
0 #8 Дмитрий 02.06.2013 15:33
Код: #include <avr/eeprom.h>
Сообщить модератору
0 #9 AntonChip 02.06.2013 18:18
Дмитрий, этот пример написан для AVRStudio+WINAV R, в CVAVR немного другой синтаксис языка и естественно нет этой библиотеки EEPROM. По CVAVR есть книга Лебедева, может там что есть полезное.
Сообщить модератору
0 #10 JoJo 22.07.2013 11:18
Как это статей нет? На easyelectronics есть, на chipenable есть.
chipenable.ru/.../...
Сообщить модератору
0 #11 Quzbas 24.11.2013 19:32
А почему перед переменной стоит такой знак --> & и почему нельзя определить переменную как обычно,а не в еепром и просто записывать её в еепром по определенному адресу?
Как я понял данная статья описывала как записывать байты в еепром,а пример показывает как без адресов и проверки битов регистра управления записать в епром переменные?
Сообщить модератору
0 #12 AntonChip 24.11.2013 22:38
Цитирую Quzbas:
Как я понял данная статья описывала как записывать байты в еепром,а пример показывает как без адресов и проверки битов регистра управления записать в епром переменные?

Да именно так, если есть готовое решение зачем что-то усложнять, для интереса можешь ознакомиться с файлом eeprom.h, который находится в WINAVR
Сообщить модератору
0 #13 Quzbas 25.11.2013 10:30
Цитирую admin:
Цитирую Quzbas:
Как я понял данная статья описывала как записывать байты в еепром,а пример показывает как без адресов и проверки битов регистра управления записать в епром переменные?

Да именно так, если есть готовое решение зачем что-то усложнять, для интереса можешь ознакомиться с файлом eeprom.h, который находится в WINAVR

Ознакомился,но моих знаний пока не достаточно что бы понять всю суть,что в этом файле заложена.
Сообщить модератору
+4 #14 AntonChip 25.11.2013 14:55
Я думаю с этим легче разобраться
Код:
// Чтение из EEPROM
static unsigned char eeprom_read(unsigned int address)
{
while(EECR & (1 << EEWE)); // Ждем готовности
EEAR = address; // Загружаем требуемый адрес в регистр EEAR
EECR |= (1 << EERE); // Устанавливаем в «1» разряд EERE регистра EECR
return EEDR; // Возвращаем данные из регистра данных
}

// Запись в EEPROM
static void eeprom_write(unsigned int address, unsigned char data)
{
if (EEPROM_read(address) != data) // Проверяем данные
{
while(EECR & (1 << EEWE)); // Ждем готовности
cli(); // Запрещаем прерывания
EEAR = address; // Загружаем требуемый адрес в регистр EEAR
EEDR = data; // Загружаем данные в регистр EEAR
EECR |= (1 << EEMWE); // Устанавливаем в «1» разряд EEMWE регистра EECR
EECR |= (1 << EEWE); // Устанавливаем в «1» разряд EEWE регистра EECR
sei(); // Разрешаем прерывания
}
}
Сообщить модератору
+3 #15 Quzbas 28.11.2013 11:44
Это бы в самое начало статьи вынести и в рамочку.Помогло ,спасибо.
Сообщить модератору

Избранное "Устройства на AVR"

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

Схема устройства показана на рисунке. Его основа — микроконтрол­лер AT90S1200. Линии порта В ...

Основой предлагаемого читателям устройства послужили исходные коды прошивки микроконтроллера набора NM3311 МАСТЕР КИТ. Видимо, после того как фирма ATMEL сняла с производства микропроцессор AT90S2313, руководство МАСТЕР-КИТ посчитало нецелесообразным хранить в коммерческой тайне исходные коды ...

В этой статье рассматривается схемотехническое решение, устройство и конструкция DDS генератора (генератор с прямым цифровым синтезом формы сигнала) на микроконтроллере ATmega16 фирмы Atmel. В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и ...

Еще несколько лет назад прямые цифровые синтезаторы частоты (Direct Digital Synthesizers или DDS) были диковинкой с очень ограниченной областью применения. Их широкое использование сдерживалось сложностью реализации, а также недостаточно широким диапазоном рабочих частот.

Один инструмент, который отсутствовал в моей домашней лаборатории - это фунциональный генератор. Эти приборы, как правило дорогие, а возможности купить его у меня не было. Я подумал, что стоит попробовать самому собрать этот прибор. Я нашел довольно распространенный DDS чип(прямой цифровой синтез) ...

Основная идея проекта - исследовать силу гравитации. Игрушка сделана из половины мячя для пинг-понга. По окружности светится красная точка, которая всегда остается вверху. При вращении игрушки в любом направлении, как вы хотите - красная точка всегда будет подниматься снова. Видео показано ниже:

...

“SignALL” – GSM сигнализация (далее по тексту “устройство”), предназначена для охраны помещений, таких как квартиры, дачи, гаражи и т.д. в составе мобильного телефона Siemens. Отличительной особенностью данного уcтройства является то, что оно в отличие от других подобных схем, оно является ...

Увидев несколько устройств в сети, которые управляют светодиодами в зависимости от нагрузки на процессор, я решил создать свою собственную схему, так как другие выглядят не очень совершенно. Изначально планировал чтобы девайс общался с ПК по шине USB при помощи TTL последовательного ...

Контроллер работает со светодиодными лентами RGB, которые сейчас очень популярны и ими легко декоративно выделить потолки, лестницы, зеркала и полки в ванных комнатах, кухнях и т.д. Система управления разделена на две части: контроллер, основанный на микроконтроллере ATtinny2313 и питающий/силовой ...

Этот контроллер способен управлять отдельным RGB светодиодом или светодиодной лентой используя пульт дистанционного управления стандарта RC5. Устройство построено на базе распространенных компонентов: микроконтроллер Attiny2313 фирмы Atmel, инфракрасный приемник TSOP1736, стабилизатор LM7805, кварц ...

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

Термометр является HID-устройством (Human Interface Device). Термометр собран на популярном и относительно недорогом микроконтроллере ATtiny2313 (AT90S2313), непосредственно измерением температуры занимается интегральный термометр DS18B20 (или DS18S20).

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

Появление в продаже мощных светодиодов, ...

Автономные системы охраны получили достаточно широкое распространение в нашей стране из-за простоты и дешевизны. Классическая простейшая автономка представляет из себя вандалоустойчивый ящик с сиреной, скрытно устанавливаемый тумблер или кнопку для отключения сирены и дверной магнитоконтактный ...

Это мультиметр предназначен для измерения напряжения и тока в блоках питания. Шунт от 0,05 Ома до 2 Ом должен быть включен последовательно с нагрузкой. Может питаться от измеряемого напряжения основного блока питания в пределах 12-30 Вольт.

  • "Бегущий огонь" с автореверсом

    Предлагаемое ...

  • 8-ми канальная система инфракрасного дистанционного управления
    8-ми канальная система инфракрасного ...

    Основой ...

  • DDS генератор на ATmega16
    DDS генератор на ATmega16

    В этой статье ...

  • DDS генератор на Atmega48
    DDS генератор на Atmega48

    Еще несколько лет ...

  • DDS генератор сигналов на AT90USB162 и AD9833 управляемый по USB
    DDS генератор сигналов на AT90USB162 и AD9833 ...

    Один инструмент, ...

  • Gravitron
    Gravitron

    Основная идея ...

  • GSM сигнализация + Touch Memory на Attiny2313
    GSM сигнализация + Touch Memory на Attiny2313

    “SignALL” – GSM ...

  • RGB индикатор загрузки процессора компьютера на Attiny45
    RGB индикатор загрузки процессора компьютера на ...

    Увидев несколько ...

  • RGB контроллер на Attiny2313 с управлением на энкодере
    RGB контроллер на Attiny2313 с управлением на ...

    Контроллер работает ...

  • RGB контроллер с дистанционным управлением на Attiny2313
    RGB контроллер с дистанционным управлением на ...

    Этот контроллер ...

  • RGB ночник на Attiny2313
    RGB ночник на Attiny2313

    Ночник сделан из ...

  • USB-термометр на ATtiny2313
    USB-термометр на ATtiny2313

    Термометр является ...

  • Автомобильный стробоскоп
    Автомобильный стробоскоп

    С помощью ...

  • Автономная охранная система на базе Touch Memory
    Автономная охранная система на базе Touch Memory

    Автономные системы ...

  • АмперВольтметр на Atmega8
    АмперВольтметр на Atmega8

    Это мультиметр ...

Избранное "Устройства на MICROCHIP"

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

С целью упрощения индикация и установка производится ...


Этот проект представляет собой 3-х канальную инфракрасную (ИК) дистанционную систему управления. Эта система работает на 12-bit  SIRC - сигналах, которые используются в пультах дистанционного управления фирмы Sony.


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


В этой статье представлена схема 4-х разрядного счетчика на PIC16F88 который имеет следующие характеристики:
- прямой и обратный счет
- сброс результата счета
- свободный счет или удержание при достижении заданного значения
- заданное количество разрядов
- сигнал на выходе контроллера при ...

Терморегулятор CH-1000 предназначены для управления системами регулирования температуры в пределах от - (минус) 50 до + 120 °С. Регулятор может использоваться как в системах отопления, так и в системах охлаждения с управлением компрессором. Регуляторы выпускаются в без корпусном исполнении ...

Описываемый ниже прибор позволяет в широких пределах измерять частоты электрических колебаний, а также ёмкость и индуктивность электронных компонентов с высокой точностью. Расширен предел измерения ёмкости до 10000мкФ.  Так же имеется встроенный генератор фиксированных частот до 1МГц.

Устройство предназначено для измерения малых сопротивлений, индуктивности, емкости и ЭПС конденсаторов. Функционально, схему можно разбить на 8 основных модулей:
- L/C генератор
- Блок источников стабильного тока (50mA/5mA/0.5mA)
- Блок, отвечающий за разряд испытуемого конденсатора
- Блок ...

Это проект полноцветного светодиодного индикатора уровня, который управляется по USB с компьютера на Windows 7 или Vista. Проект преследует несколько целей:

Во-первых, он показывает, как читать аудиоинформацию от машины на Windows и передавать эти данные через USB к устройству.
Во-вторых, он ...

Этот проект представляет собой RGB контроллер, который может быть настроен через соединение USB. Цвет подключенных светодиодов (общий анод) зависит от выбранного режима работы:

- Медленное изменение цвета (около 40 минут);
- Быстрое изменение цвета (около 2 минут);
- Изменение цвета по температуре ...

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

В этой статье мы ...

Power Pic RGB с дистанционным инфракрасным управлением это устройство, которое генерирует цвета с использованием RGB светодиода и может управляться с помощью любого инфракрасного пульта дистанционного управления протокола Sony SIRC.

Эта третья версия проекта Power Pic RGB, цель которой управлять ...

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

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

24 светодиода, расположенные по кругу создают несколько световых эффектов. Управляет всем микроконтроллер PIC16F628. Скорость перемигивания светодиодов можно изменить путем смены кварца на разные частоты. Схема устройства представлена ниже. Также можно посмотреть видео работы автомата.

Предлагаемое автоматическое зарядное устройство (ЗУ) предназначено для зарядки батареи аккумуляторов номиналь­ным напряжением 12 В и емкостью 1 ...10 А-ч, но при небольшой доработке его можно применить для зарядки аккумуляторных батарей с другими напряжением и емкостью.

В ЗУ применен ...

  • 0-9999 секундный таймер на PIC12F683
    0-9999 секундный таймер на PIC12F683

    Таймер ...

  • 3-х канальная система инфракрасного дистанционного управления на PIC12F629
    3-х канальная система инфракрасного ...

    Этот проект ...

  • 4-канальный логический анализатор на PIC микроконтроллере
    4-канальный логический анализатор на PIC ...

    Часто при ...

  • 4-х разрядный счетчик импульсов на PIC16F88
    4-х разрядный счетчик импульсов на PIC16F88

    В этой статье ...

  • CH-1000 - терморегулятор с датчиком температуры DS18B20
    CH-1000 - терморегулятор с датчиком температуры ...

    Терморегулятор ...

  • FLC– метр/генератор на PIC16F628
    FLC– метр/генератор на PIC16F628

    Описываемый ниже ...

  • LCF - метр PIC18F2520+Nokia 3310LCD
    LCF - метр PIC18F2520+Nokia 3310LCD

    Устройство ...

  • RGB индикатор уровня на PIC18F2550
    RGB индикатор уровня на PIC18F2550

    Это проект ...

  • RGB контроллер с USB интерфейсом на PIC18F2550
    RGB контроллер с USB интерфейсом на PIC18F2550

    Этот проект ...

  • RGB контроллер с дистанционным управлением на PIC12F683
    RGB контроллер с дистанционным управлением на ...

    Все активнее ...

  • RGB контроллер с ИК ДУ на PIC12F629/675/683
    RGB контроллер с ИК ДУ на PIC12F629/675/683

    Power Pic RGB с ...

  • RGB светильник на PIC12F629
    RGB светильник на PIC12F629

    Светодиодные RGB - ...

  • RGB светильник на PIC12F675
    RGB светильник на PIC12F675

    В устройстве ...

  • Автомат световых эффектов на PIC16F628
    Автомат световых эффектов на PIC16F628

    24 светодиода, ...

  • Автоматическое зарядное устройство для АКБ 1-10 А-ч
    Автоматическое зарядное устройство для АКБ 1-10 ...

    Предлагаемое ...

Авторизация