2-Laboratoriya ishi Mavzu: ta yetti segmentli indikatorlardan tashkil topgan razryadli matritsa. Dinamik aks ettirishni amalga oshirish (Arduinoda) Laboratoriya ishining maqsadi


Download 197.76 Kb.
Pdf ko'rish
bet2/3
Sana13.04.2023
Hajmi197.76 Kb.
#1350104
1   2   3
Bog'liq
12-laboratoriya ishi

 8.1 listing 
// yetti segmentli indikatorning a – g razryadlariga ulanish uchun
// Arduino oyoqchalarining rо‘yxati
int pins[8]={9,13,4,6,7,10,3,5};
// 0-9 raqamin chiqarish uchun qiymatlar 
byte numbers[10] = { B11111100, B01100000, B11011010,
B11110010, B01100110, B10110110,
B10111110, B11100000, B11111110,
B11110110}; 
// hozirdagi raqam qiymatini saqlash uchun о‘zgaruvchi


intnumber=0;
// yetti segmentli indikatorniki
intpindigits[4]={2,8,ll,12};
// hozirdagi raqam qiymatini saqlash uchun о‘zgaruvchi 
intdigit=0; 
voidsetup()
{
// ulanish nuqtalarini chiqish kabi о‘zgartirish
for(int i=0;i<8;i++)
pinMode(pins[i],OUTPUT) ;
for(int i=0;i<4;i++)
{pinMode(pindigits[i],OUTPUT);
digitalWrite(pindigits[i],HIGH); 


void loop()
{
number=(number+l)%10;
showNumber(number); // DS
for(int i=0;i<4;i++)
digitalWrite(pindigits[1],HIGH);
digit=random(0,4);
digitalWrite(pindigits[digit],LOW);
delay(3000);

// raqamni yetti segment indikatoriga chiqarish funksiyasi
void showNumber(int num)
{
for(int i=0;i<7;i++)
{
if(bitRead(numbers[num],7-i)==HIGH) // zajech segment
digitalWrite(pins[i],HIGH);
else // potushit segment
digitalWrite(pins[i],LOW); 




Ulanish tartibi:
1. Yetti segment indikatorini 8.2 chizmada kо‘rsatilgandek ulanadi. 
2. Arduino platasiga 8.1 listingdagi sketchni yuklash. 
3.Yetti segmentli indikatorli ekranga sonlarni chiqarilishini kuzatiladi. 
Savol tug‘iladi: qanday qilib matritsaning barcha razryadlariga bir vaqtda 
sonlarni chiqariladi? Agarda bir vaqtda barcha razryadlar tanlansa (6, 8, 9, 12 
oyoqchalarga bir vaqtda LOW berilsa), u holda barcha razryadlarda bir xil son 
bо‘ladi. Lekin har bir razryadga bir vaqtda turli sonlar berilishi kerak. Bu muammo 
dinamik aks ettirish orqali xal qilinadi. Dinamik aks ettirish deganda indikatorning 
razryadlarini inson kо‘zi sezmaydigan (ilg‘amaydigan) chastotada navbat bilan 
yonishi nazarda tutiladi. Agarda indikatorlarni navbat bilan yetarli darajada katta 
tezlikda axborotlarni aks ettirishga majburlansa, u holda inson kо‘ziga barcha 
indikatorlar о‘z axborotlarini uzluksiz aks ettirayotgandek tuyuladi. Natijada bitta 
simdan navbat bilan aks ettiriladigan axborotni uzatish mumkin bо‘ladi. Odatda 
axborotni yangilanish chastotasi 50 Gs bо‘lsa yetarlidir, lekin bu chastotani 100 Gs 
gachan oshirilsa yaxshi bо‘ladi. 
Matritsaga soniya hisoblagich sketchini yoziladi. Vaqtni sanash uchun 
Arduino ning millis() funksiyasini ishlatiladi, sketch ishlashi boshlanishidan о‘tgan 
millisekunlar sonini qaytaruvchi. Sxemaga tugmani qо‘shiladi va 0.1 aniqlikdagi 0-
999 soniyagacha sanovchi soniya hisoblagichi yaratiladi, u tugma bosilganda nolga 
о‘tib ish boshlaydi va о‘tgan vaqtni aks ettirib qayta tugma bosilganda tо‘xtaydi. 
8.2 listingda soniya hisoblagichi uchun sketch kо‘rsatilgan. 

Download 197.76 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling