Mikrokontrollerni dasturlash


Bitta bitni olish uchun kod quyidagicha


Download 34.27 Kb.
bet3/3
Sana12.10.2023
Hajmi34.27 Kb.
#1700868
1   2   3
Bog'liq
89S51 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_();
}
Download 34.27 Kb.

Do'stlaringiz bilan baham:
1   2   3




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