O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI
“KOMPYUTER INJINIRINGI” FAKULTETI
“AXBOROT TEXNOLOGIYALARI” KAFEDRASI
“O’RNATILGAN TIZIMLAR”
fanidan
9- HAFTA LABARATORIYA ISHI
Bajardi:
Fan o‘qituvchisi: Mirsaidov Bekzod
SAMARQAND _ 2022
9- Mavzu: 74NS595 suruvchi registr mikrosxemasi. 4 razryadli matrisani boshqarish(Arduinoda).
Ushbu tajriba ishida Arduino 74HC595 bilan qanday ishlashini ko'rib chiqamiz, bu 4-razryadli 7-segmentli matritsani boshqarish uchun Arduino pinlari sonini kamaytirishga imkon beradi.
Kerakli komponentlar:
ArduinoUNO kontrolleri;
sxema yig‘ish uchun plata;
4 razryadli yetti segmentli indikator;
74HC595 mikrosxema;
qarshilik 510 Om - 7 ta;
ikki uchida razyomlari bо‘lgan o’tkazgichlar.
Arduino Nano va UNO raqamli pinlari, hatto ba'zida Arduino Mega ham juda ko'p sonli pinlarni boshqarish zarur bo'lsa, etarli bo'lmasligi mumkin. Bunday holda, 74HC595 mikrosxemasidan foydalanish mumkin. 74HC595 mikrosxemasi ketma-ket kirish bilan 8-razriyadli o'tish registri, ma'lumotlarning ketma-ket yoki parallel chiqishi, trigger qulfi va uchta holatli chiqish bilan. 74HC595 mikrosxemasining pin belgilanishi 1- rasmda keltirilgan.
1- rasm. 74HC595 mikrosxemasi.
Boshqarish uchun bizga faqat uchta pin kerak: SH_CP, ST_CP va DS. SH_CP soat kiritishida mantiq paydo bo'lganda, registr DS ma'lumotlarini kiritishda bir oz o'qiydi va uni eng kichik razryadga yozadi. Keyingi impuls soat kiritishiga kelganda, hamma takrorlanadi, faqat oldin yozilgan razryad bir razryadga siljiydi va yangi kelgan razryad o'z o'rnini egallaydi. Sakkizta razryad to'lganida va to'qqizinchi soat kelganda, reestr eng kichik razryaddan yana to'ldirila boshlaydi va hamma narsa yana takrorlanadi.
Ma'lumotlar Q0 ... Q7 chiqishlarida paydo bo'lishi uchun uni "bosish" kerak. Buning uchun ST_CP kiritishiga mantiqiy birlik yuborish kerak. Ro'yxatga olish bilan nima qilsak ham, uni qayta "bosmagunimizcha", natijalardagi ma'lumotlar o'zgarmaydi.
Pin Q7 "smenali registrlarni ketma-ket (kaskadli) ulash uchun mo'ljallangan. Ushbu ulanish bilan birinchi registrdan razryadlar kaskaddagi keyingi registrga, undan keyingisiga va boshqalarga suriladi. Shunday qilib, ikkitadan iborat kaskad 8 razryadli registrlar razryadta 16 razryadli ishlaydi. Siz xohlagan mikrosxemalarni ulashingiz mumkin.
LED matritsasi bilan keyingi tajribada biz 74HC595 mikrosxemalarining kaskadli ulanishini ko'rib chiqamiz, bu tajribada biz faqat bitta mikrosxemadan foydalanamiz - 74HC595 mikrosxemasining sakkizta chiqish sakkizta matritsa segmentiga, razryadni tanlash uchun to'rtta matritsa chiqishi Arduino platasining to'rtta chiqishiga ulangan
0,1 sekundlik aniqlikda sekundomerni 0–999 soniya davomida boshlash va to'xtatish eskizini yozishni boshlaymiz. Biz Arduino SPI kutubxonasidan foydalanamiz. SPI kutubxonasidan foydalanishda Arduino pinlari 11 va 13 ishlatilganligi sababli, biz matritsa registrlarini tanlash uchun Arduino pinalari 4, 5, 6, 7 dan foydalanamiz. Eskizning tarkibi quyidagi dasturda keltirilgan.
2-rasm Sxemaning ko’rinishi
3-rasm Dastur ishlatilishi
Dastur kodi
// include the library code for LCD display:
#include
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Defining pin
#define temp A5
#define led 13
void setup()
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
pinMode(led, OUTPUT);
pinMode(temp, INPUT);
Serial.begin(9600);
lcd.clear();
lcd.print("Temperature: ");
}
//Global Variable
float pre_temp = 0;
void loop() {
float temperature = 0;
temperature = (analogRead(temp) * 0.48828125) - 49.95;
if(pre_temp != temperature)
{
lcd.setCursor(0,1);
lcd.print(" ");
}
lcd.setCursor(0,1);
lcd.print(temperature);
lcd.print(" C");
pre_temp = temperature;
}
Do'stlaringiz bilan baham: |