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
Muhammadov Og’abek
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 pot = A0;
int pinlar[] = {2, 3, 4, 5, 6, 7, 8, 9};
int btnincrement=11;
int btndicrement=10;
int x=0;
int massiv[10][8] = {{ 1, 1, 1, 1, 1, 1, 0, 1}, // 0
{ 0, 1, 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
{ 0, 1, 1, 0, 0, 1, 1, 1}, // 4
{ 1, 0, 1, 1, 0, 1, 1, 1}, // 5
{ 1, 0, 1, 1, 1, 1, 1, 1}, // 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
int holat = 0;
int tugma_holat = 0;
long sanoq;
void natija(int);
void setup() {
for (int i = 0; i <= 8; i++) {
pinMode(pinlar[i], OUTPUT);
}
pinMode(btnincrement, INPUT_PULLUP);
pinMode(btndicrement, INPUT_PULLUP);
}
void loop(){
int holat1=digitalRead(btnincrement);
int holat2=digitalRead(btndicrement);
if(holat1==0)
{
x++;
delay(300);
}
if(holat2==0)
{
x--;
delay(300);
}
if(x<0)
{
x=9;
}
if(x>9)
{
x=0;
}
natija(x);
}
void natija(int raqam) {
int pin;
for (int j = 0; j < 8; j++) {
pin = pinlar[j];
digitalWrite(pin, massiv[raqam][j]);
}
}
https://wokwi.com/projects/364092736089196545
|