Rivojlantirish vazirligi muhammad al xorazmiy nomidagi toshkent axborot texnologiyalari universiteti


Bitta bitni olish uchun kod quyidagicha



Yüklə 236,21 Kb.
səhifə5/8
tarix14.10.2023
ölçüsü236,21 Kb.
#155128
1   2   3   4   5   6   7   8
Jahongir-Ornatilgan tizimlar Mustaqil ish

Bitta bitni olish uchun kod quyidagicha:
sck=1;
delay(1);
_nop_();
data=data<<1;
if(miso==1)
data++;
sck=0;
delay(1);
_nop_();

Kodlari Cont'd..
Quyida maqsadli boshqaruvchiga va undan bitta bitni yuborish va qabul qilish kodi keltirilgan
sck=0;
bit = byte/128;
byte=byte<<1;
mosi=bit;
sck=1;
delay(1);
_nop_();
data=data<<1;
if(miso==1)
data++;
sck=0;
delay(1);
_nop_();

Keling, sakkiz bitdan iborat butun bayt maqsadli mikrokontrollerga va undan ketma-ket qanday yuborilishini va qabul qilinishini ko'rib chiqaylik.



rasm. 4: 8051 mikrokontroller yonib esa mosi, SCK va MISO ignalar orqali uzatiladi bayt ko'rsatgan signal diagrammasi
Yuqoridagi vaqt diagrammasi baytning ketma-ket qanday yuborilishi va qabul qilinishini ko'rsatadi. Ehtiyotkorlik bilan kuzatish shuni ko'rsatadiki, bitta bitni uzatish va qabul qilish 8 marta takrorlanganda bayt uzatiladi va maqsadli mikrokontrollerdan olinadi. Ta'kidlash kerak bo'lgan muhim nuqta-bu birinchi bo'lib yuborilgan va qabul qilingan baytning eng muhim biti (MSB).
Ketma-ket ISP rejimidan foydalangan holda bitta baytni uzatish va qabul qilish algoritmi quyidagicha.
1. 128 ga bo'lish orqali yuboriladigan ma'lumotlardan MSB ni chiqarib oling. Bunday holda yuboriladigan ma'lumotlar "bayt"o'zgaruvchisida saqlanadi.
2. Bayt tomonidan yuboriladi chap shift 1 keyingi muhim bit MSB bo'ladi, shunday qilib,.
3. Bitni maqsadli mikrokontrollerning MOSI piniga yuklang.
4. CK qiladi 1.
5. 30 ms kechikishni ta'minlang.
6. Maqsadli mikrokontrollerdan keladigan tasdiqlash ma'lumotlari "ma'lumotlar"o'zgaruvchisida qabul qilinadi.
7. Maqsadli mikrokontrollerdan olinadigan MSB qabul qilinishi uchun "ma'lumotlar" o'zgaruvchisini 1 ga chapga siljiting.
8. Maqsadli mikrokontrollerning MISO pinini tekshiring. Agar u "1" bo'lsa, ma'lumotlar o'zgaruvchisini 1 ga oshiring.
9. SCK 0 qiling.
10. 30 ms kechikishni ta'minlang.
11. 1 baytni yuborish va qabul qilish uchun 10-1 qadamlarni sakkiz marta takrorlang
Bitta baytni yuborish va qabul qilish kodi quyidagicha:
sck=0;
for(i=0;i<8;i++)
{
bit = byte/128;
byte=byte<<1;
mosi=bit;
sck=1;
delay(1);
_nop_();
data=data<<1;
if(miso==1)
data++;
sck=0;
delay(1);
_nop_();
}


Yüklə 236,21 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin