Мазмуну:
- 1 -кадам: Керектүү нерселер
- 2 -кадам: Code Logic жана Display
- 3 -кадам: Микроконтроллер менен дисплей айдоо
- 4 -кадам: Эмне үчүн Multiplexing?
- 5 -кадам: Буга кантип жетишүү керек?
- 6 -кадам: Мультиплекстөө алгоритми
Video: Pic18f4520 колдонуу менен секундомер 7 сегмент менен Proteus: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Мен жөн гана сүрөт көзөмөлчү менен иштей баштадым, менин бир досум андан секундомер курууну суранды. Ошентип, менде бөлүшө турган аппараттык сүрөт жок, мен 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): Биз көбүнчө тоскоолдуктарды болтурбоочу роботту бардык жерде кездештиребиз. Бул роботтун аппараттык симуляциясы көптөгөн колледждерде жана көптөгөн иш -чараларда атаандаштыктын бир бөлүгү болуп саналат. Бирок тоскоолдук роботтун программалык симуляциясы сейрек кездешет. Биз аны бир жерден тапсак да
I2C ЖК колдонуу Arduino Секундомер: 5 кадам
I2C ЖКнын жардамы менен Arduino секундомери: Бул долбоордо мен сизге ЖК дисплейди жана Arduino интерактивдүү секундомер катары колдонууну үйрөтөм. Сиздин долбоор берилген код менен бүткөндө, ал жогорудагы сүрөттө окшош болушу керек. Кайдан баштоо керектигин билүү үчүн кийинки кадамга өтүңүз
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
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ден турат жана ал сандарды көрсөтүү үчүн идеалдуу. дисплейде колдонулган казыктар, аноддордун же катоддордун бардыгы