Перейти к содержанию

Простейшая клавиатура для микроконтроллера PIC18 с индикацией


Рекомендуемые сообщения

Здарова, инженеры. 

Не подсобите студню с заданием? 

Задание, если кому интересно:

Цитата

Разработать программу для управления устройством на базе 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мс
}
}

 

Благодарю за каждый пендель в нужном направлении, тема-то хорошая. :)

 

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

1. а куда вы ее еще можете подключить?

2. каких клавиатур??? две кнопки = два входа МК ,  половина тем в соответствующем разделе = жевание как нажать кнопку

3. мплаб, протез

4. знаете архитектуру - без разницы, на сях быстрее

5. алгоритм овно...

6. что мешает переделать для пик? 

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

22 минуты назад, Speed Fighter сказал:

пендель в нужном направлении

это раздел Работа - там

 

23 минуты назад, Speed Fighter сказал:

инженеры

все сделают

 

22 минуты назад, Speed Fighter сказал:

студню

, который просрал лекции ...

Ссылка на комментарий
Поделиться на другие сайты

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

@KRAB , да не, ошибка, я все лекции посетил. Проблема лишь в том, что мне тяжело усваивать материал без практического примера (я не говорю о том, что мне нужно именно ЭТО в качестве примера). Мне, например, в универе информатику преподавали (С++), так я тупо сам учил, так как я не воспринимал код, написанный с бумажки мелом на мокрой доске. А когда сам взял, прочитал статью, вырезку из книжки с примером, сам что-то сделал - то тут вот уже понимание пришло. 

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, Speed Fighter сказал:

2. Можно ли где-то посмотреть пример реализации таких клавиатур именно на PIC18?

это примерно тоже самое, как просить азбуку для  6го класса

все примеры для чайников описаны на  пик16

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Решение:

Скрытый текст

;программа для управления устройством на базе 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р/ч.
 

cxema.JPG

Изменено пользователем солар

Я не раздаю удочки. Я продаю рыбу.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Задание

В 10.05.2017 в 22:43, Speed Fighter сказал:

Разработать программу

, а не собрать в железе (ах уж эти банальные преподские вопросы про резистор в цепи светодиода... Хорошо, пусть питается от 3в... Хорошо, поставим резистор. Посчитать? Не вопрос. (Uпит - сколько_там_падает_по_даташиту)/сколько_там_ток_по_даташиту).

Шар на стороне препода. :)

Изменено пользователем солар

Я не раздаю удочки. Я продаю рыбу.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Занятное чтиво, считай "мультиметр своими руками". Не ну а что, были же советские конструкции на кр572пв2) Прецизионные резисторы и В1-12 где-то валяются... Осталось выкрутиться с коммутацией) Чешется иногда.
    • Похоже так, не кто и не подскажет, что это за микруха... 
    • Я извиняю кто тут флудил ! ??  были удаленны другие комменты! , я не поливал не кого грязью, а если вы так считаете напишите жалобу на меня и пусть модератор мне предъявит за нарушение/ за оскорбления и флуд . И касаемо "вчера сделал" после коммента пользователя fessit вспомнил и проверил и все получилось (с ножной напутал тут диод нужен) и также комменты colorad, и Aviator88 всем спасибо. Все работает как надо чего тут выкладывать мне всего-то обычный диод и всё. А что касаемо ваших и подобных комментов это и есть флуд. Устроили охоту на инакомыслящих мол  посмел такой сякой задать вопрос  на техническом форуме о переделки платы зарядки акумов  в светодиодный драйвер какой ужас !!   Поражаюсь блин с таких придираться к словам, и при этом не зная как переделать сразу начинают парировать ошибками автора в тексте запятые, и случайно перепутанные Амперы с мА (Хотя понятно о чем идет речь, но и за это уцепились ) это любимый метод когда по делу толком  нечего сказать, а за изварат и нестандартный подход подколоть что бы ну даже не хочу писать.... А все выпадки мол эта платка не для этого.... ну что тут сказать не надо ограничивать себя мол что подумают или оно якобы не будет работать,название не то... сделал проверил работает! замечательно! да и плевать! зачем покупать, ждать если уже есть под рукой то что тебе нужно!!! и искусственно загонять себя в рамки блин отказываться использовать тпешку только потому что указанно применение для зарядки лития  инакомыслие, богохульство, бред, итд ну дело ваше я не заставляю насильно переделывать. Странно что на тех форуме это вызывает такие вопросы где казалось бы нормально: починить переделать что-то итд. Странные представление что изврат/бред, а что нет учитывая что все, и до переделки всё работало почти отлично.... с каких пор бред не понятно учитывая что все подходит, да в целом нечего дурного нет в этой доработке только польза !! И что-то тут нет подобных высказываний 2е стандарты или инквизиция проворонила  
    • На этой схеме не хватает резисторов, немного открывающих силовые транзисторы. Без них начальный самозапуск  не будет происходить. Поищи их на плате БП.  Они где-то в районе сотни кОм между базой и коллектором.  
    • Может у нас разные были, либо палёный, не будем спорить. У каждого свой вкус.    Ещё слышал, но не слушал, что на TPA3255 хорошие. Присматривал такой как-то. Вы знакомы с таким?
    • Вы самим вообще нормальный??? Под полтинник жалоб!!!!!! Вы чего? Вы говна поели? До утра оставлю сообщение, в надежде на ответ. Но по опыту - никто так и не отпишется...
    • @Vic73 типовая китайская для лент ? биполярники и второй трансформатор ? 
  • Похожий контент

×
×
  • Создать...