Помогите разработать устройство на МК управления аквариумом

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Аватара пользователя
Виталий_36
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср мар 02, 2011 15:09:25
Откуда: Воронеж

Помогите разработать устройство на МК управления аквариумом

Сообщение Виталий_36 »

Здравствуйте уважаемые форумчане помогите пожалуйста.
Разрабатывается устройство на PIC18 управления аквариумом.
Устройство должно обеспечивать следующее:
1. отображать время и день недели, а также температуру воды и воздуха;
2. включать и выключать два раза в день свет и углекислый газ.
3. по измеренным температурам включать вентилятор обдува воды;
4 пока хватит

Проект реализуется пока на:
1. PIC18F452
2. DS1307
3. DS18B20
4. WH1602D-NGG-CT

Программно на :
1.MPLAB_8.30
2. HI-TECH_PICC_9.50_PL2
3. Proteus_7.8_RUS

То что у же сделано я буду выкладывать.

А теперь вопросы
1. Индикатор WH1602D-NGG-CT в протеусе работает а реально не запускается(рабочий 100%)
Почему то при чтении флага занятости адрес ячейки увеличивается на 1(хотя не должен)

2. Помогите составить меню
Программа должна влетать в подпрограмму "MENY" (МЕНЮ) при нажатии любой кнопки, за счет прерывания от изменения логического уровня наRB4-7 (такая возможность есть в PIC18)
В подпрограмме меню должно устанавливаться
1. время и день недели
2. время включения и выключения света? CO2
3 температура при которой включается вентилятор (пока ВСЁ).
Вложения
AQUARIUM PROTEUS.rar
(17.89 КБ) 171 скачивание
AQUARIUM.rar
(101.59 КБ) 184 скачивания
Реклама
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите разработать устройство на МК управления аквариу

Сообщение igor-x »

а подскажите - зачем разрабатывать это контроллер?
если только потренироваться в программировании
все уже разработано давно
http://www.aquaforum.ua/showthread.php?t=68408
Реклама
Аватара пользователя
Виталий_36
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср мар 02, 2011 15:09:25
Откуда: Воронеж

Re: Помогите разработать устройство на МК управления аквариу

Сообщение Виталий_36 »

Разных проектов пруд пруди, хочется свой (да по тренироваться), помогите с меню.
kolobok0
Грызет канифоль
Сообщения: 296
Зарегистрирован: Ср дек 30, 2009 09:55:39

Re: Помогите разработать устройство на МК управления аквариу

Сообщение kolobok0 »

Виталий_36 писал(а):...должна влетать в подпрограмму..при нажатии любой кнопки, за счет прерывания от изменения логического уровня наRB4-7...должно устанавливаться...помогите с меню.
с логикой не всё в порядке у Вас
1) в Ваших рассуждениях нет логики фильтрации дребезга контактов.
2) при взгляде на меню Вы видите только локальную задачу. Представте себе, что завтра Вам понадобится перефигачить уровни меню, его наполнения, последовательность, названия и прочее. Если жёстко завязываться на нынешнюю структуру - то будет большая переделка в дальнейшем.

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

я написал рыбу которая побудит Вас мыслить (сильно надеюсь) :)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите разработать устройство на МК управления аквариу

Сообщение BOB51 »

18F452... староват однако, если только не необходимость в 40-pinовом варианте... :roll:
На асме помудрил бы....(но в mplab8.90 как минимум) 8)
Реклама
Аватара пользователя
Виталий_36
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср мар 02, 2011 15:09:25
Откуда: Воронеж

Re: Помогите разработать устройство на МК управления аквариу

Сообщение Виталий_36 »

BOB51 писал(а):18F452... староват однако, если только не необходимость в 40-pinовом варианте... :roll:
На асме помудрил бы....(но в mplab8.90 как минимум) 8)
Да есть необходимость в 40 ног, т.к. далее будут добавляться функции
Подскажите где можно почитать любую инфу. по составлению меню, можно и без прерывания, а просто по опросу RB4, в основном цикле программы.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Помогите разработать устройство на МК управления аквариу

Сообщение BOB51 »

А зачем так много - можно использовать какую-нибудь внутрисхемную шинку и сажать на нее МК расширения функционала...
Насчет менюшек...
Табличные приемчики...
Косвенная база+смещение для поиска вектора входа или указателя вектора входа в обработчик. Какая-то часть адреса из байт (или таблиц) должна находится в ОЗУ для возможности модификации исполняемого фрагмента.
В случае работы с МК имеющими совмещенное пространство памяти программ и данных (Z80, MCS51) подстановка модифицированных значений производится непосредственно в области таблиц в памяти программ, в случае с PIC18 удобно использовать возможности, связанные с indf0-indf2 (табличные заморочки в областях ОЗУ) :roll:
Кстати... PIC 18F2520 имеет и расширенный до 40 лап вариант - PIC18F4520...
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Помогите разработать устройство на МК управления аквариу

Сообщение Alexeyslav »

Не стоит так морочится с этим меню... каждое подменю реализуется своей подпрограммой - в каждой из них предусмотрен выход и вызов других подменю либо непосредственно редактирование нужной величины. Для каждой величины - своя отдельная подпрограмма, их можно копировать шаблонами друг с друга и т.п. но работать они должны независимо. Итого у вас будет два вида подпрограмм - подменю(умеет только выйти из подпрограммы и выбрать из определенного жестко заданного перечня других подпрограмм) и редактор величины. Подпрограммы эти не имеют никаких параметров! Каждая подпрограмма умеет реализовать только свое подменю или редактировать конкретный параметр, ничего больше. Будет довольно просто разрабатывать и отлаживать такие подпрограммки и строить меню любого уровня вложенности. Делать что-то более универсальное в данном случае - просто трата времени.
Индикатор WH1602D-NGG-CT в протеусе работает а реально не запускается(рабочий 100%)
Плюнь на этот флаг занятости, простые задержки по 100мкс вполне достаточно будет, и на один провод шлейфа к индикатору меньше.

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

Вернуться в «Разные вопросы по МК»