ارتباط سريال 1WIRE
ويژگي هاي اين پروتکل به شرح زير است:
1-
در اين ارتباط از يک همرا با گراند و VCC ، که درمجموع سه سيم مي شود ، براي انتقال ديتا استفاده مي شود.
2-
بالا ترين فرکانس کلاک 2 کيلو هرتز است.
3-
در اين ارتباط ميتوان تعداد دو وسيله ي اصلي و تعدا د نامحدود وسيله جانبي را به هم متصل کرد.
4-
کليه خطوط بايد با مقامت 4.7 کيلو به vcc متصل شوند.
با دستور زير باس 1 WIRE مشخص مي شود:
Pin : نام پايه ي دلخواه ميکرو است که به عنوان وردي وخروجي داده 1 WIRE استفاده مي شود.
(اين پايه بايد با پايه اي که در قسمت compiler setting بسکام مشخص شده يکي باشد)(پايه اي که در بالا مشخص مي شود ، باس اصلي ميباشد که به دستگاه ديگر متصل است )
با دستور زير ميتوان داده را ازباس 1 WIRE خواند:
کد php:
var2 = 1WREAD( [ bytes] )
کد php:
var2 = 1WREAD( bytes , port , pin)
دستور اول داده را از باس اصلي و دستور دوم داده را از ديگر دستگاه هاي جانبي ميخواند
var2 : يک متغير است که داده خوانده شده از باس در آن ريخته مي شود ، شما همچنين ميتوانيد معين کنيد چند بايت از باس خوانده شود ( [ bytes] ).
Port :نام پورتي است که دستگاه جانبي به آن متصل است .
Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است مانند :
با دستور زير ميتوان داده را در باس 1 WIRE نوشت:
کد php:
1WWRITE var1 , bytes , port , pin
دستور اول داده را در باس اصلي و دستور دوم داده را در باس ديگر دستگاه هاي جانبي ميريزد.
Var1 : متغير يا عدد ثابتي است که در باس نشته مي شود ، شما همچنين ميتوانيد معين کنيد چند بايت در باس نوشته شود
( [ bytes] ). ( تعداد بايت خوانده شده و نوشته در گذر گاه بايد با هم برابر باشد ،در غير اينصورت خطا بوجود ميايد)
Port : نام پورتي است که دستگاه جانبي به آن متصل است .
Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است مانند :
با دستور زير باس 1 WIRE ريست مي شود ( داده هاي موجود در آن پاک مي شود):
دستور اول باس اصلي ودستور دوم ديگر باس ها را ريست ميکند
Port :نام پورتي است که دستگاه جانبي به آن متصل است .
Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است و بايد ريست شود
مانند :
با دستور زير شماره دستگاه متصل شده به باس 1 WIRE خوانده مي شود :
کد php:
var2 = 1WIRECOUNT( port , pin)
var2 : يک متغير از جنس word يا integer است که داده خوانده شده از باس در آن ريخته مي شود .
Port :نام پورتي است که دستگاه جانبي به آن متصل است .
Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است مانند :
با دستور زير ميتوان داده را از دستگا هاي که به صورت سريال به يک باس متصل شده اند را خواند:
کد php:
var2 = 1WSEARCHFIRST( port , pin)
کد php:
var2 = 1WSEARCHNEXT( port , pin)
var2 : يک متغير از جنس long است که داده خوانده شده از باس در آن ريخته مي شود .
Port :نام پورتي است که دستگاه جانبي به آن متصل است .
Pin: نام پايه ي پورتي است که دستگاه به آن متصل شده است .
مثال :
کد php:
$regfile = "m16def.dat" : $crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5 , Rs = Pind.0 , E = Pind.1
Config 1wire = Portb.0 'use this pin
Dim A As Byte , C As Byte
Wait 1
1wreset
1wwrite &H33
Do
A = 1wread(8 , Pinb , 0)
Locate 1 , 1 : Lcd Hex(a)
Wait 1 : Incr C
1wwrite C , 8 , Pinb , 0
Locate 2 , 1 : Lcd C
Loop
End
منبع :
http://www.iranled.com/forum/showthread.php?tid=10869