Здравствуйте уважаемые форумчане помогите пожалуйста.
Разрабатывается устройство на 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 температура при которой включается вентилятор (пока ВСЁ).
Помогите разработать устройство на МК управления аквариумом
- Виталий_36
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Ср мар 02, 2011 15:09:25
- Откуда: Воронеж
Помогите разработать устройство на МК управления аквариумом
- Вложения
-
- AQUARIUM PROTEUS.rar
- (17.89 КБ) 171 скачивание
-
- AQUARIUM.rar
- (101.59 КБ) 184 скачивания
- Реклама
Re: Помогите разработать устройство на МК управления аквариу
а подскажите - зачем разрабатывать это контроллер?
если только потренироваться в программировании
все уже разработано давно
http://www.aquaforum.ua/showthread.php?t=68408
если только потренироваться в программировании
все уже разработано давно
http://www.aquaforum.ua/showthread.php?t=68408
- Виталий_36
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Ср мар 02, 2011 15:09:25
- Откуда: Воронеж
Re: Помогите разработать устройство на МК управления аквариу
Разных проектов пруд пруди, хочется свой (да по тренироваться), помогите с меню.
Re: Помогите разработать устройство на МК управления аквариу
с логикой не всё в порядке у ВасВиталий_36 писал(а):...должна влетать в подпрограмму..при нажатии любой кнопки, за счет прерывания от изменения логического уровня наRB4-7...должно устанавливаться...помогите с меню.
1) в Ваших рассуждениях нет логики фильтрации дребезга контактов.
2) при взгляде на меню Вы видите только локальную задачу. Представте себе, что завтра Вам понадобится перефигачить уровни меню, его наполнения, последовательность, названия и прочее. Если жёстко завязываться на нынешнюю структуру - то будет большая переделка в дальнейшем.
отсюда имеем:
а) на обработчике прерывания(по уровню-ям пина кнопки) - обработка антидребезга.
б) после детектирования нажатия (к примеру различаем клик, дабл клик, зажимание) выставляем необходимые сигнальчики основной программе.
в) в зависимости от общей структуры упаковки программы у вас поллинг задач либо по принципу ОС переключение задач.
г) всё необходимую инфу о меню пакуете в структуры описывающие дерево меню вашей программы (типа ссылка на парент, наименование пункта меню, и т.п.). так-же где то существует динамически меняющиеся данные связанные с меню. типа: строка курсора, первая показываемая строка и т.п..
я написал рыбу которая побудит Вас мыслить (сильно надеюсь)
Re: Помогите разработать устройство на МК управления аквариу
18F452... староват однако, если только не необходимость в 40-pinовом варианте...
На асме помудрил бы....(но в mplab8.90 как минимум)
На асме помудрил бы....(но в mplab8.90 как минимум)
- Реклама
- Виталий_36
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Ср мар 02, 2011 15:09:25
- Откуда: Воронеж
Re: Помогите разработать устройство на МК управления аквариу
Да есть необходимость в 40 ног, т.к. далее будут добавляться функцииBOB51 писал(а):18F452... староват однако, если только не необходимость в 40-pinовом варианте...![]()
На асме помудрил бы....(но в mplab8.90 как минимум)
Подскажите где можно почитать любую инфу. по составлению меню, можно и без прерывания, а просто по опросу RB4, в основном цикле программы.
Re: Помогите разработать устройство на МК управления аквариу
А зачем так много - можно использовать какую-нибудь внутрисхемную шинку и сажать на нее МК расширения функционала...
Насчет менюшек...
Табличные приемчики...
Косвенная база+смещение для поиска вектора входа или указателя вектора входа в обработчик. Какая-то часть адреса из байт (или таблиц) должна находится в ОЗУ для возможности модификации исполняемого фрагмента.
В случае работы с МК имеющими совмещенное пространство памяти программ и данных (Z80, MCS51) подстановка модифицированных значений производится непосредственно в области таблиц в памяти программ, в случае с PIC18 удобно использовать возможности, связанные с indf0-indf2 (табличные заморочки в областях ОЗУ)
Кстати... PIC 18F2520 имеет и расширенный до 40 лап вариант - PIC18F4520...
Насчет менюшек...
Табличные приемчики...
Косвенная база+смещение для поиска вектора входа или указателя вектора входа в обработчик. Какая-то часть адреса из байт (или таблиц) должна находится в ОЗУ для возможности модификации исполняемого фрагмента.
В случае работы с МК имеющими совмещенное пространство памяти программ и данных (Z80, MCS51) подстановка модифицированных значений производится непосредственно в области таблиц в памяти программ, в случае с PIC18 удобно использовать возможности, связанные с indf0-indf2 (табличные заморочки в областях ОЗУ)
Кстати... PIC 18F2520 имеет и расширенный до 40 лап вариант - PIC18F4520...
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Помогите разработать устройство на МК управления аквариу
Не стоит так морочится с этим меню... каждое подменю реализуется своей подпрограммой - в каждой из них предусмотрен выход и вызов других подменю либо непосредственно редактирование нужной величины. Для каждой величины - своя отдельная подпрограмма, их можно копировать шаблонами друг с друга и т.п. но работать они должны независимо. Итого у вас будет два вида подпрограмм - подменю(умеет только выйти из подпрограммы и выбрать из определенного жестко заданного перечня других подпрограмм) и редактор величины. Подпрограммы эти не имеют никаких параметров! Каждая подпрограмма умеет реализовать только свое подменю или редактировать конкретный параметр, ничего больше. Будет довольно просто разрабатывать и отлаживать такие подпрограммки и строить меню любого уровня вложенности. Делать что-то более универсальное в данном случае - просто трата времени.
То что индикатор в реале глючит - сказывается реальность и конечная скорость изменения напряжения на выводах схемы, вполне вероятно сигнал выбора команды/данные не успевает опрокинуться до того как подаешь тактовый - особенно если ты это делаешь одновременно. Индикатор довольно инертный, сначала надо выставить все сигналы управления а потом через небольшое время(хотябы несколько NOP-ов ) выдать строб.
Плюнь на этот флаг занятости, простые задержки по 100мкс вполне достаточно будет, и на один провод шлейфа к индикатору меньше.Индикатор WH1602D-NGG-CT в протеусе работает а реально не запускается(рабочий 100%)
То что индикатор в реале глючит - сказывается реальность и конечная скорость изменения напряжения на выводах схемы, вполне вероятно сигнал выбора команды/данные не успевает опрокинуться до того как подаешь тактовый - особенно если ты это делаешь одновременно. Индикатор довольно инертный, сначала надо выставить все сигналы управления а потом через небольшое время(хотябы несколько NOP-ов ) выдать строб.


