21. Динамическая индикация с использованием микроконтроллера PIC16F84A (Урок 18. Теория)
ฝัง
- เผยแพร่เมื่อ 15 ก.ย. 2024
- Спасибо за Like и за Подписку на мой канал.
Если вас больше привлекает социальная сеть вконтакте, то вы можете подписаться на страницу канала в вконтакте и следить за выпуском новых роликов!
Страница в вконтакте:
mychippic
Описание к видео:
В уроке показана реализация динамической индикации. На светодиодных индикаторах отображаются числа состоящие из цифр. Каждый индикатор с определённой цифрой включается в отдельный момент времени. Но из-за быстрого включения индикаторов, получается, что включены одновременно все индикаторы, но с разными цифрами.
Выполнение динамической индикации осуществляется с помощью микроконтроллера PIC16F84A. Показана программа и её написание для микроконтроллера на языке ассемблер, которая приводит в результате к динамической индикации. На индикаторах появляются числа, которые меняются со временем увеличиваясь на единицу.
Чтоб внимательно изучить код программы для PIC16F84A можно скачать код программы по ссылкам:
код программы (.txt)
drive.google.c...
код программы (.asm)
drive.google.c...
код программы (.hex)
drive.google.c...
Действительно очень хорошо и доходчиво! Даже я обычный водитель начал понимать что и как, а главное с интересом начал заниматься изучением программирования. Есть же на свете настоящие преподаватели. Здоровья Вам! Спасибо!
По количеству лайков видно, что не многие "досматривают", в первых уроках их было больше. Автору бесконечное количество лайков. Это для меня настоящая находка. Все понятно. Только нужно больше практиковаться, чтобы быстрее ориентироваться
Сергей Знаковский Благодарю. Главное больше практики и лучше сразу повторять то, что было показано в видеуроке, так как из-за неопытности можно сделать множество ошибок, которые исчезнут с опытом.
Ваши уроки очень доступные начинающим программировать микроконтроллеры. Пристально слежу за Вашими рассылками. Огромное спасибо за Ваш ТРУД!
+Serj Vorobjov И вам спасибо за поддержку)
Спасибо вам большое за ваши труды, всё предельно доходчиво, прям начинаю себя чувствовать программистом благодаря вашим урока, раньше думал что PIC контроллеры так себе и что AVR на порядок лучше (по неопытности) , а благодаря вам понял что PIC контроллеры вполне боеспособные ребята ещё раз спасибо вам, успехов
Присоединяюсь к выразившим благодарность.Доходчиво.Просьба расшифрофывать аббревиатуры инструкций или не просьба,а пожелание т.к. урокам уже более 5-ти лет.
В конце программы ошибка - clrf INDICATOR1, а не clrf INDOCATOR2.
Уроки отличные, лайк, подписка
урок про динамическую индикацию, мне кажется, должен хотя бы просветить для начала, что бывают динамические индикации: 1.) Посегментные, это когда выставляется сигнал на сегмент 'a' и зажигаются те разряды где нужен этот сегмент, затем 'b' и так далее; 2.) Поразрядные, данный случай, когда выставляется вся цифра на порт и зажигается один разряд. Обычно 1 используется, если разрядов на индикаторе >7
Михаил Петрович, здравствуйте, этому видео уже много лет и вы врядли сюда заходите, но я надеюсь на ответ. У меня следующий вопрос. Я хотел бы построить подъёмник для окна теплицы с приводом от шагового мотора, в промежутке температурной шкалы от 20 до 30 градусов, с повышением темпаратуры на один градус, мотор должен сделать определённое количество шагов (например) влево, при понижении- тоже самое вправо. Микроконтроллер PIC16F876А. Что вы посоветуете, возможно ли это осуществить? Было бы ещё неплохо вывести показание температуры на ЖКИ. Заранее спасибо.
Спасибо за урок! Решил перед просмотром попробовать самостоятельно сделать такой таймер. В итоге в симуляторе индикатор работал криво и проскакивали неправильные символы. Благодаря уроку, нашел у себя ошибку: не гасил биты в TRISA перед изменением TRISB)) Добавил эти четыре выключения сегментов и всё заработало как надо.
Подскажите, пожалуйста, в чём дело? Хотел сделать включение DP посередине индикатора (ну, типа разграничение минут и секунд) через TRISA4, но в симуляторе на четвёртом бите всегда 0, хотя при проверке в file registers бит выставляется правильно и вовремя. Пришлось делать через PORTB7. Это глюк Протеуса или в pic16f84a и в самом деле нельзя использовать TRISA4 как выход?
Огромное спасибо за уроки. давно хотел освоить контроллеры нашел единственный материал который более менее понятен для начинающих. Как можно сделать чтоб первый и второй индикаторы считали до 24, чтоб получились простые часы?
Здравствуйте! А подскажите, пожалуйста, как прервать и начать индикацию сначала по достижению какого-то конкретного числа, например 1000 или 2000 и 3500
Здравствуйте. Не могу ни как с Вами связаться. Хочется спросить совета.
Здравствуйте, очень помогают ваши уроки в изучении микроконтроллеров! Но появился вопрос: программу я пишу на pic16f628a; программы для светодиодов работали "на ура", а вот с динамической индикацией начались проблемы, а именно: с использованием регистра PCL и команды retlw индикатор показывает нормально до цифры "5", затем начинаются непонятные символы даже отдаленно непохожие на числа "6", "7" и т.д. При отключении компараторов проблема не исчезает, как исправить эту проблему?
Константин Липин Здравствуйте. Не работает в протеусе или в реальной схеме? Добавьте к сообщению код, чтоб можно было оценить. Ну и в третьих, проверьте ещё раз вашу программу, с помощью собственных средств MPLAB X
MyChipPic Как прикрепить файл с кодом? Не работает и в Протеусе, и в реальной схеме
Константин Липин Проблема может скрываться в конфигурационном слове. Попробуйте __CONFIG 03F09H. Также проверьте правильно ли вы используете регистры общего назначения. У регистров общего назначения в Pic16f628А часть адресов отличается
Константин Липин Я отключил компараторы, ( movlw 07h ) ( movwf CMCON), изменил конфигурационное слово на __CONFIG 03F09H, проверил адреса у всех регистров и подстроил их под PIC16F628A, Установил TRISB и TRISA в 0 и в протеусе заработало. На реальной схеме не стал проверять.
MyChipPic большое Вам спасибо! Заменил адреса регистров общего назначения, и всё заработало!
Здравствуйте я столкнулся с такой проблемой с регистром спец. назначения порта
один из битов не отключается то есть защёлка RA3 не отключается получается загорается сначала 4 потом 3 ,2 а первый вообще не загорается это наверно проблема с proteusom или где то моя ошибка
А какой контроллер вы используете? Есть такие, в которых нужно использовать только после изменнения ещё некоторых регистров или слово конфигурации.
Я скачивал и переписывал вами написанную программу а контроллер pic16f84a я мог где то и ошибку допустить не отрицаю надо повнимательней посмотреть так как мало опытный только изучаю микроконтроллеры. Конфигурация как и в ваших уроках 03FF1h
Ой как хорошо. Просто нажимаете стоп в протеусе и все. А у меня каждый раз выскакивает страничка "Simulation Errors". которую надо постоянно закрывать. Реально бесит. У вас какая версия?
7.6 SP0 (Сборка 8304)
В принципе, можно вообще убрать
decfsz COUNT,1;0
goto START
movlw .1
movwf COUNT ;5