Speed Fighter Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 Здарова, инженеры. Не подсобите студню с заданием? Задание, если кому интересно: Цитата Разработать программу для управления устройством на базе PIC18, включающим две кнопки и единичный индикатор на светодиоде, подключенный непосредственно к микроконтроллеру. Кнопка 1 включает светодиод (выдача низкого уровня на вывод микроконтроллера), кнопка 2 - выключает. Срабатывание кнопок по отпусканию, предусмотреть обработку дребезга. Я подчитнул некоторую теорию, про индикацию, матричную клавиатуру и её опрос. Но вот возникли след. вопросы/трудности: 1. В случае использования только двух кнопок, целесообразно ли подключать кнопку непосредственно к выводу микроконтроллера? Насколько сильно это упростит решение задачи? 2. Можно ли где-то посмотреть пример реализации таких клавиатур именно на PIC18? (Уж очень у меня не хватает практики по программированию устройств, всегда на уровне любителя работал на крестах и ему подобных языках для решения мелких проблем и забав) 3. Можно ли где-то смоделировать моё творение, т.е. посмотреть работоспособность? (MPLAB, proteus, xlinx) 4. На чем в данном случае рациональнее "кодить" - язык ассемблера или сишка? Есть некоторый алгоритм для обработки дребезка контактов: https://pp.userapi.com/c840123/v840123038/23a0/IjXofwjEmuc.jpg Есть некоторая схемка, которую я в инете откопал: https://pp.userapi.com/c840123/v840123038/23a7/-rD4tgCfvLs.jpg Так же нашел небольшой код на просторах интернета (увы, он для AVR) : Скрытый текст #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD = 0x00; // Порт D вход PORTD = 0xFF; // Подключаем подтягивающие резисторы DDRB = 0xFF; // Порт B выход PORTB = 0x00; // Лог. 0 на выходе while(1) { while ((PIND&(1 << PD0)) == 1){} // Ждем пока на выводе PDO лог. 1 _delay_ms(200); // Задержка 200мс if ((PINB&(1 << PB0)) == 0) // Если на выводе PB0 лог. 0 { PORTB |= (1 << PB0); // Лог. 1 на выводе PB0 } else { PORTB &= ~(1 << PB0); // Лог. 0 на выводе PB0 } while ((PIND&(1 << PD0)) == 0){} // Ждем пока на выводе PDO лог. 0 _delay_ms(200); // Задержка 200мс } } Благодарю за каждый пендель в нужном направлении, тема-то хорошая. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 1. а куда вы ее еще можете подключить? 2. каких клавиатур??? две кнопки = два входа МК , половина тем в соответствующем разделе = жевание как нажать кнопку 3. мплаб, протез 4. знаете архитектуру - без разницы, на сях быстрее 5. алгоритм овно... 6. что мешает переделать для пик? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
KRAB Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 22 минуты назад, Speed Fighter сказал: пендель в нужном направлении это раздел Работа - там 23 минуты назад, Speed Fighter сказал: инженеры все сделают 22 минуты назад, Speed Fighter сказал: студню , который просрал лекции ... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Speed Fighter Опубликовано 10 мая, 2017 Автор Поделиться Опубликовано 10 мая, 2017 @KRAB , да не, ошибка, я все лекции посетил. Проблема лишь в том, что мне тяжело усваивать материал без практического примера (я не говорю о том, что мне нужно именно ЭТО в качестве примера). Мне, например, в универе информатику преподавали (С++), так я тупо сам учил, так как я не воспринимал код, написанный с бумажки мелом на мокрой доске. А когда сам взял, прочитал статью, вырезку из книжки с примером, сам что-то сделал - то тут вот уже понимание пришло. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 10 мая, 2017 Поделиться Опубликовано 10 мая, 2017 1 час назад, Speed Fighter сказал: 2. Можно ли где-то посмотреть пример реализации таких клавиатур именно на PIC18? это примерно тоже самое, как просить азбуку для 6го класса все примеры для чайников описаны на пик16 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
солар Опубликовано 11 мая, 2017 Поделиться Опубликовано 11 мая, 2017 (изменено) Решение: Скрытый текст ;программа для управления устройством на базе PIC18, ;включающая две кнопки и единичный индикатор на светодиоде, ;подключенный непосредственно к микроконтроллеру. ;Кнопка 1 включает светодиод ;(выдача низкого уровня на вывод микроконтроллера), ;кнопка 2 - выключает. ;Срабатывание кнопок по отпусканию, ;предусмотрена обработка дребезга. ;кнопка 1 - RA1 ;кнопка 2 - RA0 ;катод светодиода - RB7, анод светодиода к +5в #include <p18f1230.inc> ;подключаем файл определений мк reg1 equ 0x00 ;регистр для временнОй задержки reg2 equ 0x01 ;регистр для временнОй задержки button equ 0x02 ;состояние кнопок ;бит 0 - текущее состояние кнопки 2 ;бит 1 - текущее состояние кнопки 1 ;бит 2 - предыдущее состояние кнопки 2 ;бит 3 - предыдущее состояние кнопки 1 org 0 ;начальный адрес программы clrf INTCON ;запрет всех прерываний ;инициализируем порты clrf PORTA ; Initialize PORTA by clearing output data latches clrf LATA ; Alternate method to clear output data latches movlw 03h ; Configure A/D movwf ADCON1 ; for digital inputs movlw 00h ; Configure comparators movwf CMCON ; for digital input movlw 0FFh ; Value used to initialize data direction movwf TRISA ; Set RA<7..0> as inputs bsf PORTB,7 bcf TRISB,7 ; Set RB7 as outputs ; ;Основной цикл ; loop ;задержка 10мсек при тактовой 4МГц ;рассчитано по http://www.labkit.ru/userfiles/file/soft/profit/Pause_ver1.2.rar ;delay = 10'000 machine cycles movlw .251 movwf reg1 movlw .13 movwf reg2 wr decfsz reg1, F goto wr decfsz reg2, F goto wr nop nop ;считываем кнопки rlcf button ;предыдущее состояние сдвигаем в биты 3,2 rlcf button movlw 0x0C ;оставляем биты 3,2 andwf button,f movf PORTA,w ;текущее состояние кнопок andlw 0x03 ;оставляем биты 1,0 iorwf button,f;заносим в память ;проверяем состояние кнопок movlw 0x07 ;маска для кнопки 1 cpfseq button ;если равно, то включаем светодиод goto not_1 bcf PORTB,7 goto loop not_1 movlw 0x0B ;маска для кнопки 2 cpfseq button ;если равно, то выключаем светодиод goto loop bsf PORTB,7 goto loop end 1,5 часа работы. Рассчёт 450р/ч. Изменено 11 мая, 2017 пользователем солар 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 11 мая, 2017 Поделиться Опубликовано 11 мая, 2017 10 часов назад, солар сказал: Решение: контрольный вАпрос препода "Почему это не будет работать в железе" и два бала студню 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
солар Опубликовано 12 мая, 2017 Поделиться Опубликовано 12 мая, 2017 (изменено) Задание В 10.05.2017 в 22:43, Speed Fighter сказал: Разработать программу , а не собрать в железе (ах уж эти банальные преподские вопросы про резистор в цепи светодиода... Хорошо, пусть питается от 3в... Хорошо, поставим резистор. Посчитать? Не вопрос. (Uпит - сколько_там_падает_по_даташиту)/сколько_там_ток_по_даташиту). Шар на стороне препода. Изменено 12 мая, 2017 пользователем солар 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 12 мая, 2017 Поделиться Опубликовано 12 мая, 2017 мне кажется в коде или в железе чего-то не хватает или нет? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
солар Опубликовано 12 мая, 2017 Поделиться Опубликовано 12 мая, 2017 Походу студень ушел с отметкой в зачетке, а препод говорит сам с собой. 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.