Съдържание:
- Стъпка 1: Необходими неща
- Стъпка 2: Логика на кода и дисплей
- Стъпка 3: Управление на дисплея с микроконтролер
- Стъпка 4: Защо мултиплексиране?
- Стъпка 5: Как да постигнем това?
- Стъпка 6: Алгоритъм за мултиплексиране
Видео: Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Току -що започнах да работя с контролер за снимки, един от приятелите ми ме помоли да направя хронометър от него. Така че нямам хардуерен образ за споделяне, написах код и го симулирах на софтуера Proteus.
тук съм споделил схемата за същото.
дефинирани са три променливи милисекунди, секунди, минути
тук сме използвали прекъсване на таймера от 10 ms, за всеки 1000 милисекунди променливата за секунди ще се увеличава, за всеки 60 секунди минута променливата ще се увеличава.
Стъпка 1: Необходими неща
1 контролер pic18f4520
2 седем сегментни дисплея
3 транзистора bc547
4 превключвателя за стартиране/спиране/нулиране
5 резистора 330E, 10K, 1K
6 изтеглете mikroC за снимка
7 изтеглете proteus
Стъпка 2: Логика на кода и дисплей
Какво е седемсегментен дисплей? Седем сегментният дисплей (SSD) е един от най -често срещаните, евтини и лесни за използване дисплеи. Изглежда по -горе.
тук трябва да използваме 7 -сегментен дисплей с общ тип катод - В общия тип катод SSD, терминалът –ve на всички светодиоди обикновено е свързан към „COM“извода. Сегментът може да се освети, когато „1“се даде на съответния LED сегмент и земята е свързана към общия. Вътрешните елементи са дадени на фигура 2.
Стъпка 3: Управление на дисплея с микроконтролер
В моята верига съм използвал транзистора NPN BC547.
За простото използване на BJT като превключвател, емитер-колекторните преходи се късо съединяват, когато има входен сигнал към базовия терминал, в противен случай остава прекъснат. Входът трябва да се подава през подходящ резистор.
Стъпка 4: Защо мултиплексиране?
Често се налага да използваме два, три или повече SSD -та и това също с помощта само на един MCU, но един проблем, с който се сблъскваме, е липсата на I/O щифтове в MCU, тъй като един SSD ще отнеме 8 пина и така три SSD ще отнеме 24 пина. На pic18 имаме само 48 I/O пина. И така, какво е решението?
Една от възможностите е, че използваме по -голям MCU с повече I/O пинове. Но тогава ние все още сме ограничени само до максимум 3 SSD, които могат да се използват. Друго много по -добро и препоръчително решение на този проблем е мултиплексирането на седемте сегментни дисплея.
Уикипедия казва: „В телекомуникациите и компютърните мрежи мултиплексирането (известно също като мултиплексиране) е метод, чрез който множество аналогови сигнални съобщения или цифрови потоци от данни се обединяват в един сигнал през споделен носител. Целта е да споделим скъп ресурс. “Това, което имаме предвид под мултиплексиране на седемсегментен дисплей, е, че ще използваме само 7 изходни порта, за да дадем дисплей на всички SSD дискове.
Стъпка 5: Как да постигнем това?
Тук ще използваме „Постоянство на зрението“. Сега трябва да сте преминали през този термин вече преди. Да, това е същата техника, която се използва в кинематографията (показва изображения толкова бързо, че мозъкът ни не може да различи никакво изоставане между две последователни изображения). По подобен начин, когато смесваме повече от един SSD, ние показваме само един SSD наведнъж и превключваме между тях толкова бързо, че мозъкът ни не може да прави разлика между тях.
Да кажем, че всеки дисплей е активен само за 5 милисекунди в даден момент, т.е. свети 1/0.0045 пъти в секунда, което е приблизително равно на 222 пъти/секунда. Очите ни не могат да усетят промяна толкова бързо и затова виждаме, че всички дисплеи работят едновременно. Това, което всъщност се случва в хардуера, е, че MCU дава "1" на щифта (не забравяйте, че дава "1" на основата на BJT къси къси колектор и емитер преход?), Който е свързан към основата на транзистора на съответните дисплеи, запазва порта „ON“за 5 милисекунди и след това го изключва отново. Тази процедура се поставя в безкраен цикъл, така че да виждаме дисплея непрекъснато.
Стъпка 6: Алгоритъм за мултиплексиране
Определете два порта в кода, един за сегментния порт за данни и порта за управление на сегмента.
трик тук е, че показвате данните за всички 7 сегмента. и активирайте един контролен щифт, на който трябва да покажете тези данни. променете данните и преместете контролния щифт.
тук в тази инструкция сме използвали 6 -цифрено мултиплексиране, просто преминете през прикачения файл c и ще го изчистите.
Препоръчано:
Часовник със 7 сегмента: 4 стъпки (със снимки)
7 Сегментен часовник: След няколко години използване, аналоговият ми часовник, ако окончателно е мъртъв. Междувременно търсех проект за 3D часовник, който да отпечатам с моята Prusa, затова намерих 7 -сегментен часовник, който да се задвижва от светодиоди ws2812 и Arduino. Мислех, че силата на тези светодиоди е
Хронометър Arduino, използващ I2C LCD: 5 стъпки
Хронометър на Arduino, използващ I2C LCD: В този проект ще ви науча да използвате LCD дисплей и Arduino като интерактивен хронометър. Когато вашият проект приключи с предоставения код, той трябва да изглежда като снимката по -горе. Отидете на следващата стъпка, за да научите откъде да започнете
Хронометър с 4 цифри и 7 сегмента: 3 стъпки
Хронометър на 4-цифрен 7-сегментен дисплей: Тази инструкция ще ви покаже как да създадете напълно функционален хронометър в реално време от 4-цифрен седем-сегментен дисплей
Основен хронометър, използващ VHDL и Basys3 дъска: 9 стъпки
Основен хронометър, използващ VHDL и Basys3 Board: Добре дошли в инструкциите как да изградите хронометър, използвайки основен VHDL и Basys 3 борд. Радваме се да споделим нашия проект с вас! Това беше последен проект за курс CPE 133 (цифров дизайн) в Cal Poly, SLO през есента на 2016 г. Проектът, който изградихме
Интерфейс на клавиатурата с 8051 и показване на номера на клавиатурата в 7 сегмента: 4 стъпки (със снимки)
Интерфейс на клавиатурата с 8051 и показване на номера на клавиатурата в 7 сегмент: В този урок ще ви разкажа как можем да свържем клавиатурата с 8051 и да покажем номера на клавиатурата в 7 сегментен дисплей