۱۶-آبان-۱۳۸۹, ۱۲:۲۲:۳۲
۱۶-آبان-۱۳۸۹, ۱۹:۰۶:۲۳
سلام
اینم برنامه ای که با یکی ازش جواب گرفتم و منم برای 5تا ماژول بهش نیاز دارم و بلد نیستم چیکار کنم اگه میشه این سورسو تکمیل کنین
ممنون
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = _
Portb.4 , E = Portb.0 , Rs = Portb.5
Config Lcd = 16 * 2
Dim A As Byte
Dim B As Byte
Dim C As Word
Enable Interrupts
Cursor Off
Cls
Do
Printbin 0
Waitms 50
Printbin 84
A = Waitkey()
B = Waitkey()
C = A * 256
C = C + B
Locate 1 , 1 : Lcd "Range1=" : Lcd C : Lcd "Cm "
End If
Loop
End
اینم برنامه ای که با یکی ازش جواب گرفتم و منم برای 5تا ماژول بهش نیاز دارم و بلد نیستم چیکار کنم اگه میشه این سورسو تکمیل کنین
ممنون
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = _
Portb.4 , E = Portb.0 , Rs = Portb.5
Config Lcd = 16 * 2
Dim A As Byte
Dim B As Byte
Dim C As Word
Enable Interrupts
Cursor Off
Cls
Do
Printbin 0
Waitms 50
Printbin 84
A = Waitkey()
B = Waitkey()
C = A * 256
C = C + B
Locate 1 , 1 : Lcd "Range1=" : Lcd C : Lcd "Cm "
End If
Loop
End
۱۸-آبان-۱۳۸۹, ۰۴:۳۹:۱۳
این واسه اینکه دو تا وصل کنی !
فکر کنم روال کار رو متوجه بشی !
دیگه پنج تا رو خودت تعمیم بده !!!
کد php:
$regfile = "m8def.dat" : $crystal = 12000000 : $baud = 9600
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Portb.5
Config Lcd = 16 * 2 : Cursor Off : Cls
Dim A As Byte , B As Byte , C As Word
Enable Interrupts
Open "comd.3:9600,8,n,1" For Output As #1
Open "comd.2:9600,8,n,1" For Input As #2
Do
Printbin 0
Waitms 50
Printbin 84
A = Waitkey()
B = Waitkey()
C = A * 256
C = C + B
Home : Lcd "Range1=" : Lcd C : Lcd "Cm "
Printbin #1 , 0
Waitms 50
Printbin #1 , 84
A = Waitkey(#2)
B = Waitkey(#2)
C = A * 256
C = C + B
Home L : Lcd "Range2=" : Lcd C : Lcd "Cm "
Loop
فکر کنم روال کار رو متوجه بشی !
دیگه پنج تا رو خودت تعمیم بده !!!
۱۸-آبان-۱۳۸۹, ۱۰:۳۸:۴۵
سلام
دستت درد نکنه
دستت درد نکنه
۲۶-آبان-۱۳۸۹, ۱۷:۵۹:۳۵
دوستان سلام
ميخواستم ببينم سخت افزار را بايد چجوري وصل كرد ؟
فقط پورت سريال و تغذيه را وصل كنم حله ؟
اين دستور open را ميشه بيشتر توضيح بدين ؟
من ميخوام از 3 تا srf02 يا بيشتر استفاده كنم . تازه كار هم هستم در باره برنامه بسكام ممنون ميشم اگه توضيح كاملي بهم بدين
ميخواستم ببينم سخت افزار را بايد چجوري وصل كرد ؟
فقط پورت سريال و تغذيه را وصل كنم حله ؟
اين دستور open را ميشه بيشتر توضيح بدين ؟
من ميخوام از 3 تا srf02 يا بيشتر استفاده كنم . تازه كار هم هستم در باره برنامه بسكام ممنون ميشم اگه توضيح كاملي بهم بدين
۲۷-آبان-۱۳۸۹, ۰۰:۱۶:۵۱
فقط پورت سریال و تغذیه کافیه !
open پورت سریال جانی واست میاره !
البته این دستور کارهای زیادی می کنه ولی استفاده ما اینجا ازش اینه !!!
برنامه قبل من رو ببینی روالش رو متوجه میشی !
open پورت سریال جانی واست میاره !
البته این دستور کارهای زیادی می کنه ولی استفاده ما اینجا ازش اینه !!!
برنامه قبل من رو ببینی روالش رو متوجه میشی !
۲۷-آبان-۱۳۸۹, ۱۵:۱۷:۱۴
(۲۷-آبان-۱۳۸۹, ۰۰:۱۶:۵۱)Gawky نوشته است: [ -> ]فقط پورت سریال و تغذیه کافیه !
open پورت سریال جانی واست میاره !
البته این دستور کارهای زیادی می کنه ولی استفاده ما اینجا ازش اینه !!!
برنامه قبل من رو ببینی روالش رو متوجه میشی !
دستت درد نكنه برنامه را كمي متوجه شدم .
حالا 1 چيزي خروجي اين ماژول به چه صورته ؟ يعني چجوري خروجي را برميگردونه تا بتونيم بر اساس اون خروجي برنامه 1 عمل ديگه را بهش بديم ؟
متوجه شدم بر اساس سانتي متر هست خروجيش ، يعني اكه 1 شئ در 10 سانتي متري اين ماژول ظاهر بشه عدد 10 را برميگردونه به ميكرو كه يعني 1 جسم با من 10 سانت فاصله داره ؟
ببين من اين قسمت برنامه را يكمي قاطي كردم اگه اشكال نداره برام توضيح ميدي ؟
کد:
Printbin 0
Waitms 50
Printbin 84
A = Waitkey()
B = Waitkey()
C = A * 256
C = C + B
Home : Lcd "Range1=" : Lcd C : Lcd "Cm "
Printbin #1 , 0
Waitms 50
Printbin #1 , 84
A = Waitkey(#2)
B = Waitkey(#2)
C = A * 256
C = C + B
Home L : Lcd "Range2=" : Lcd C : Lcd "Cm "
توي خط اول امدي ادرس ماژول اول را دادي بعد گفتي به صورت سانتي متر بخونه بعد مقدار هايي را كه پورت سريال برميگردونه توي متغير a و b ذخيره كن درسته ؟ اون عمليات ضرب و جمع را كه انجام دادي كه بعد توي متغير c ذخبره كردي براي چيه ؟
توي قسمت بعد امدي ادرس ماژول دوم را 1 دادي ؟ قسمت دوم را اگه توضيح مختصري بدي ممنونت ميشم
۲۷-آبان-۱۳۸۹, ۱۶:۰۷:۲۲
مهندس ما 16 بیات دریافت کردیم که فاصله بر هست سانتی متر هستش !
یعنی d0 تا d15
هشت بیت بالا تو یه متغیر و هشت بیت پایین هم تو یه متغیر دیگه ذخیره شده !
ضرب در 256 یعنی هشت بار شیفت به چپ برای اینکه بیت ها سرجاش خودشون باشه و با بین های پایین بعدش جمع شده و نشون داده میشه !!!
مثلا واسه 300 سانتی متر دیتای زیر دریافت میشه !
0000000100101100
که البته در دو بایت جدا ارسال میشه !
واسه شروع این بایت ارسال شده
00000001
و بعدش این :
00101100
که خوب با این دستوران این دو تا کنار هم می ذاریم :
که بایت بالا تو a و بایت پایین تو B هستش !!
چون پورت سریال جانبی استفاده کردیم باید واسش یه ادرس تعیین کنیم که تو برنامه نشون بدیم می خوایم به اون آدرس دیتا بفرستیم یا بگیریم !!
یعنی d0 تا d15
هشت بیت بالا تو یه متغیر و هشت بیت پایین هم تو یه متغیر دیگه ذخیره شده !
ضرب در 256 یعنی هشت بار شیفت به چپ برای اینکه بیت ها سرجاش خودشون باشه و با بین های پایین بعدش جمع شده و نشون داده میشه !!!
مثلا واسه 300 سانتی متر دیتای زیر دریافت میشه !
0000000100101100
که البته در دو بایت جدا ارسال میشه !
واسه شروع این بایت ارسال شده
00000001
و بعدش این :
00101100
که خوب با این دستوران این دو تا کنار هم می ذاریم :
که بایت بالا تو a و بایت پایین تو B هستش !!
کد php:
C = A * 256
C = C + B
چون پورت سریال جانبی استفاده کردیم باید واسش یه ادرس تعیین کنیم که تو برنامه نشون بدیم می خوایم به اون آدرس دیتا بفرستیم یا بگیریم !!
۲۷-آبان-۱۳۸۹, ۱۶:۵۵:۳۱
ممنون دستت درد نكنه فهميدم.
توي خط اول برنامه منظورت از #1 همون ادرس دوم سنسور دومي هست يعني ادرس دوم بايد جايگزين اين عدد بشه يا اين عدد همون ادرس هست ؟
( ببخشيد اگه گيراييم يكم پائين )
کد php:
Printbin #1 , 0
Waitms 50
Printbin #1 , 84
A = Waitkey(#2)
B = Waitkey(#2)
C = A * 256
C = C + B
توي خط اول برنامه منظورت از #1 همون ادرس دوم سنسور دومي هست يعني ادرس دوم بايد جايگزين اين عدد بشه يا اين عدد همون ادرس هست ؟
( ببخشيد اگه گيراييم يكم پائين )
۲۷-آبان-۱۳۸۹, ۱۷:۱۵:۳۶
خوب آدرس ارسال و دریافت فرق داره !
من 1 رو واسه ارسال و 2 رو واسه دریافت در نظر گرفتم !
من 1 رو واسه ارسال و 2 رو واسه دریافت در نظر گرفتم !
کد php:
Open "comd.3:9600,8,n,1" For Output As #1
Open "comd.2:9600,8,n,1" For Input As #2
۲۷-آبان-۱۳۸۹, ۱۸:۴۵:۱۴
(۲۷-آبان-۱۳۸۹, ۱۷:۱۵:۳۶)Gawky نوشته است: [ -> ]خوب آدرس ارسال و دریافت فرق داره !
من 1 رو واسه ارسال و 2 رو واسه دریافت در نظر گرفتم !
کد php:Open "comd.3:9600,8,n,1" For Output As #1
Open "comd.2:9600,8,n,1" For Input As #2
اره عزيز اين را فهميدم .
مگه شما نميگي ادرس پيش فرض ماژول هاي srf02 ها 0 هست و اول بايد به اونها 1 ادرس اختصاص بدي ؟ با اين دستوري كه گفته بودي ؟
printbin 0
printbin 160
printbin 0
printbin 170
printbin 0
printbin 165
printbin 5
اينا همون دستوراتي هستن كه گفتي اگه بخوام ادرس يك ماژول را از صفر به 5 تغيير بديم .
خب حالا منظوره من اينه كه اين دو تا سنسوري كه گذاشتي از 1 ادرس خونده ميشن ( هردوتاشون صفر هستن ).
اگه سنسور دوم ادرسش مثلا 5 باشه اونوقت برنامه چه تغييري ميكنه ؟