Мазмуну:

Pic18f4520 колдонуу менен секундомер 7 сегмент менен Proteus: 6 кадам
Pic18f4520 колдонуу менен секундомер 7 сегмент менен Proteus: 6 кадам

Video: Pic18f4520 колдонуу менен секундомер 7 сегмент менен Proteus: 6 кадам

Video: Pic18f4520 колдонуу менен секундомер 7 сегмент менен Proteus: 6 кадам
Video: RENAULT CLIO 5 1.0 SCE 72 HP | 0-100 ТЕЗДЕТҮҮ | ЫЗЫ-ЧӨЧТӨРДҮ ИЗОЛЯЦИЯЛОО МЕНЕН ӨЛЧӨӨ (БӨЛҮК-2) 2024, Ноябрь
Anonim
Pic18f4520 менен 7 секундда Proteus колдонуучу секундомер
Pic18f4520 менен 7 секундда Proteus колдонуучу секундомер

Мен жөн гана сүрөт көзөмөлчү менен иштей баштадым, менин бир досум андан секундомер курууну суранды. Ошентип, менде бөлүшө турган аппараттык сүрөт жок, мен Proteus программасында код жаздым жана аны окшоштурдум.

Бул жерде мен ошол схеманы бөлүшкөм.

үч өзгөрмөлүү миллисекунд, секунд, мүнөт аныкталат

бул жерде биз 10 мс таймердин үзүлүшүн колдондук, ар бир 1000 миллисекунд үчүн секунда өзгөрмөсү көбөйөт, 60 секунд сайын өзгөрмө көбөйөт.

1 -кадам: Керектүү нерселер

1 pic18f4520 контроллери

2 жети сегменттүү дисплей

3 bc547 транзистору

Баштоо/токтотуу/баштапкы абалга келтирүү үчүн 4 которгуч

5 каршылык 330E, 10K, 1K

Сүрөт үчүн 6 жүктөө mikroC

7 жүктөө proteus

2 -кадам: Code Logic жана Display

Код логикасы жана дисплейи
Код логикасы жана дисплейи
Код логикасы жана дисплейи
Код логикасы жана дисплейи

Жети сегменттүү дисплей (SSD) эң кеңири таралган, арзан жана жөнөкөй дисплейдин бири. Жогоруда окшойт.

Бул жерде биз 7 сегменттин дисплейинин жалпы катод түрүн колдонушубуз керек - Жалпы катод түрүндөгү SSDде, бардык светодиоддордун –ve терминалы көбүнчө 'COM' пинине туташкан. Тиешелүү LED сегментине '1' берилгенде жана жер жалпыга туташтырылганда, сегментти күйгүзүүгө болот. Ички түзүлүштөр 2 -сүрөттө берилген.

3 -кадам: Микроконтроллер менен дисплей айдоо

Айдоо дисплейи микроконтроллер менен
Айдоо дисплейи микроконтроллер менен

Менин схемада мен NPN BC547 транзисторун колдондум.

БЖТны которуштуруучу катары жөнөкөй колдонуу үчүн эмитент-коллектор түйүндөрү базалык терминалда кирүү сигналы болгондо кыскарып калат, антпесе ал өчүп калат. Кириш ылайыктуу резистор аркылуу берилиши керек.

4 -кадам: Эмне үчүн Multiplexing?

Көбүнчө биз эки, үч же андан көп SSDди колдонушубуз керек жана бул дагы бир гана MCUну колдонушубуз керек, бирок биз туш болгон бир көйгөй - MCUда I/O казыктарынын жоктугу, анткени бир SSD 8 казыкка жана башка үч SSDге туура келет. 24 казык алмак. Pic18де бизде 48 гана I/O казыктары бар. Анда кандай чечим бар?

Бир мүмкүнчүлүк, биз көбүрөөк I/O казыктары бар чоңураак MCU колдонобуз. Бирок, биз дагы эле колдонулушу мүмкүн болгон 3 SSD менен гана чектелебиз. Бул көйгөйдүн дагы бир жакшыраак жана сунушталган чечими - жети сегменттин дисплейлерин мультиплекстөө.

Википедия мындай дейт: Телекоммуникацияда жана компьютердик тармактарда мультиплексинг (ошондой эле muxing деп аталат) - бул бир нече аналогдук билдирүү сигналдарын же санарип маалымат агымдарын жалпыга маалымдоо каражаты аркылуу бир сигналга бириктирүү ыкмасы. Максат-кымбат баалуу ресурсту бөлүшүү. 'Биз жети сегменттүү дисплейди мультиплексирлөө деп эмнени айтабыз, биз бардык SSDлерде дисплейди берүү үчүн 7 гана чыгаруу портун колдонобуз.

5 -кадам: Буга кантип жетишүү керек?

Бул жерде биз "Көрүүнүн туруктуулугун" колдонобуз. Эми сиз бул терминди мурунтан эле ээ болушуңуз керек. Ооба, бул кинематографияда колдонулган техника (сүрөттөрдү ушунчалык тез көрсөтүү, мээбиз эки сүрөттүн ортосундагы эч кандай артта калууну айырмалай албайт). Анын сыңарындай, биз бир нече SSDди бир убакта коргогонубузда, биз бир эле учурда бир гана SSDди көрсөтөбүз жана мээбиз аларды айырмалай албагандай тез алмаштырабыз.

Келгиле, ар бир дисплей бир убакта 5 миллисекундка гана активдүү, башкача айтканда, секундасына 1/0.0045 жолу жарык кылат, бул болжол менен 222 эсе/секундага барабар. Биздин көзүбүз өзгөрүүнү ушунчалык тез сезе албайт, ошондуктан биз көрүп турганыбыз - бардык дисплейлер бир убакта иштеп жатат. Аппаратта чынында эмне болуп жатат, MCU пинге '1' берет (эстен чыгарбаңыз, BJTтин базасына '1' берүү Коллектор менен эмитент түйүнүн кыска кылат?), Ал транзистордун базасына туташкан. тиешелүү дисплейлер, портту "ON" 5 миллисекунд бою кармап турат, анан кайра өчүрөт. Бул жол -жобо чексиз циклге киргизилген, ошондуктан биз дисплейди үзгүлтүксүз көрөбүз.

6 -кадам: Мультиплекстөө алгоритми

Мультиплексинг алгоритми
Мультиплексинг алгоритми

Коддо эки портту аныктаңыз, бири сегменттин маалымат порту жана сегменттин башкаруу порту үчүн.

бул жерде сиз бардык 7 сегментте маалыматтарды көрсөтөсүз. жана ошол маалыматтарды көрсөтүү керек болгон бир контролдук пинти жандырыңыз. маалыматтарды өзгөртүү жана контролдук пинди алмаштыруу.

Бул жерде биз 6 цифралуу мультиплекстөөнү колдондук, тиркелген c файлынан өтүңүз жана сиз аны тазалап аласыз.

Сунушталууда: