Съдържание:

Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента: 6 стъпки
Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента: 6 стъпки

Видео: Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента: 6 стъпки

Видео: Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента: 6 стъпки
Видео: Arduino 7 segment display clock proteus simulation 2024, Ноември
Anonim
Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента
Хронометър, използващ Pic18f4520 в Proteus със 7 сегмента

Току -що започнах да работя с контролер за снимки, един от приятелите ми ме помоли да направя хронометър от него. Така че нямам хардуерен образ за споделяне, написах код и го симулирах на софтуера 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 и ще го изчистите.

Препоръчано: