Mikrokontrollerni dasturlash
Bitta bitni olish uchun kod quyidagicha
Download 34.27 Kb.
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling