Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Закрытая тема
Опции темы
Непрочитано 08.12.2012, 03:38   #41
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,638
Сказал спасибо: 73
Сказали Спасибо 1,796 раз(а) в 648 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от snevar Посмотреть сообщение
Вот так?
А если через клавиатуру... Все-таки наверно менять много придется. (Красным) Или же как? Эти вот переключатели прямо два можно оставить? Хотя вроде принцип опроса тот же...
Да, все правильно, можно либо так, либо так.
Просто чем хорош вариант с клавиатурой - эти контакты будут опрашиваться вместе с остальными клавишами. Поэтому не придется делать отдельный опрос отдельного порта. Можно будет читать состояние этих контактов из любого места программы.

А, еще небольшая мелочь - R5 и R6 переправьте на 1к.
Реклама:
RECTO вне форума  
Непрочитано 08.12.2012, 03:50   #42
snevar
Временная регистрация
 
Регистрация: 12.11.2010
Сообщений: 61
Сказал спасибо: 11
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
snevar на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от RECTO Посмотреть сообщение
Просто чем хорош вариант с клавиатурой - эти контакты будут опрашиваться вместе с остальными клавишами. Поэтому не придется делать отдельный опрос отдельного порта. Можно будет читать состояние этих контактов из любого места программы.
Вот это очень ценно... Думаю оставлю вариант с клавиатурой...
Но вот только когда осуществляется остановка двигателя, и когда становится известно, что жалюзи открыты\закрыты?... Т.е. опрос клавиатуры, если замкнут - размыкаем, крутим двигатель.. А дальше когда мы узнаем, что открыли закрыли?.

Сообщение от RECTO Посмотреть сообщение
А, еще небольшая мелочь - R5 и R6 переправьте на 1к.
А, ага, все понял...
snevar вне форума  
Непрочитано 08.12.2012, 04:31   #43
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,638
Сказал спасибо: 73
Сказали Спасибо 1,796 раз(а) в 648 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от snevar Посмотреть сообщение
Но вот только когда осуществляется остановка двигателя, и когда становится известно, что жалюзи открыты\закрыты?... Т.е. опрос клавиатуры, если замкнут - размыкаем, крутим двигатель.. А дальше когда мы узнаем, что открыли закрыли?.
Крутим двигатель до замыкания контактов. Замкнутый контакт означает, что механизм дошел до одного из своих крайних положений. А какое именно положение - микроконтроллер "запоминает" в своей программе.

Последний раз редактировалось RECTO; 08.12.2012 в 04:33.
RECTO вне форума  
Сказали "Спасибо" RECTO
snevar (08.12.2012)
Непрочитано 08.12.2012, 23:51   #44
snevar
Временная регистрация
 
Регистрация: 12.11.2010
Сообщений: 61
Сказал спасибо: 11
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
snevar на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от RECTO Посмотреть сообщение
Крутим двигатель до замыкания контактов. Замкнутый контакт означает, что механизм дошел до одного из своих крайних положений. А какое именно положение - микроконтроллер "запоминает" в своей программе.
Все, вроде понял. Спасибо огромное!! Буду пробовать еще раз...
snevar вне форума  
Непрочитано 09.12.2012, 00:43   #45
snevar
Временная регистрация
 
Регистрация: 12.11.2010
Сообщений: 61
Сказал спасибо: 11
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
snevar на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

RECTO
А вот смотрите.. тут вот как лавиатура опрашивается... А т.к. одна из двух новодобавленных клавиш будет всегда замкнута, не приведет ли это к неправильной работе? ТАм вроде если хоть одна клавиша не равна нулю, то вызывается set key команда...
snevar вне форума  
Непрочитано 09.12.2012, 02:11   #46
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,638
Сказал спасибо: 73
Сказали Спасибо 1,796 раз(а) в 648 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от snevar Посмотреть сообщение
т.к. одна из двух новодобавленных клавиш будет всегда замкнута, не приведет ли это к неправильной работе?
Не должно. Вы ведь ставите эти контакты на место незадействованной ранее клавиши. Значит, в программе реакции на нее никакой не предусмотрено. Но это в теории, конечно, а на практике надо разбираться. Иногда логика автора программы не поддается разумному объяснению.
RECTO вне форума  
Непрочитано 09.12.2012, 22:54   #47
snevar
Временная регистрация
 
Регистрация: 12.11.2010
Сообщений: 61
Сказал спасибо: 11
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
snevar на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от RECTO Посмотреть сообщение
Но это в теории, конечно, а на практике надо разбираться.
Ну с практикой у нас там практически никак... Лишь бы в теории выглядело убедительно...)
snevar вне форума  
Непрочитано 10.12.2012, 20:03   #48
snevar
Временная регистрация
 
Регистрация: 12.11.2010
Сообщений: 61
Сказал спасибо: 11
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
snevar на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Ну вроде схема все...
А программа:
Подраздел
Проверяем постоянно кнопку, отвечающую за открытие-закрытие, если 1,
то проверяем концевые переключатели. если s16=1 - тогда открываем(подаем 1 на RA1)
если s16 не равен 1, то закрываем(1 на RA2)
Проверяем RA0(будильник), если 1,
то проверяем концевые переключатели. если s16=1 - тогда открываем(подаем 1 на RA1)
если s16 не равен 1, то закрываем(1 на RA2)

Такой примерно алгоритм? s16 и s17 - концевые переключатели.
Call CHK_s13 (проверяем кнопку)
IORLW 1
BTFSC STATUS,z (если равно единице)
Call CHK_s16 (вызывает проверку s16)
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
MOVLW A'0010' (Так подать на RA2 единицу?)
Iorlw 1 (сравниваем с 1)
BTFSC STATUS,1 (если 1)
MOVLW A'0100' (1 на RA1)

BTFSS portA,Ra0 (проверка RA0)
IORLW 1
BTFSC STATUS.z (если равно единице)
Call CHK_s16 (вызывает проверку s16)
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
MOVLW A'0010' (Так подать на RA2 единицу?)
Iorlw 1 (сравниваем с 1)
BTFSC STATUS,z (если 1)
MOVLW A'0100' (1 на RA1)

Вобщем поробовал поглядеть по аналогии с той программой, но там за проверку всегда разные команды отвечают... И.. Через IORLW можно сравнивать только с 0?

Последний раз редактировалось snevar; 10.12.2012 в 20:06.
snevar вне форума  
Непрочитано 11.12.2012, 00:15   #49
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,638
Сказал спасибо: 73
Сказали Спасибо 1,796 раз(а) в 648 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

Сообщение от snevar Посмотреть сообщение
Проверяем постоянно кнопку, отвечающую за открытие-закрытие, если 1,
то проверяем концевые переключатели. если s16=1 - тогда открываем(подаем 1 на RA1)
если s16 не равен 1, то закрываем(1 на RA2)
Проверяем RA0(будильник), если 1,
то проверяем концевые переключатели. если s16=1 - тогда открываем(подаем 1 на RA1)
если s16 не равен 1, то закрываем(1 на RA2)
Такой примерно алгоритм? s16 и s17 - концевые переключатели.
Нет. Snevar, пожалуйста, перечитайте все то, что я Вам уже писал ранее. В частности, алгоритм работы с датчиками:
Сообщение от RECTO Посмотреть сообщение
Самый простой способ - пара концевых выключателей в крайнем открытом и крайнем закрытом положениях. Контакты соединяются параллельно. Соответственно, контроллер всегда будет видеть замкнутый контакт, но будет "помнить", в каком состоянии у него жалюзи - открыто или закрыто. Когда надо открыть или закрыть жалюзи, контроллер включает двигатель, и опрашивая порт, к которому подсоединены контакты, сначала ждет размыкания линии, а затем замыкания - это значит механизм переместился в противоположное крайнее положение, после чего останавливает двигатель.
То есть, если контакты разомкнуты, то механизм находится в движении. Если замыкается один из них - механизм дошел до одного из крайних положений.

Сообщение от snevar Посмотреть сообщение
Через IORLW можно сравнивать только с 0?
Через "IORLW 0". Да, если W=0, то после этой команды Z=1.
По программе - вообще всё не то. Я же писал уже: Вам нужно найти подпрограмму, которая отвечает за сканирование клавиатуры. Проанализировав ее, нужно найти переменные, в которые записываются текущие состояния клавиш клавиатуры. Определить бит, который отвечает за состояние клавиши S16. И в своей программе опрашивать уже этот бит.
RECTO вне форума  
Непрочитано 11.12.2012, 23:50   #50
snevar
Временная регистрация
 
Регистрация: 12.11.2010
Сообщений: 61
Сказал спасибо: 11
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
snevar на пути к лучшему
По умолчанию Re: Часы-будильник на PIC16CXX

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

Сообщение от RECTO Посмотреть сообщение
контроллер включает двигатель, и опрашивая порт, к которому подсоединены контакты, сначала ждет размыкания линии, а затем замыкания - это значит механизм переместился в противоположное крайнее положение, после чего останавливает двигатель.
Да, это я помню, но... как мы узнаем, не проверив состояние s16 и s17, подавать ли нам единица на RA1 или на RA2?

А если так? Или я просто не совсем алгоритм понимаю.. Сначала же мы в любом случае проверяем состояние концевых...
MOVLW s13 (проверяем кнопку)
XORWF NEW_KEY,W
BTFSC STATUS,z (если нажата)
Call CHK_s16 (вызывает проверку s16)
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
MOVLW A'0010' (на RA2 единиц)
Iorlw 1 (сравниваем с 1)
BTFSC STATUS,1 (если 1) (или тут получается, "если не 1"?)
MOVLW A'0100' (1 на RA1)
Call CHK_s16(проверяем на замыкание)
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
Call CHK_s17
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
GOTO Call CHK_s16(вернуться к проверке s16)
GOTO SERV,A'0000'(иначе остановить двигатель)


BTFSS portA,Ra0 (проверка RA0)
IORLW 1
BTFSC STATUS.z (если равно единице)
Call CHK_s16 (вызывает проверку s16)
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
MOVLW A'0010' (на RA2 единицу)
Iorlw 1 (сравниваем с 1)
BTFSC STATUS,z (если 1)
MOVLW A'0100' (1 на RA1)
Call CHK_s16(проверяем на замыкание)
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
Call CHK_s17
Iorlw 0 (сравниваем с 0)
BTFSC STATUS,z (если 0)
GOTO Call CHK_s16(вернуться к проверке s16)
GOTO SERV,A'0000'(иначе остановить двигатель)

Я конечно представляю. каким идиотизмом это выглядит со стороны... Но ни с чем сложнее паскаля дело никогда не имел. И немного на него опираюсь алгоритм вижу примерно так... Это наверно все полный бред и ни капли не жизнеспособно?
snevar вне форума  
Закрытая тема

Закладки

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часы-будильник ninelka21pelis TTL и CMOS логика 10 22.05.2011 10:43
электромеханический будильник "Слава" alxchep Поиск схем. Делимся схемами 2 07.06.2008 13:51
[Решено] Добрый будильник dimitriy Отвлекитесь, эмбеддеры! 15 22.02.2008 08:56
часы transford Микроконтроллеры, АЦП, память и т.д 3 19.06.2007 17:23
[Решено] Часы в TV Роберт Видеотехника 8 19.10.2005 20:11


Часовой пояс GMT +4, время: 15:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot