9-Laboratoriya ishi
74NS595 suruvchi registr mikrosxemasi.4 razryadli matritsani boshqarish
Ushbu tajribada biz Arduino 74HC595 bilan qanday ishlashini ko'rib chiqamiz, bu 4-bitli yetti segmentli matritsani haydash uchun Arduino pinlari sonini kamaytirishga imkon beradi.
Kerakli komponentlar:
• Arduino UNO R3 platformasi;
• sxemalarni yig’ish uchun maket;
• 4-bitli yetti segmentli matritsa;
• 74HC595 mikrosxemasi;
• 510 Ohm qarshilik - 7 dona;
• Ulash uchun similar.
9.1-Rasm. Chip 74HC595
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 chipidan foydalanish mumkin. Chip 74HC595 - ketma-ketli kirish, ma'lumotlarning ketma-ket yoki parallel chiqishi bilan sakkiz-bitli o'tish registri, flip-flop va uch holatli chiqish. 74HC595 mikrosxemasining pin tayinlanishi 9.1-rasmda keltirilgan.
Boshqarish uchun bizga faqat uchta pin kerak: SH_CP, ST_CP va DS. SH_CP soat kiritishda mantiq paydo bo'lganda, registr DS ma'lumotlarini kiritishda bir oz o'qiydi va uni eng kichik bitga yozadi. Keyingi impuls soat kiritilishida kelganda, hamma takrorlanadi, faqat oldin yozilgan bit bitga siljiydi va yangi kelgan bit o'z o'rnini egallaydi. Barcha sakkiz bitlar to'lganida va to'qqizinchi soat zarbasi kelganda, reestr eng kichik bitdan yana to'ldirila boshlaydi va hamma yana takrorlanadi.Q0 ... Q7 chiqishlarida ma'lumotlar paydo bo'lishi uchun siz uni "bosishingiz" kerak. Buning uchun siz ST_CP kiritilishiga mantiqiy birlikni yuborishingiz kerak. Ro'yxatga olish bilan nima qilsak ham, uni qayta "bosmagunimizcha" chiqishlardagi ma'lumotlar o'zgarmaydi.
Pin Q7 "smenali registrlarni ketma-ket (kaskadli) ulash uchun mo'ljallangan. Ushbu ulanish bilan birinchi registrdan bitlar kaskaddagi keyingi registrga, undan keyingisiga suriladi va hokazo. Shunday qilib, ikkita 8-bitli registrlar kaskadi ishlaydi. Bitta 16-bit sifatida. Siz xohlagancha 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 pimi sakkizta matritsa segmentiga ulangan, bitni tanlash uchun to'rtta matritsali pin. Arduino platasining to'rtta pimiga ulangan, ulanish sxemasi uchun 9.2-rasmga qarang.
9.2.Rasm 74HC595 smenali registrlardan foydalangan holda 4 xonali yetti segmentli displey uchun ulanish sxemasi
0,1 sekundlik aniqlikda sekundomerni 0–999 soniya davomida boshlash va to'xtatish eskizini yozishni boshlaymiz. Biz Arduino SPI kutubxonasidan foydalanamiz. SPI kutubxonasi Arduino pinlari 11 va 13 dan foydalanganligi sababli, biz matritsa registrlarini tanlash uchun Arduino pinlari 4, 5, 6, 7 dan foydalanamiz, eskizning tarkibi 9.1-ro'yxatda keltirilgan.
// SPI kutubxonasini ulash
#include
// пин SS
int pin_spi_ss=8;
// 0-9 raqamlarini ko'rsatish uchun qiymatlar
bayt raqamlari [10] = {B11111100, B01100000, B11011010,
B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110};
// joriy raqamning qiymatini saqlash uchun o'zgaruvchan
int number=0;
int number1=0;
int number2=0;
// yetti segment ko'rsatkichi
int pindigits[4]={4,5,6,7};
// joriy bitni saqlash uchun o'zgaruvchan
int digit=0;
//
unsigned long millis1=0;
void setup()
{
SPI.begin();
// Pinlarni chiqish sifatida sozlangpinMode(pin_spi_ss,OUTPUT);
for(int i=0;i<4;i++)
{pinMode(pindigits[i],OUTPUT);
digitalWrite(pindigits[i],HIGH);
}
}
void loop()
{
if(millis()-millis1>=100)
{millis1=millis1+100;
number=number+1;
if(number==10000)
number=0;
}
number1=number;
for(int i=0;i<4;i++)
{
number2=number1%10;
number1=number1/10;
showNumber(number2,i);
for(int j=0;j<4;j++)
digitalWrite(pindigits[j],HIGH);
digitalWrite(pindigits[i],LOW);
delay(1);
}
}
// yetti segmentli ko'rsatkich bo'yicha raqamni ko'rsatish funktsiyasi
void showNumber(int num,int dig)
{
byte maska;
digitalWrite(pin_spi_ss,LOW);
if(dig==1) maska=1;
else maska=0;
SPI.transfer(numbers[num]+maska);
digitalWrite(pin_spi_ss,HIGH);
}
}
Hisobot mazmuni
1. Laboratoriya ishi mavzusi va ishdan maqsad.
2. Mashg’ulot bo’yicha nazariy bilim va ko’nikmalar.
3. Topshiriq bo’yicha berilgan sxema ko’rinishi va dasturini elektron shaklda tayyorlang va xisobotga kiriting.
4. Dastur natijasini kiriting.
Do'stlaringiz bilan baham: |