O‘ZBEKISTON RESPUBLIKASI
RAQAMLI TEXNOLOGIYALARI VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“O‘rnatilgan tizimlar”
fanidan
LABORATORIYA
TOPSHIRIQ №2
Bajardi: 415 -guruh talabasi
Noriyev Sirojiddin
Qabul qildi: Jurayev D.B.
Toshkent 2023
Indikator yordamida jarayon tashkil etish
Bitta raqamli 7-segmentli indikator - bu bitta raqamli raqam yoki ma'lum harflar yoki belgilarni ko'rsatish uchun ishlatiladigan elektron qurilma. U ma'lum bir naqshda joylashgan ettita LED segmentidan iborat bo'lib, sakkizinchi segment kasr uchun ishlatiladi. Etti segmentning har biri kerakli raqam yoki belgini ko'rsatish uchun mustaqil ravishda boshqariladi.
Har bir segment ko'rsatilishi yoki ko'rsatilmasligiga qarab shaffof yoki shaffof bo'lishi mumkin bo'lgan tarzda yaratilgan. Shunday qilib, etti segment barcha o'nta o'nlik raqamlarni (0-9), shuningdek, ba'zi harflar va belgilarni ko'rsatish uchun ishlatilishi mumkin.
Bitta raqamli 7 segmentli ko'rsatkichlar odatda elektron sxemalar, kalkulyatorlar, raqamli soatlar va raqamli yoki belgilarni ko'rsatish kerak bo'lgan boshqa qurilmalarda qo'llaniladi. Ular arzon narxga ega, juda kam quvvat iste'mol qiladi va raqamli sxemalar bilan oson interfeysga ega. Displey odatda yorqin va hatto masofadan turib ham o'qilishi oson. Biroq, u bir vaqtning o'zida faqat bitta raqamni ko'rsatishi mumkinligi sababli, bir nechta raqam yoki belgilarni ko'rsatish uchun bir nechta 7 segmentli displeylar kerak bo'lishi mumkin.
Dastur kodlari
int massiv[10][8]={{1,1,1,1,1,1,0,1}, //0 (abcdefgdp)
{1,0,1,0,0,0,0,1}, //1
{1,1,0,1,1,0,1,1}, //2
{1,1,1,1,0,0,1,1}, //3
{1,0,1,0,0,1,1,1}, //4
{0,1,1,1,0,1,1,1}, //5
{0,1,1,1,1,1,1,0}, //6
{1,1,1,0,0,0,0,1}, //7
{1,1,1,1,1,1,1,1}, //8
{1,1,1,1,0,1,1,1}}; //9
void setup() {
for(int i= 2;i <= 9; i++){
pinMode(i, OUTPUT);
}
Serial.begin(9600);
}
int tugma =12;
int tugma_holat =0;
int son=0;
void loop(){
int holat = digitalRead(tugma);
if (holat !=tugma_holat){
if (holat == HIGH){
natija(son);
son++;
}
else if (son == 10){
son = 0;
}
delay(50);
}
tugma_holat = holat;
}
void natija (int raqam){
int sanoq = 2;
for(int j= 0; j <=8; j++){
digitalWrite(sanoq,massiv[raqam][j]);
sanoq++;
}
}
https://wokwi.com/projects/364090440454251521
Dostları ilə paylaş: |