Схемы на pic12f629 – Вариант умной кнопки на PIC12F629 или PIC12F675 — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

Устройства на микроконтроллере PIC12F629 Сборник схем прошивок - УСТРОЙСТВА НА МК - radio-bes

Если у вас вдруг возникло желание приобщиться к великому таинству программирования микроконтроллеров или даже создать свою собственную так называемую «Embedded system», но:
  1. вы не знаете, с чего начать
  2. у вас нет паяльника, программатора, коробки с радиодеталями и умения все это совместить
  3. вам лень отрываться от кресла и компьютера

то эта статья точно для вас.

Ни для кого не секрет, что современное программное обеспечение очень облегчило нелегкую жизнь инженера. Имеются тысячи программ для автоматизированного проектирования электронных схем, для моделирования их работы, в том числе и для микроконтроллерных систем. Одна из таких САПР — Proteus VSM, разработнанная компанией Labcenter Electronics(требуйте бесплатную ознакомительную версию).

Итак, для изучения микроконтроллеров нам потребуются:

  1. желание
  2. компьютер с установленным Proteus
  3. свободное время


Для того, чтобы постичь все секреты микроконтроллера, начинать изучение лучше с прочтения документации (для микроконтроллеров PIC документацию можно скачать на сайте производителя ), а программировать начать не на С, Pascal или даже Basic, а на старом добром ассемблере, что позволит понять, как же эта железяка на самом деле работает.
Что можно в первую очередь отметить в микроконтроллере семейства PIC16 с точки зрения программиста:
  1. раздельные память программ (14 бит) и память данных (8 бит)
  2. всего 35 инструкций
  3. большинство инструкций (кроме инструкций перехода и проверки условий) выполняется за 1 машинный цикл (4 такта тактового генератора)
  4. один явно выраженный регистр общего назначения – аккумулятор
  5. обращение к любой ячейке оперативной памяти как к регистру (так называемые регистровые файлы)
  6. порты ввода-вывода
  7. наличие прерываний
  8. аппаратные таймеры

Создадим простое устройство на простом микроконтроллере PIC16F84A. Для этого в Proteus найдем этот микроконтроллер в библиотеке элементов, добавим в проект и разместим его на рабочем листе.

Далее создадим файл с исходным кодом и откроем его во встроенном редакторе.

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

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

LIST p=16F84a
include "P16F84A.INC"
;---------------------------------
CBLOCK 0x0C
W_TEMP ;0x0C
STATUS_TEMP ;0x0D
FLAGS ;0x0E
COUNTER ;0x0F
ENDC
;---------------------------------
TF EQU 0x00 ;Task flag
ORG 0x00
goto START
ORG 0x04
;---------------------------------
INT movwf W_TEMP ;save W
swapf STATUS, W
movwf STATUS_TEMP ;save STATUS
btfss INTCON, T0IF
goto ENDISR
bcf INTCON, T0IF ;clear flag
bsf FLAGS, TF
ENDISR swapf STATUS_TEMP, W
movwf STATUS ;recover STATUS
swapf W_TEMP, F
swapf W_TEMP, W ;recover W
retfie
;---------------------------------

START clrf PORTA
clrf PORTB
bsf STATUS, RP0 ;Bank1
clrf TRISB ;PortB Output
movlw b'11010111'
movwf OPTION_REG ;Set Option_REG
bcf STATUS, RP0 ;Bank0
clrf TMR0
bsf INTCON, T0IE ;Enable Timer0 interrupt
bsf INTCON, GIE ;Enable interrupts
movlw 0x3D
movwf COUNTER
;---------------------------------
MAIN btfss FLAGS, TF
goto MAIN ;If TF = 0
call OUTPUT
bcf FLAGS, TF ;Clear TF
goto MAIN
;---------------------------------
OUTPUT decfsz COUNTER, F
goto NOT0
movlw 0x3C
movwf COUNTER
NOT0 movf COUNTER, W
call TAB
movwf PORTB
return
;---------------------------------
TAB addwf PCL, F
nop
retlw b'00100001' ;1
retlw b'00000001' ;2
retlw b'00100001' ;3
retlw b'00000001' ;4
retlw b'00100001' ;5
retlw b'00000001' ;6
retlw b'00100001' ;7
retlw b'00000001' ;8
retlw b'00100001' ;9
retlw b'00000001' ;10
retlw b'00100001' ;11
retlw b'00100001' ;12
retlw b'00100001' ;13
retlw b'00100001' ;14
retlw b'00100001' ;15
retlw b'00100001' ;16
retlw b'00100001' ;17
retlw b'00100001' ;18
retlw b'00100001' ;19
retlw b'00100001' ;20
retlw b'00010010' ;21
retlw b'00010010' ;22
retlw b'00010010' ;23
retlw b'00010010' ;24
retlw b'00010010' ;25
retlw b'00010010' ;26
retlw b'00010010' ;27
retlw b'00010010' ;28
retlw b'00010010' ;29
retlw b'00010010' ;30
retlw b'00010010' ;31
retlw b'00010010' ;32
retlw b'00010010' ;33
retlw b'00010010' ;34
retlw b'00010010' ;35
retlw b'00010010' ;36
retlw b'00010010' ;37
retlw b'00010010' ;38
retlw b'00010010' ;39
retlw b'00010010' ;40
retlw b'00001100' ;41
retlw b'00001000' ;42
retlw b'00001100' ;43
retlw b'00001000' ;44
retlw b'00001100' ;45
retlw b'00001000' ;46
retlw b'00001100' ;47
retlw b'00001000' ;48
retlw b'00001100' ;49
retlw b'00001000' ;50
retlw b'00001100' ;51
retlw b'00001100' ;52
retlw b'00001100' ;53
retlw b'00001100' ;54
retlw b'00001100' ;55
retlw b'00001100' ;56
retlw b'00001100' ;57
retlw b'00001100' ;58
retlw b'00001100' ;59
retlw b'00001100' ;60
;---------------------------------
END

Данная программа при всей своей простоте содержит почти все элементы, присущие и более сложным программам.

Рассмотрим структуру подробнее.

Комментарием считается строка или ее часть начинающаяся с символа «;».

Строка «LIST p=16F84a» представляет собой директиву ассемблера, предназначенную для изменения параметров компиляции и определяет тип используемого микроконтроллера (16F84a).

Директива include «P16F84A.INC», как программисты уже наверное догадались, подключает к исходному файлу файл, определяющий параметры и набор регистров специального назначения для конкретного микроконтроллера.

С помощью директивы:
CBLOCK 0x0C
W_TEMP
STATUS_TEMP
FLAGS
COUNTER
ENDC

мы размещаем в памяти данных несколько констант, начиная с адреса 0x0С, так что обратившись, например, к FLAGS, мы получим доступ к ячейке оперативной памяти с адресом 0x0E. Эти константы понадобятся нам в дальнейшем.

Директива EQU в строке «TF EQU 0x00» определяет константу TF равную числу 0x00.

Директива ORG предназначена для размещения программы по определенным адресам в памяти данных.

Исторически сложилось и закрепилось в архитектуре микроконтроллеров PIC, что по адресу 0x0000 расположен вектор сброса, а по адресу 0x0004 – вектор прерывания (то есть при сбросе, который происходит при включении контроллера с помощью специальной схемы, выполнение программы начнется с адреса 0x0000, а при возникновении прерывания произойдет переход на адрес 0x0004).

Таким образом, по адресу 0x0000 мы располагаем команду безусловного перехода на начало основной программы «goto START», а по адресу 0x0004 у нас будет подпрограмма обработки прерываний (метка INT).
Часть программы, начинающаяся с метки START, предназначена для инициализации начальных параметров, и выполняется только один раз при старте микроконтроллера. Часть программы, начинающаяся с метки MAIN, организует бесконечный цикл выполнения программы с помощью команды безусловного перехода «goto MAIN».
Программа должна заканчиваться директивой END.

Инициализация

Команда «clrf» предназначена для обнуления содержимого регистра. Командами

clrf PORTA
clrf PORTB

мы обнулим содержимое регистров, связанных с портами ввода-вывода PortA и PortB. Это необходимо, поскольку при сбросе микроконтроллера они могут получить случайные значения.
Команда «bsf» предназначена для установки определенного бита в байте регистра. Таким образом при выполнении:

bsf STATUS, RP0

в регистре STATUS бит RP0 примет значение 1. Регистр STATUS кроме того, что содержит флаги результатов арифметических операций (ноль, возникновение переноса), также отвечает за выбор банка памяти при прямой адресации. Микроконтроллер PIC16F84A содержит 2 банка памяти (начинающихся с адресов 0x00 и 0x80), специальные регистры расположены как в первом, так и во втором банке. Установив бит RP0, мы сможем обращаться ко второму банку памяти.

Во втором банке памяти нас интересует регистр TRISB, определяющий, какие выводы порта PortB являются входами, а какие выходами. Установкой с помощью команды «clrf TRISB» всех битов регистра TRISB в 0, определяем все выводы PortB как выходы.

Команда «bcf» сбрасывает определенный бит в регистре, таким образом с помощью команды

bcf STATUS, RP0

мы опять можем обращаться к банку первому банку памяти.

Теперь необходимо изменить значение регистров:

  • OPTION_REG, с помощью которого можно сконфигурировать таймер Timer0
  • INTCON, определяющий, какие прерывания разрешены в системе.

Команда «movlw b'11010111'» загружает в аккумулятор W число, с помощью которого мы устанавливаем источник для тактирования таймера от внутреннего генератора, подключаем предделитель к таймеру а также устанавливаем коэффициент предделителя (подробности смотрите в документации). Командой «movwf OPTION_REG» мы отправляем число из аккумулятора в специальный регистр OPTION_REG.

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

Для разрешения прерывания от таймера в специальном регистре INTCON необходимо установить бит T0IE, а для глобального разрешения прерываний, необходимо установить бит GIE, что и делают команды:

bsf INTCON, T0IE
bsf INTCON, GIE

Также на этапе инициализации устанавливается счетчик циклов для основной программы:

movlw 0x3D
movwf COUNTER

В результате выполнения этих двух инструкций в ячейку памяти, обозначенную как регистр COUNTER (адрес 0x0F) будет помещено число 0x3D.

На этом инициализация заканчивается и начинается основной цикл программы.

Основной цикл

В основном цикле проверяется состояние флага задания TF (бит 0x00) в регистре FLAGS (по адресу 0x0E). Если флаг установлен (значение 1) выполняется подпрограмма OUTPUT. после выполнения подпрограммы флаг задания сбрасывается (значение 0).

Проверка значения бита в регистре осуществляется с помощью команды «btfss FLAGS, TF». Команда тестирует бит в регистре, если бит установлен в «1», то следующая инструкция не выполняется, а следующие 2 цикла выполняется команда «nop» («нет операции»). Если бит имеет значение «0» то выполняется следующая по порядку инстукция.

Поскольку следующая инструкция является командой безусловного перехода на метку MAIN, то при сброшенном флаге задания TF продолжается бесконечный основной цикл программы. При установленном флаге задания выполняется команда вызова подпрограммы «call OUTPUT», таким образом текущее значение счетчика команд (PC – «Program counter») помещается в стек, и происходит переход на подпрограмму с меткой OUTPUT.

Возврат из подпрограммы происходит при выполнении инструкции «return», при этом значение адреса из вершины стека помещается в счетчик команд. Стек имеет 8 уровней, таким образом, возможна вложенность (то есть вызов одной из другой) до 8 подпрограмм (в том числе и подпрограмма обработки прерываний).

После возврата из подпрограммы флаг задания сбрасывается уже знакомой нам командой «bcf».

Подпрограмма обработки прерываний

При переполнении регистра таймера происходит переход на вектор прерывания по адресу 0x0004 и запрещаются все прерывания (автоматически сбрасывается бит GIE в регистре INTCON). Подпрограмма обработки прерывания прежде всего должна обеспечивать сохранение содержимого аккумулятора W и регистра STATUS при перед началом обработки прерывания, и восстанавливать значения W и STATUS по окончании обработки. Это необходимо для предотвращения их случайной модификации в подпрограмме обработки прерывания.

Содержимое аккумулятора просто помещается в заранее выделенную ячейку памяти командой «movwf W_TEMP».
Регистр STATUS может изменять свое значение при выполнении ряда инструкций, поэтому применяется маленькая хитрость. Содержимое регистра помещается в аккумулятор с перестановкой нибблов (полубайтов) командой «swapf STATUS, W», а оттуда помещается в заранее выделенную ячейку памяти командой «movwf STATUS_TEMP».

Восстановление содержимого W и STATUS в конце подпрограммы происходит в обратном порядке. Содержимое ячейки памяти, хранящей содержимое регистра STATUS помещается в аккумулятор с перестановкой нибблов командой «swapf STATUS_TEMP, W», и из аккумулятора переносится непосредственно в регистр STATUS командой «movwf STATUS». Для предотвращения случайной модификации регистра STATUS при помещении неизвестного заранее значения из временной ячейки памяти в аккумулятор, восстановление аккумулятора осуществляется двумя командами с перестановкой нибблов:

swapf W_TEMP, F
swapf W_TEMP, W

Такое применение команды «swapf» объясняется тем, что она не оказывает влияния на флаги в регистре STATUS.

Сам обработчик прерывания проверяет что вызвало прерывание (т.к. возможны несколько источников прерывания, если они будут разрешены) путем проверки соответствующих битов регистра INTCON. Поскольку у нас разрешено только одно прерывание, можно было бы не делать такой проверки, но тем не менее проверим бит T0IF (устанавливается при возникновении прерывания от таймера):

btfss INTCON, T0IF
goto ENDISR
bcf INTCON, T0IF
bsf FLAGS, TF

Если бит не установлен, то произойдет переход к инструкциям восстановления содержимого W и STATUS на метку ENDISR. Если бит установлен то мы его сбросим вручную командой «bcf INTCON, T0IF» и установим флаг задания командой «bsf FLAGS, TF». Далее выполнятся инструкции восстановления содержимого W и STATUS.
Выход из подпрограммы обработки прерываний происходит при выполнении инструкции «retfie». Содержимое счетчика команд восстанавливается из стека, а прерывания автоматически разрешаются путем установки бита GIE регистра INTCON в «1».

Подпрограмма OUTPUT

В данной подпрограмме выполняются все «полезные» действия, по которым мы можем судить о функционировании микроконтроллерного устройства. Нам необходимо получить на выходе вот такую функцию:

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

Подпрограмма содержит инструкции:

OUTPUT decfsz COUNTER, F
goto NOT0
movlw 0x3C
movwf COUNTER
NOT0 movf COUNTER, W
call TAB
movwf PORTB
return

Инструкция «decfsz» предназначена для организации циклов. Она декрементирует содержимое регистра COUNTER, в случае если результат не равен нулю, выполняется следующая по порядку инструкция (переходим на метку NOT0), иначе в течение 2 циклов выполняется пустая инструкция «nop», а затем в регистр COUNTER помещается начальное значение 0x3C (заметьте, т.к. декремент регистра осуществляется до использования значения этого регистра в программе, при инициализации мы задали значение на 1 большее).

Значение регистра COUNTER помещается в аккумулятор W, после чего осуществляется чтение из таблицы путем вызова подпрограммы инструкцией «call TAB». При возврате из таблицы в W содержится необходимое нам значение состояния выходов. Это значение записывается в регистр PORTB, чем осуществляется вывод сигналов из микроконтроллера. Далее происходит возврат из подпрограммы командой «return».

Таблица значений

Таблица содержит несколько сервисных инструкций и, собственно, сами 60 требующихся нам значений:
TAB addwf PCL, F
nop
retlw b'00100001' ;1
retlw b'00000001' ;2
………
retlw b'00001100' ;60

Принцип чтения из таблицы в следующем. При вызове таблицы мы поместили в W значение – номер «ячейки» таблицы. В подпрограмме происходит сложение младшего байта счетчика команд PCL и значения из W инструкцией «addwf PCL, F». Таким образом в памяти программ произойдет переход к инструкции с адресом PCL+W. В диапазоне адресов, которые могут получиться в результате, находятся непосредственно «ячейки» таблицы в виде инструкций «retlw» (например «retlw b'00100001'»), которые вызывают возврат из подпрограммы с занесением своего аргумента в W.

Таким образом, в результате возврата из таблицы, мы имеем в W требуемое значение.

Инструкция «nop» применена для выравнивания значений в таблице, т.к. таблица не вызывается при W=0.
Следует отметить необходимость контроля содержимого аккумулятора W при вызове таблиц, чтобы не произошел переход за границы программы.

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

PIC12F629 — Меандр — занимательная электроника

Сейчас очень попу­лярно освещение с помощью светодиод­ных лент. Особенно интересно примене­ние RGB-светодиодных лент, потому что это позволяет полу­чить самую разно­образную окраску освещения. Это устройство предназначено для управления RGB-светодиодной лентой или тремя свето­диодными блоками с общими анодами. Устройство обеспечивает 13 режимов работы светодиодной ленты: Выключенное состояние. Включены все светодиоды. Включены красные светодиоды. Включены зеленые светодиоды. Включены …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36423

В системах отопления частных домов (коттеджей), использующих газовые или электрические котлы, время от времени падает давление теплоносителя, вследствие чего отопление приходится выключать для поиска и устранения причины сбоя. Это может быть микропротечка теплоносителя через соединения трубопроводов и краны, автоматический сброс котлом воздуха, накопившегося в системе, остывание системы зимой в результате отключения электричества и прочее. Предлагаемое …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35519

Известно, что для регулирования переменного напряжения при различных экспериментах необходим лабораторный авто­трансформатор. Однако если его нет, можно использовать трансформатор, описанный в [1]. Для повышения оперативности и удобства работы с таким трансформатором в своё время был разработан и описан в [2] блок управления. К сожалению, он довольно сложен, поскольку построен на логических микросхе­мах малой и средней …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35321

Автор предлагает читателям свою новую конструкцию, под­ключаемую к электрооборудованию автомобиля. Она выполнена в виде малогабаритной приставки с применением микроконт­роллера PIC12F675, доступна для повторения и предназначена для управления насосом омывателя фар без дополнительной кнопки управления. У настоящее время на рынке можно купить комплекты автомобильных струйных омывателей фар (далее — ОФС) от разных производителей. Сис­тема управления этими …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/32996

Регулятор, описание которого приведено в этой статье, был разработан и изготовлен по просьбе товарища — владельца грузового автомобиля ЗиЛ 5301 («Бычок»). Необходимость переделки управления скоростью венти­лятора печки обусловлена тем, что штатная система отопле­ния этого автомобиля имеет только 2 режима отопления са­лона — средний и максимальный. Разработанный автором регулятор имеет 5 ступеней регулировки отопления, а установ­ленный …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/30096

Схемы на микроконтроллерах


Схема и конструкция самодельной паяльной станции, имеющей регулировку температуры и ЖК дисплей.

17.04.2017 Читали: 10787


Схема сборки контроллера камеры для съёмки медленно протекающих процессов - движение облаков, таяние снега, распускание цветка.

18.02.2017 Читали: 3973


Украшение для дома или сада - разноцветный неопознанный летающий объект с LED эффектами, собран на микроконтроллере.

20.12.2016 Читали: 4190


     Электронное реле на PIC16F1847 для управления нагрузкой, в том числе сетевой, в котором можно задать время включения, выключения и количество циклов.

04.07.2016 Читали: 8794


     Самодельный светодиодный контроллер для красно-сине-зелёных кристаллов LED лент или отдельных мощных диодов.

07.06.2016 Читали: 8722


     Умная светодиодная лампа для детского ночника - схема для самостоятельной сборки на микроконтроллере.

27.05.2016 Читали: 6465


     Цифровой прибор для определения основных параметров различных LED элементов, собранный на базе ATtiny84 и оснащённый экраном.

03.02.2016 Читали: 11335


     Цифровой измеритель освещённости на базе микроконтроллера Attiny-26 и светодиодных 7-сегментных индикаторов.

14.01.2016 Читали: 8478



Снижение расхода топлива в авто

Ремонт зарядного 6-12 В

Солнечная министанция

Самодельный ламповый

Фонарики Police

Генератор ВЧ и НЧ

PIC12F629 — Страница 2 — Меандр — занимательная электроника

В статье рассмотрена конструкция охранной сигнализации (фото 1) для контроля целостности 7 отдельных шлейфов с независимой индикацией и звуковой сигнализацией их целостности. Особенно­стью устройства является динамический способ оп­роса шлейфов и индикации с применением микро­контроллера, что позволило добиться высокой функциональности при достаточно простой схеме. Рассмотренная в статье 7-канальная охранная сигнализация (ОС) обеспечивает: индикацию и звуковую сигнализацию …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/28365

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/28138

Говорят, что ремонт — это стихийное бедствие. На него вечно не хватает ни денег, ни времени. Почти каждый, кто начинает ремонт, думает, как и на чем можно сэкономить. Поэтому ремонт в сво­ей квартире автор решил начать самостоятельно с переделки проводки, а для этого надо было ра­зобраться в трассировке старой внутренней про­водки. Потому и был изготовлен …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/26720

Эта поделка реализует электронную версию двух стандартных игральных костей с помощью 14 светодиодов, образующих при свечении аналог двух игральных костей и микроконтроллере PIC12F629. Как и в обычных не электронных костях, например, для игры в «нарды», выдаются два случайных и независимых значения от 1 до 6 одновременно. Расположение светодиодов стилизовано под стандартные кости.При нажатии на кнопку, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/25117

Устройство предназначено что бы автоматически включать и выключать дневной свет фар, при остановке и началу езды в автомобиле.При этом как вы видите на картинке даже, схема сопровождена дополнительно звуковым сигнализатором и индикацией. Схема устройства: Схема выполнена на недорогом микроконтроллере pic12f629. Как это работает 1.Питание 12в 2.При вкл зажигания после прохождения 6 импульсов с датчика скорости вкл ДХО 3.При вкл габаритов все переходит в штатный режим 4.При выкл габаритов …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/21248

Схемы на микроконтроллерах


   Делаем самодельный термоконтроллер на МК ATMEL90S2313.

10.11.2013 Читали: 16272


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

26.08.2013 Читали: 22723


     Устройство, представленное в этом проекте, содержит в себе функции сразу 3-х измерителей: вольтметр, термометр и часы.

31.07.2013 Читали: 28003


     Схема, печатная плата и демонстрационнй аудиофайл сирены на контроллере Pic12F629, с усилителем мощности.

23.06.2013 Читали: 27077


     Схема и видео работы светодиодной лампы "хорошего настроения" на микроконтроллере PIC12F629.

22.01.2013 Читали: 18912


     Принципиальная схема цифрового секундомера на микроконтроллере PIC16F648A и светодиодном индикаторе.

05.01.2013 Читали: 22866



Снижение расхода топлива в авто

Ремонт зарядного 6-12 В

Солнечная министанция

Самодельный ламповый

Фонарики Police

Генератор ВЧ и НЧ

PIC12F629 — Страница 3 — Меандр — занимательная электроника

Включаем питание, устр. переходит в нормальный режим, выход дублирует входную частоту. Жмём на кномку, держим около 5-ти секунд, светодиод моргнёт, отпускаем кнопку, устр. переходит в 1-ый режим. 1 режим: Устройство отключает вход, на выходе начинает возрастать частота. Нажимаем на кнопку,устр. переходит в 2-ый режим. 2 режим: Устройство останавливает возрастание частоты и останавливаеться. Частота остаёться. Нажимаем …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/3481

Копии домофонных ключей делаются с помощью компьютерной программы Burning Key и адаптера, подключаемого к компьютеру. Рис.1. Интерфейс программы Burning Key Функции и кнопки в программе:  выбрать порт – порт ПК, к которому подключен адаптер; открыть порт – включение/выключение порта; считать данные – считываются данные из ключа; записать данные – записываются данные в ключ; сравнить данные …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/2486

Таймер предназначен для управления работой вентилляции в санузле. Работает по алгоритму, изображенному на диаграмме см. Рис.1. Таймер выполнен на микороконтроллере «Microchip» PIC12F629.  Схема представлена на Рис.2, печатная плата размерами 50*60 мм Рис.3 В формате SprintLayout v 4.0 здесь. Правильно собранное и из исправных деталей устройство в наладке не нуждается! За прошивками микроконтроллера или готовыми устройствами …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/1018

  В настоящее время появилось много принципиальных схем с использованием различных микроконтроллеров, в том числе и микроконтроллеров PIC  фирмы MicroChip. Это позволило получить достаточно функциональные  устройства, несмотря на их простоту.  Но работа микроконтроллера невозможна без программы управления, которую необходимо записать. В данной статье мы рассмотрим универсальный программатор EXTRA-PIC позволяющий программировать PIC контроллеры и память EEPROM …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/950

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/879

Дистанционное включение света с пульта на PIC12f629. Схема

Особенности схемы дистанционного включения света с пульта:

  • построен на микроконтроллере PIC12F629 / PIC12F675
  • включение двух независимых источников света через пульт дистанционного управления;
  • есть возможность включать свет настенным выключателем;
  • возможность включать и выключать свет отдельными кнопками или же одной; двух минутный таймер отключения освещения.

Обучение пульта дистанционного управления ИК-коды (процедура программирования)

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

  1. Нажимаете и держите настенный выключатель SW1 в течение 11 сек, для того чтобы устройство могло перейти в режим программирования. После тех 11 секунд, индикатор LD1 начнет мигать быстро и оба канала выключится. Теперь у вас есть 11 секунд, чтобы завершить последовательность программирования.
  2. Нажмите на первую кнопку на пульте дистанционного управления, которая будет включать первый канал.
  3. Нажмите вторую кнопку на пульте дистанционного управления, которая будет использоваться для выключения первого канала.
  4. Нажмите на первую кнопку на пульте дистанционного управления, которая будет включать второй канал.
  5. Нажмите вторую кнопку на пульте дистанционного управления, которая будет использоваться для выключения второго канала.
  6. Наконец нажмите пятую кнопку, которая будет использоваться для активации / деактивации режима сна (SLEEP) 

Во время программирования пульта после каждого нажатия, светодиод будет мигать, подтверждая что ИК-команда принята. Если пульт дистанционного включения не имеет все 5 кнопок, которые можно использовать, вы можете использовать те же кнопки повторно, но это приведет к отмене некоторые особенности.

Вариант 1

Если ваш пульт имеет только две кнопки [X и Y], и если во время программирования нажмите: XXYYY, что означает, что кнопка X будет использоваться для первого канала (включение и выключение света будет происходит от одной кнопки X), и кнопка Y будет использоваться для второго канала (включение и выключение света будет происходит от одной кнопки Y). Для данного режима работы необходимо установить перемычку JP1.

Вариант 2

Если вы выберете комбинацию XXXXY, это означает, что кнопка X будет использоваться для функции включения и выключения первого канала, и кнопка Y будет использоваться для включения / выключения режима сна, при этом второй канал не используется.

Примечание. Если во время программирования вас заметить, что индикатор мигает, даже если вы не нажимать никаких кнопок на пульте ДУ, это, вероятно, потому, что вы использовали модуль приемника TSOP11xx вместо TSOP17xx. В этом случае вы, вероятно, не сможет запрограммировать устройство должным образом.

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

Так же есть возможность управлять каналами освещения и настенным выключателем SW1 (без фиксации). Одиночное нажатие включает свет и выключает свет. Быстрое двойное нажатие позволяет выбрать: только первый канал или оба канала вместе.

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

скачать файлы к статье (скачено: 806)


Источник 

Author:

Отправить ответ

avatar
  Подписаться  
Уведомление о