Mundarija:

Pic18f4520 yordamida sekundomer 7 segmentli Proteusda: 6 qadam
Pic18f4520 yordamida sekundomer 7 segmentli Proteusda: 6 qadam

Video: Pic18f4520 yordamida sekundomer 7 segmentli Proteusda: 6 qadam

Video: Pic18f4520 yordamida sekundomer 7 segmentli Proteusda: 6 qadam
Video: СМАРТ-ЧАСЫ CUBOT C5 / ОБЗОР + ОТЗЫВ 2024, Noyabr
Anonim
7 segmentli Proteus -da Pic18f4520 yordamida sekundomer
7 segmentli Proteus -da Pic18f4520 yordamida sekundomer

Men rasm boshqaruvchisi bilan ishlay boshladim, do'stlarimdan biri undan sekundomer yasashimni so'radi. Menda almashish uchun apparat tasviri yo'q, men Proteus dasturida kod yozdim va uni simulyatsiya qildim.

Men bu erda sxemani baham ko'rdim.

uchta o'zgaruvchan millisekund, soniya, daqiqa aniqlanadi

bu erda biz 10 mslik taymer uzilishidan foydalandik, har 1000 millisekund uchun soniya o'zgaruvchisi ortadi, har 60 soniya uchun o'zgaruvchi ortadi.

1 -qadam: Kerakli narsalar

1 pic18f4520 tekshirgich

2 ta etti segmentli displey

3 bc547 tranzistorlari

Boshlash/to'xtatish/tiklash uchun 4 ta kalit

5 qarshilik 330E, 10K, 1K

Https://www.mikroe.com/mikroc-pic uchun 6 ta mikroC-ni yuklab oling

7 proteusni yuklab oling

2 -qadam: Kod mantig'i va ko'rsatish

Kod mantig'i va ko'rsatish
Kod mantig'i va ko'rsatish
Kod mantig'i va ko'rsatish
Kod mantig'i va ko'rsatish

Etti segmentli displey (SSD) eng keng tarqalgan, arzon va ishlatish uchun eng oddiy displeylardan biridir. Bu yuqoridagi kabi ko'rinadi.

Bu erda biz 7 segmentli displeyning umumiy katodli turidan foydalanishimiz kerak - SSD umumiy katodli turida, barcha LEDlarning –ve terminali odatda "COM" piniga ulanadi. Tegishli LED segmentiga "1" berilganda va er umumiy tomonga ulanganda segment yoritilishi mumkin. Ichki qismlar 2 -rasmda keltirilgan.

3 -qadam: displeyni mikrokontroller yordamida boshqarish

Mikrokontroller bilan haydash displeyi
Mikrokontroller bilan haydash displeyi

Men o'z davrimda NPN BC547 tranzistoridan foydalanganman.

BJT-ni kalit sifatida oddiy ishlatish uchun, emitent-kollektor ulanishlari asosiy terminalda kirish signali mavjud bo'lganda qisqa bo'ladi, aks holda u uzilib qoladi. Kirish mos keladigan qarshilik orqali berilishi kerak.

4 -qadam: Nega ko'paytirish kerak?

Ko'pincha biz ikkita, uch yoki undan ko'p SSD -ni ishlatishimiz kerak va bu faqat bitta MCU -dan foydalanadi, lekin biz duch keladigan muammo - bu MCU -da kirish -chiqish pimlarining etishmasligi, chunki bitta SSD 8 ta pinni va shuning uchun uchta SSD -ni oladi. 24 pinni oladi. 18 -rasmda bizda faqat 48 ta kirish -chiqish pinlari bor. Xo'sh, qanday yechim bor?

Bir variant shundaki, biz ko'proq kirish -chiqish pinlari bo'lgan kattaroq MCUdan foydalanamiz. Ammo keyin biz hali ham maksimal 3 ta SSD bilan cheklanganmiz. Bu muammoning yana bir yaxshi va tavsiya etilgan echimi - bu etti segmentli displeylarni ko'paytirish.

Vikipediyada shunday deyilgan: "Telekommunikatsiya va kompyuter tarmoqlarida multipleksing (muxing deb ham ataladi) - bu bir nechta analog xabarlar signallari yoki raqamli ma'lumotlar oqimlarini umumiy axborot uzatish vositasida bitta signalga birlashtirish usuli. Maqsad-qimmatbaho manbani bo'lishish. "Biz etti segmentli displeyni ko'paytirish deganda, biz barcha SSD-larda displeyni berish uchun faqat 7 ta chiqish portidan foydalanamiz.

5 -qadam: Bunga qanday erishish mumkin?

Bu erda biz "Vizyonning barqarorligi" dan foydalanamiz. Endi siz ushbu atamani oldinroq olishingiz kerak. Ha, bu xuddi kinematografiyada qo'llaniladigan texnikadir (tasvirlar shunchalik tez ko'rsatadiki, bizning miyamiz ketma -ket ikkita tasvir orasidagi farqni ajrata olmaydi). Xuddi shunday, biz bir nechta SSD -ni almashtirganimizda, biz bir vaqtning o'zida faqat bitta SSD -ni ko'rsatamiz va biz ularni shu qadar tez almashtiramizki, miyamiz ularni ajrata olmaydi.

Aytaylik, har bir displey bir vaqtning o'zida atigi 5 millisekundda ishlaydi, ya'ni sekundiga 1/0.0045 marta yonadi, bu taxminan sekundiga 222 marta. Bizning ko'zlarimiz o'zgarishni shunchalik tez sezmaydilar, shuning uchun biz ko'rdikki, barcha displeylar bir vaqtning o'zida ishlaydi. Aslida, apparatda nima bo'layapti, MCU pinga '1' beradi (esda tutingki, BJT bazasiga Kollektor va emitent ulanishini qisqartiradi '1'?), Bu tranzistor bazasiga ulangan. tegishli displeylar 5 milisaniyagacha "ON" portini ushlab turadi va keyin uni yana o'chiradi. Ushbu protsedura cheksiz tsiklga o'rnatiladi, shuning uchun biz displeyni doimiy ravishda ko'ramiz.

6 -qadam: ko'paytirish algoritmi

Multiplekslash algoritmi
Multiplekslash algoritmi

Kodda ikkita portni aniqlang, bittasi ma'lumotlar uzatish porti va segmentni boshqarish porti uchun.

hiyla -nayrang, siz ma'lumotlarni 7 segmentning barchasida ko'rsatasiz. va bu ma'lumotlarni ko'rsatish kerak bo'lgan bitta boshqaruv pinini faollashtiring. ma'lumotlarni o'zgartiring va boshqaruv pinini siljiting.

Bu erda biz 6 ta raqamli multipleksatsiyadan foydalanganmiz, faqat biriktirilgan c faylini o'ting va siz uni tozalaysiz.

Tavsiya: