ايران ويج

نسخه‌ی کامل: ارتباط سريال بين چند ميكرو و دستورات سريال
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
مي خوام چند ميكرو (حدود 20 تا ) را با ارتباط سريال به هم وصل كنم

به طوري كه هر ميكرو يك كليد دارد كه با فشردن آن ميكروي آخري كه همان MASTER است متوجه شود

كه كليد كدام ميكرو ها فشرده شده و آن را بر روي LCD نمايش دهد

حالا من مي خوام به هر ميكرو يك عدد نسبت بدم مثلا ميكرو اولي را برابر 0000000000000001 قرار ميدم كه اگر كليد مربوط به آن فشرده بشه ان عدد را به ميكروي دوم پاس بده

و اگر كليد آن فشار داده نشود عدد 0000000000000000 را به ميكرو بغلي پاس بده

و اگر كليد ميكروي دومي فشار داده بشه عدد 0000000000000010 را به عددي كه ميكرو اول پاس داده اضافه مي كنه در غير اين صورت

همون عددي را كه از ميكرو اول اومده به سومي پاس ميده و.................

نمي دونم تونستم منظورمو برسونم يا نه ؟؟؟؟؟؟؟؟


حالا
در مورد دو دستور زير هر چي مي دونيد بگيد

حقيقثش رفتم تو HELP ولي از اونجا كه زبانم تعريفي نداره چيز زيادي دستگيرم نشد

در ضمن بين هر ميكرو حدود 4 متر فاصله هست

SERIN var , bts , port , pin, baud , parity , dbits , sbits



SEROUT var , bts , port , pin, baud , parity , dbits , sbits


راستي برنامه زير رو هم نوشتم ولي جواب نگرفتم
$regfile "M32DEF.DAT"
$crystal = 8000000

'*************************

Config Portd.0 = Input
Config Portd.1 = Output

Config Portb.3 = Input

'*************************
Dim S As String * 16
Dim R As String * 16
Dim S1 As Word
Dim S2 As Word
S1 = 0000000000000001
S2 = 0000000000000000
Main:

Do

If Pinb.3 = 0 Then

S = Str(s1)
Gosub L1

Else

S = Str(s2)
Gosub L1

End If

Wait 1


Loop

L1:


Serout S , 0 , D , 1 , 9600 , 0 , 16 , 1

Return
از لحاظ سخت افزاري من كريستال وصل نكردم

و براي تغذيه فقط از پايه هاي 10 و11 استفاده كردم

به نظر شما مشكل سخت افزار يا نرم افزار ؟؟؟؟؟؟؟
اینجوری کار خیلی منطقی به نظر نمی یاد در کل باید اینجوری باشه
هر میکرو یه آدرس داره و هر دستوری که می یاد 2 بایت بایت اول آدرس بایت دوم دستور مورد نظر میکرو که آدرس مربوط به اون می شه فعال شده و جواب رو بر می گردونه میکروی اصلی هم مدارم در حال خوندن 20 میکروی مربوطه هست تا اطلاعاتشون رو داشته باشه اینجوری هیچ وفت 2 تا میکرو باهم ارسال نمی کنن
سلام ایا تو بیسکام دستوری هست که بشه باهاش در هنگام اجرای برنامه هروقت عددی مثل 1 یا2....6 از پورت کامپیوتر که توسط max 232 به پایه های rxd ,txd میکرو mega32 متصل هستندبدون اینکه اجرای دستورات (تا رسیدن اطلاعات از پورت سریال کامپیتر) متوقف شود خواند.یعنی مثل دستورات a=waitkey() عمل نکند ومیرو تا رسیدن عدد صبر نکند.
اخه من می خوام میکرو هر لظه دما رو بخونه و بده به کامپیوتر و تو labview نمایش بده .از طرفی labview اگه عدد 1 رو فرستاد به میکرو .portd.0 ست بشه .اگه 2 رو فرستاد ریست بشه.اگه 3 رو فرستاد portd.1 ست بشه و.....تا6 عدد