۰۵-فروردین-۱۳۸۷, ۰۲:۵۰:۳۱
مي خوام چند ميكرو (حدود 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 استفاده كردم
به نظر شما مشكل سخت افزار يا نرم افزار ؟؟؟؟؟؟؟
به طوري كه هر ميكرو يك كليد دارد كه با فشردن آن ميكروي آخري كه همان 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 استفاده كردم
به نظر شما مشكل سخت افزار يا نرم افزار ؟؟؟؟؟؟؟