ارتباط بین دو میکرو با یک سیم
یکی از پروتکل ها در avr پروتکل uart (سریال ) می باشد.در این روش بین دو میکرو توسط 2 سیم به هم اتصال پیدا می کنند که در این حالت دو میکرو می توانند به یکدیگر اطلاعات رد و بدل کنندو اگر می خواهید ارتباط یک طرفه باشد به یک سیم بیشتر نیاز نیست.
منظور از یک طرفه این است که یک میکرو فقط اطلاعات به میکرو دوم بفرستد و میکرو دوم ان را دریافت کند و دیگر میکرو دوم اطلاعاتی به میکرو اول نفرستد.
و اما خود
uart بر دو نوع 1:سخت افزاری 2: نرم افزاری تقسیم می شود.
در نوع سخت افزاری پایه ای که اول از طرف کارخانه مشخص شده است می تواند اطلاعات را ارسال کند و در نوع نرم افزاری خودمان پایه ارسال دیتا به صورت سریال را مشخص می کنیم.
در میکرو های avr 2 پایه وجود دارد که علاوه بر پورت ورودی و خروجی به عنوان پورت سریال استفاده می شود که دردیتا شیت میکرودر کنار این پورت ها RXD و TXD نوشته شده است.
مثلا در میکرو ATMEGA8 به صورت زیر مشخص شده است.
سالک: عکس در سایت نبود.
پایه ای که با نام RXD مشخص شده است وظیفه دریافت اطلاعات را بر عهده دارد و پایه ای که با نام TXD مشخص شده است وظیفه ارسال اطلاعات را بر عهده دارد.
ما می توانیم اطلاعات را بین
میکرو و کامپیوتر ارسال کنیم که خود بحث جداگانه ای است. اما طریقه نوشتن برنامه در میکرو ها.
مداری که طراحی کرده ام در ای سی فرستنده مقدار پورت ورودی توسط میکرو خوانده می شود که برای تغییر مقدار پورت از دیپ سوییچ استفاده کردهایم و به میکرو دوم که گیرنده می باشد ارسال می شود و میکرو دوم مقدار دریافتی را بر روی lcd نشان می دهد.
وشماتیک مدار در زیر اورده شده است.
سالک: عکس در سایت نبود.
برنامه ای سی فرستنده:
PHP:
'Tx
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 5000
Dim A As Byte
Config Portb = Input
Portb = 255
A = 0
Main:
Do
A = Pinb
Printbin A
Loop
برنامه بالا برنامه ای سی فرستنده اطلاعات (tx)می باشد.که ابتدا نوع میکرو مشخص شده سپس در خط دوم فرکانس میکرو تعیین شده است.
در خط بعد عبارتی به صورت baud = 5000 که این خط مقدار اطلاعات ارسال شده بر حسب بیت بر ثانیه را مشخص می کند که باود ریت نامیده می شود.که باید توجه داشت مقدار فرکانس و باود ریت در میکرو فرستنده و گیرنده باید یکی باشد تا اطلاعات رد و بدل شود.
برای ارسال اطلاعات از دستور Printbin
استفاده می شود مثلا برای ارسال یک متغییر به صورت زیر دستور را می نویسیم
برنامه ای سی گیرنده(Rx ):
PHP:
'Rx
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 5000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , _
Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
Dim A As Byte
A = 0
Cls
Cursor Off
Lcd "Hello"
Locate 2 , 1
Lcd "WWW.YAZDKIT.COM "
Wait 2
Cls
Ali:
Home
Lcd "Data:" ; A ; " "
Locate 2 , 1
Lcd "www.yazdkit.com"
Inputbin A
Goto Ali
در برنامه گیرنده همانطور که گفتم مقدار فرکانس و باودریت مانند فرستنده می باشد.
اما برای دریافت اطلاعات از دستور Inputbin می کنیم و برای اینکه اصلاعات در متغییری ذخیره شود از دستور زیر استفاده می کنیم.
ارتباط بین دو میکرو با یک سیم یکی از پروتکل ها در avr پروتکل uart (سریال ) می باشد.در این روش بین دو میکرو توسط 2 سیم به هم اتصال پیدا می کنند که در این
www.micro01.blogfa.com