Zbekiston respublikasi raqamli texnologiyalari vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti
Download 0.8 Mb.
|
1 2
Bog'liq1684254203 (1)
- Bu sahifa navigatsiya:
- Qisqacha nazariy ma’lumot
O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALARI VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI Topshiriq-3 Mavzu: 74HC595 shift registrlari hamda Piezoelement orqali jarayon tashkil etish Fan: O’rnatilgan tizimlar Bajardi: Davlatboyeva Munisa Tekshirdi: Xoldorov Shohruhmirzo 3-topshiriq 1. 74HC595 shift registri orqali jarayonlarni boshqarish 2. Piezoelement orqali jarayon tashkil etish Bir xil deb topilgan ishlarga ball berilmaydi. 1. 74HC595 shift registri orqali jarayonlarni boshqarish Qisqacha nazariy ma’lumot Amaliy qism: Shift registri 74HC595 Arduino taxtasi cheklangan miqdordagi pinlarni o'z ichiga oladi va murakkab loyiha bilan ular to'liq ish uchun etarli emas. Misol uchun, segment indikatorini ulash uchun siz sakkiz pinni ishlatishingiz kerak, ikkita ko'rsatkich 16 pinni egallaydi. Shift registri sizga pinlarni boshqarishning bir qismini o'zingizga olib, ishlatiladigan pinlar sonini saqlashga imkon beradi. Shift registr nima Elektronikada registr - bu tez kirish uchun kichik hajmdagi ma'lumotlarni saqlashi mumkin bo'lgan qurilma. Ular har bir kontroller va mikroprotsessorda, shu jumladan Arduino Uno platasining bir qismi bo'lgan Atmega328 mikrokontrollerida joylashgan. Qoidaga ko'ra, registrlar D-flip-floplar yig'indisi - elementar xotira hujayralari. Siz registrga ma'lumotlarni ketma-ket yoki parallel yozishingiz mumkin. Birinchi turdagi registrlar siljish, ikkinchi tur - parallel deb ataladi. Siz registrdagi ma'lumotlarni bir vaqtning o'zida barcha hujayralardan o'qishingiz mumkin. Aynan shu xususiyat bizga bir nechta LEDlar bilan ishlashga yordam beradi. Registr siljish registri deb ataladi, chunki unga har bir yangi bit qo'shilsa, biz qolgan qismini yon tomonga siljitamiz. Eslatib o'tamiz, bitta bit bizga nol yoki bitta, rost yoki yolg'onni saqlashga imkon beradi. Bu qanday sodir bo'lishini ko'rish uchun diagrammani ko'rib chiqaylik. Dastlabki holatda registr allaqachon sakkiz bit bilan to'ldirilgan bo'lsin. Keling, sakkizta yangi bitni "itarish" ga harakat qilaylik: 11011010. Ko'rib turganingizdek, ikkita takrorlashdan so'ng, registrning boshida ikkita yangi bit bor edi va oxirgi kataklardagi ikkita bit chetidan "tushib" yo'qoldi. Sakkizinchi bosqichda butun registr yangi bitlar bilan to'ldirildi. Registrlar zanjirlangan bo'lishi mumkin. Bunday holda, oldindan olingan bit izsiz yo'qolmaydi, balki keyingi registrning boshiga o'tadi. Bu mavjud chiqishlar sonini oshiradi. Eng ommabop sakkiz bitli (8 ta boshqariladigan chiqish) siljish registrlari 74HC595 (KR1564IR52 ning mahalliy analogi), uni boshlang'ich to'plamlarda topish yoki alohida sotib olish mumkin. Amaliy qism: Topshiriq kod qismi: int clockPin = 4; int latchPin = 3; int dataPin = 2; int digitBuffer[8] = {8}; int digitScan = 0; const int digitPins[8] = {5,6,A5,A4,A3,A2,A1,A0}; const byte digit [10] { B11000000, B11111001, B10100100, B10110000, B10011001, B10010010, B10000010, B11111000, B10000000, B10010000 }; void setup() { Serial.begin(115200); for(int a=0;a<8;a++) { pinMode(digitPins[a],OUTPUT); } pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(latchPin, OUTPUT); } void loop(){ int year = 2003; int year4 = year / 1000%10; int year3 = year / 100%10; int year2 = year / 10%10; int year1 = year % 10; int month = 03; int month2 = month / 10%10; int month1 = month % 10; int day = 27; int day2= day / 10%10; int day1 = day % 10; digitBuffer[0] = year1; digitBuffer[1] = year2; digitBuffer[2] = year3; digitBuffer[3] = year4; digitBuffer[4] = month1; digitBuffer[5] = month2; digitBuffer[6] = day1; digitBuffer[7] = day2; SevSegDisplay(); } void SevSegDisplay() { for(byte b=0; b<8; b++) digitalWrite(digitPins[b], LOW); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, 255); digitalWrite(latchPin, HIGH); delayMicroseconds(100); digitalWrite(digitPins[digitScan], HIGH); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, digit[digitBuffer[digitScan]]); digitalWrite(latchPin, HIGH); Serial.print(digit[digitBuffer[0]]); Serial.print(" "); Serial.print(digit[digitBuffer[1]]); Serial.print(" "); Serial.print(digit[digitBuffer[2]]); Serial.print(" "); Serial.print(digit[digitBuffer[3]]); Serial.print(" "); Serial.print(digit[digitBuffer[4]]); Serial.print(" "); Serial.print(digit[digitBuffer[5]]); Serial.print(" "); Serial.print(digit[digitBuffer[6]]); Serial.print(" "); Serial.println(digit[digitBuffer[7]]); digitScan++; if(digitScan>8) digitScan=0; } Topshiriq linki: https://www.tinkercad.com/things/1B9upg4wgXN-/editel?sharecode=U1LhzU4vyOap7DfQo8amxIvG0EaPt4B3kO2YkLtZuTY 2. Piezoelement orqali jarayon tashkil etish Download 0.8 Mb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling