İçindekiler:
- Adım 1: Gerekli Şeyler
- Adım 2: Kod Mantığı ve Ekranı
- Adım 3: Mikrodenetleyici ile Sürüş Ekranı
- Adım 4: Neden Çoğullama?
- Adım 5: Bu Nasıl Elde Edilir?
- Adım 6: Çoğullama Algoritması
Video: Proteus'ta Pic18f4520 Kullanan Kronometre 7 Segmentli: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Pic controller ile çalışmaya yeni başladım, bir arkadaşım ondan bir kronometre yapmamı istedi. Yani paylaşacak donanım imajım yok, Proteus yazılımında kod yazdım ve simüle ettim.
Burada aynı şemayı paylaştım.
üç değişken milisaniye, saniye, dakika tanımlanır
Burada 10 ms'lik timer interrupt kullandık, her 1000 milisaniyede saniye değişkeni artacak, her 60 saniyede bir dakika değişkeni artacak.
Adım 1: Gerekli Şeyler
1 pic18f4520 denetleyici
2 yedi segmentli ekran
3 bc547 transistör
Başlatma/durdurma/sıfırlama için 4 anahtar
5 direnç 330E, 10K, 1K
6 mikroC'yi resim için indirin
7 proteus'u indirin
Adım 2: Kod Mantığı ve Ekranı
Yedi Segment Ekran Nedir? Yedi Segment Ekran (SSD) en yaygın, ucuz ve kullanımı basit ekranlardan biridir. Yukarıdaki gibi görünüyor.
Burada Ortak katot tipi 7 segmentli ekran kullanmalıyız – Ortak katot tipi SSD'de, tüm LED'lerin –ve terminali yaygın olarak 'COM' pinine bağlanır. İlgili LED segmentine '1' verildiğinde ve ortak kısma toprak bağlandığında bir segment yanabilir. İç kısımlar şekil 2'de verilmiştir.
Adım 3: Mikrodenetleyici ile Sürüş Ekranı
Devremde NPN BC547 Transistör kullandım.
Bir BJT'nin anahtar olarak basit kullanımı için, baz terminalde bir giriş sinyali olduğunda emitör-toplayıcı bağlantıları kısalır, aksi takdirde kesik kalır. Giriş uygun bir direnç üzerinden verilmelidir.
Adım 4: Neden Çoğullama?
Genellikle iki, üç veya daha fazla SSD kullanmamız gerekir ve bu da yalnızca tek bir MCU kullanır, ancak karşılaştığımız sorunlardan biri MCU'da G/Ç pinlerinin olmamasıdır, çünkü bir SSD 8 pin ve dolayısıyla üç SSD alır. 24 pin alacaktı. pic18'de sadece 48 I/O pinimiz var. Çözüm nedir?
Bir olasılık, daha fazla I/O pinli daha büyük bir MCU kullanmamızdır. Ancak yine de kullanılabilecek maksimum 3 SSD ile sınırlıyız. Bu soruna çok daha iyi ve önerilen bir başka çözüm de Yedi Segment Ekranı çoğaltmaktır.
Wikipedia, 'Telekomünikasyon ve bilgisayar ağlarında, çoğullama (muxing olarak da bilinir), çoklu analog mesaj sinyallerinin veya dijital veri akışlarının paylaşılan bir ortam üzerinden tek bir sinyalde birleştirildiği bir yöntemdir. Amaç pahalı bir kaynağı paylaşmaktır.'Yedi segmentli ekranın çoğullanmasından kastımız, tüm SSD'lerde ekranı vermek için sadece 7 çıkış portu kullanacağımızdır.
Adım 5: Bu Nasıl Elde Edilir?
Burada 'Vizyon Kalıcılığı' kullanacağız. Şimdi bu terimi daha önce görmüş olmalısınız. Evet, bu, sinematografide kullanılan tekniğin aynısıdır (görüntüleri o kadar hızlı gösterir ki beynimiz iki ardışık görüntü arasındaki gecikmeyi ayırt edemez). Benzer şekilde, birden fazla SSD'yi muxladığımızda, aynı anda yalnızca bir SSD görüntülüyoruz ve aralarında o kadar hızlı geçiş yapıyoruz ki beynimiz onları ayırt edemiyor.
Diyelim ki her bir ekran bir seferde sadece 5 milisaniye aktif, yani saniyede 1/0.0045 kez aydınlanıyor, bu kabaca 222 kez/saniyeye eşittir. Gözlerimiz bir değişikliği bu kadar hızlı algılayamaz ve bu nedenle gördüğümüz tüm ekranların aynı anda çalıştığıdır. Donanımda gerçekte olan şey, MCU'nun pine '1' vermesidir (unutmayın, bir BJT'nin tabanına '1' vererek, Kollektör ve emitör bağlantısını kısaltır?), ilgili ekranlar, bağlantı noktasını 5 milisaniye boyunca 'AÇIK' tutar ve ardından tekrar kapatır. Bu prosedür sonsuz bir döngüye konur, böylece ekranı sürekli olarak görebiliriz.
Adım 6: Çoğullama Algoritması
Biri segment veri portu ve segment kontrol portu için olmak üzere kodda iki bağlantı noktası tanımlayın.
Buradaki hile, verileri 7 segmentin tamamında görüntülemenizdir. ve bu verileri görüntülemeniz gereken bir kontrol pinini etkinleştirin. verileri değiştirin ve kontrol pimini kaydırın.
burada bu talimatta 6 basamaklı çoğullama kullandık, sadece ekli c dosyasını gözden geçirin ve onu temizleyeceksiniz.
Önerilen:
Arduino Leonardo Kronometre: 3 Adım
Arduino Leonardo Kronometre: Kredi: https://www.instructables.com/id/Arduino-Stopwatch…Bu kronometre tasarımı, 1'den sayan bir kronometre olan yukarıdaki bağlantıdan kaynaklanmaktadır, oysa bu kronometre 60 saniyeden geri saymaktadır. . Kullandığım kodun çoğu orijinali takip ediyor
Basit CloudX M633 Dijital Kronometre: 4 Adım
Basit CloudX M633 Dijital Kronometre: Bu projede, cep telefonunuzdaki bir kronometre gibi saat, dakika ve saniye kaydını tutabilen bir dijital saat versiyonu yapacağız! Saati görüntülemek için bir LCD kullanacağız
Hepsi Bir Arada Dijital Kronometre (Saat, Zamanlayıcı, Alarm, Sıcaklık): 10 Adım (Resimli)
Hepsi Bir Arada Dijital Kronometre (Saat, Zamanlayıcı, Alarm, Sıcaklık): Başka bir yarışma için bir Zamanlayıcı yapmayı planlıyorduk, ancak daha sonra bir saat de uyguladık (RTC'siz). Programlamaya başladığımızda, cihaza daha fazla işlevsellik uygulamakla ilgilendik ve sonunda DS3231 RTC'yi ekledik
I2C LCD Kullanan Arduino Kronometre: 5 Adım
I2C LCD Kullanan Arduino Kronometre: Bu projede size interaktif kronometre olarak bir LCD ekran ve bir Arduino kullanmayı öğreteceğim. Verilen kod ile projeniz bittiğinde yukarıdaki fotoğraftaki gibi görünmelidir. Nereden başlayacağınızı öğrenmek için sonraki adıma geçin
VHDL ve Basys3 Board Kullanan Temel Kronometre: 9 Adım
VHDL ve Basys3 Board Kullanan Temel Kronometre: Temel VHDL ve Basys 3 board kullanarak bir kronometrenin nasıl oluşturulacağına ilişkin talimata hoş geldiniz. Projemizi sizinle paylaşmaktan heyecan duyuyoruz! Bu, Güz 2016'da Cal Poly, SLO'da CPE 133 (Dijital Tasarım) kursu için bir final projesiydi. İnşa ettiğimiz proje