
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51

Мен жөн гана сүрөт көзөмөлчү менен иштей баштадым, менин бир досум андан секундомер курууну суранды. Ошентип, менде бөлүшө турган аппараттык сүрөт жок, мен 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 файлынан өтүңүз жана сиз аны тазалап аласыз.
Сунушталууда:
УЗИ сенсорун колдонуу менен тоскоолдуктардан качуу роботу (Proteus): 12 кадам

УЗИ сенсорунун жардамы менен тоскоолдуктардан качуу роботу (Proteus): Биз көбүнчө тоскоолдуктарды болтурбоочу роботту бардык жерде кездештиребиз. Бул роботтун аппараттык симуляциясы көптөгөн колледждерде жана көптөгөн иш -чараларда атаандаштыктын бир бөлүгү болуп саналат. Бирок тоскоолдук роботтун программалык симуляциясы сейрек кездешет. Биз аны бир жерден тапсак да
Жети сегмент IR алуучу үй сигнализация системасы: 6 кадам

Жети сегмент IR алуучу үй сигнализация системасы: Бул 4 цифралуу 7 сегменттүү дисплейди колдонууну, ошондой эле үйүңүздүн тегерегинде ишке ашырыла турган сонун нерсени түзүүнү үйрөнгүңүз келсе, баштоо үчүн эң сонун долбоор. Сиз аныктай турган 4 орундуу 7 сегменттүү дисплейди колдонуунун кажети жок
I2C ЖК колдонуу Arduino Секундомер: 5 кадам

I2C ЖКнын жардамы менен Arduino секундомери: Бул долбоордо мен сизге ЖК дисплейди жана Arduino интерактивдүү секундомер катары колдонууну үйрөтөм. Сиздин долбоор берилген код менен бүткөндө, ал жогорудагы сүрөттө окшош болушу керек. Кайдан баштоо керектигин билүү үчүн кийинки кадамга өтүңүз
VHDL жана Basys3 тактасын колдонуу менен негизги секундомер: 9 кадам

VHDL жана Basys3 тактасын колдонуу менен негизги секундомер: Негизги VHDL жана Basys 3 тактасын колдонуу менен секундомерди кантип куруу керектиги боюнча инструкцияга кош келиңиз. Биз сиздер менен долбоорубузду бөлүшүүгө кубанычтабыз! Бул 2016 -жылдын күзүндө Cal Poly, SLOдогу CPE 133 (Санариптик Дизайн) курсунун акыркы долбоору болчу. Биз курган долбоор
CloudX микроконтроллери менен 0-9 сегмент эсептегичи: 3 кадам

0-9 сегментти эсептегич CloudX микроконтроллери менен: Бул долбоордо биз 0дөн 9га чейин эсептөө үчүн жети сегменттүү LED дисплейин колдонобуз. Жети сегменттүү LED дисплей сегиз LEDден турат жана ал сандарды көрсөтүү үчүн идеалдуу. дисплейде колдонулган казыктар, аноддордун же катоддордун бардыгы