توضیحات مدار:
این مدار که توسط دو میکرو ساخته شده است دارای برنامه ای به شرح زیر می باشد.
1- مدارگیرنده:
'the program for resive inferared data
'writer:mojtaba**
$regfile = "m32def.dat"
$crystal = 8000000
Config Rc5 = Pind.7
Enable Interrupts
Config Rc5 = Pind.7
'******************************************** ***********************************
Dim Address As Byte , Command As Byte
Ddra = &HFF
'**************************
Do
Getrc5(address , Command)
If Address = 12 Then
Command = Command And &B01111111
Select Case Command
Case 1:
Toggle Porta.0
Case 2:
Toggle Porta.1
Case 3:
Toggle Porta.2
Case 4:
Toggle Porta.3
Case 5:
Toggle Porta.4
Case 6:
Toggle Porta.5
Case 7:
Toggle Porta.6
Case 8:
Toggle Porta.7
End Select
End If
Loop
End
'******************************************** ************************
در ابتدا پس از معرفی میکرو و فرکانس کاری میکرو به پیکره بندی 5 rc و فعال سازی آن
می رسیم . این 5cr که به عنوان خط ورودی مادون قرمز قرار گرفته در سخت افزار به pind.7
متصل شده است.
را به عنوان خروجی پیکره بندی می کنیم وهمچنینport a پس از تعریف متغیر ها
pull up رافعال می کنیم (یعنی اتصال با یک سطح ولتاژ ورودی که در این صورت یک مقاومت فعال می شود).سپس وارد حلقه do,loop می شویم.در حلقه ابتدا 5cr را
می گیریم که این خود در بر گیرنده آدرس وفرمان می باشد.
سپس گفته شده اگر آدرس برابر با 12 که با آدرس فرستنده برابر میباشد فرمان رابا فرمان و به شکل کد های باینری 01111111در پورت مربوطه در آور.
نکته: آدرس می تواند از صفر تا 32باشد یعنی اگر فرض کنیم 32 تا تلوزیون داشته باشیم و برای آنها هم آدرسی برابر با آدرس فرستنده تعریف کرده باشیم چون آدرس فرمان ما 6 بیتی است تا 64 کانال را برای هر تلوزیون ما میگیرد.
بعد از دستور انتخابی یعنیcase یکی از کلیدهای فرستنده اگر فشار داده شود یکی از پورت ها toggle میشود.وسپس End select و پایان شرط و تمام.
مدار گیرنده
2-مدار فرستنده:
'the program for send data
'writer:mojtaba***
$regfile = "m16def.dat"
$crystal = 8000000
Dim Tog As Byte , Addr As Byte
Config Debounce = 50
Tog = 0
Addr = 12
Ddra = &H00
Porta = &HFF
Do
Debounce Pina.0 , 0 , A1
Debounce Pina.1 , 0 , A2
Debounce Pina.2 , 0 , A3
Debounce Pina.3 , 0 , A4
Debounce Pina.4 , 0 , A5
Debounce Pina.5 , 0 , A6
Debounce Pina.6 , 0 , A7
Debounce Pina.7 , 0 , A8
Loop
End
'**************************
A1:
Rc5send Tog , Addr , 1
A11:
If Pina.0 = 0 Then Goto A11
Return
'**************************
A2:
Rc5send Tog , Addr , 2
A22:
If Pina.1 = 0 Then Goto A22
Return
'**************************
A3:
Rc5send Tog , Addr , 3
A33:
If Pina.2 = 0 Then Goto A33
Return
'**************************
A4:
Rc5send Tog , Addr , 4
A44:
If Pina.3 = 0 Then Goto A44
Return
'**************************
A5:
Rc5send Tog , Addr , 5
A55:
If Pina.4 = 0 Then Goto A55
Return
'**************************
A6:
Rc5send Tog , Addr , 6
A66:
If Pina.5 = 0 Then Goto A66
Return
'**************************
A7:
Rc5send Tog , Addr , 7
A77:
If Pina.6 = 0 Then Goto A77
Return
'***************************
A8:
Rc5send Tog , Addr , 8
A88:
If Pina.7 = 0 Then Goto A88
Return
در ابتدا پس از معرفی میکرو و فرکانس کاری میکرو متغیر ها را تعریف کرده وبه سراغ پیکره بندی کلیدها می رویم که هر 50 میلی ثانیه آنها را چک می کندو مقادیر tog , addr را می دهیم.
سپس برای پورت a مثل گیرنده عمل می کنیمولی با این تفاوت که در اینجا pull up
را غیر فعال کرده ایم واز پورت به عنوان ورودی استفاده کرده ایم.
سپس وارد حلقه do,loop می شویم .در این حلقه اگر هر کدام از کلیدها صفر شود همان پایه از پورت صفر می شود وسپس تراشه فعال می گردد.
Ax:
Rc5send Tog , Addr , x
cr قرار دهد 5 را در Tog می تواند صفر تا 7 باشد و آدرس و محتویات x
دستور بعد از آن برای این نوشته شده است که اگر هر کدام از کلید ها فشار داده شود تا فشار بعدی خروجی گیرنده درهمان حالت بماند وتمام .
نکته:ورودی مدار پائین به 0C1a وصل می شود .
این مدار بدون قسمت میکرو می باشد که قسمت میکروی آن به خاطرسهولت مداری رسم نشده است .
این مدار که توسط دو میکرو ساخته شده است دارای برنامه ای به شرح زیر می باشد.
1- مدارگیرنده:
'the program for resive inferared data
'writer:mojtaba**
$regfile = "m32def.dat"
$crystal = 8000000
Config Rc5 = Pind.7
Enable Interrupts
Config Rc5 = Pind.7
'******************************************** ***********************************
Dim Address As Byte , Command As Byte
Ddra = &HFF
'**************************
Do
Getrc5(address , Command)
If Address = 12 Then
Command = Command And &B01111111
Select Case Command
Case 1:
Toggle Porta.0
Case 2:
Toggle Porta.1
Case 3:
Toggle Porta.2
Case 4:
Toggle Porta.3
Case 5:
Toggle Porta.4
Case 6:
Toggle Porta.5
Case 7:
Toggle Porta.6
Case 8:
Toggle Porta.7
End Select
End If
Loop
End
'******************************************** ************************
در ابتدا پس از معرفی میکرو و فرکانس کاری میکرو به پیکره بندی 5 rc و فعال سازی آن
می رسیم . این 5cr که به عنوان خط ورودی مادون قرمز قرار گرفته در سخت افزار به pind.7
متصل شده است.
را به عنوان خروجی پیکره بندی می کنیم وهمچنینport a پس از تعریف متغیر ها
pull up رافعال می کنیم (یعنی اتصال با یک سطح ولتاژ ورودی که در این صورت یک مقاومت فعال می شود).سپس وارد حلقه do,loop می شویم.در حلقه ابتدا 5cr را
می گیریم که این خود در بر گیرنده آدرس وفرمان می باشد.
سپس گفته شده اگر آدرس برابر با 12 که با آدرس فرستنده برابر میباشد فرمان رابا فرمان و به شکل کد های باینری 01111111در پورت مربوطه در آور.
نکته: آدرس می تواند از صفر تا 32باشد یعنی اگر فرض کنیم 32 تا تلوزیون داشته باشیم و برای آنها هم آدرسی برابر با آدرس فرستنده تعریف کرده باشیم چون آدرس فرمان ما 6 بیتی است تا 64 کانال را برای هر تلوزیون ما میگیرد.
بعد از دستور انتخابی یعنیcase یکی از کلیدهای فرستنده اگر فشار داده شود یکی از پورت ها toggle میشود.وسپس End select و پایان شرط و تمام.
مدار گیرنده
2-مدار فرستنده:
'the program for send data
'writer:mojtaba***
$regfile = "m16def.dat"
$crystal = 8000000
Dim Tog As Byte , Addr As Byte
Config Debounce = 50
Tog = 0
Addr = 12
Ddra = &H00
Porta = &HFF
Do
Debounce Pina.0 , 0 , A1
Debounce Pina.1 , 0 , A2
Debounce Pina.2 , 0 , A3
Debounce Pina.3 , 0 , A4
Debounce Pina.4 , 0 , A5
Debounce Pina.5 , 0 , A6
Debounce Pina.6 , 0 , A7
Debounce Pina.7 , 0 , A8
Loop
End
'**************************
A1:
Rc5send Tog , Addr , 1
A11:
If Pina.0 = 0 Then Goto A11
Return
'**************************
A2:
Rc5send Tog , Addr , 2
A22:
If Pina.1 = 0 Then Goto A22
Return
'**************************
A3:
Rc5send Tog , Addr , 3
A33:
If Pina.2 = 0 Then Goto A33
Return
'**************************
A4:
Rc5send Tog , Addr , 4
A44:
If Pina.3 = 0 Then Goto A44
Return
'**************************
A5:
Rc5send Tog , Addr , 5
A55:
If Pina.4 = 0 Then Goto A55
Return
'**************************
A6:
Rc5send Tog , Addr , 6
A66:
If Pina.5 = 0 Then Goto A66
Return
'**************************
A7:
Rc5send Tog , Addr , 7
A77:
If Pina.6 = 0 Then Goto A77
Return
'***************************
A8:
Rc5send Tog , Addr , 8
A88:
If Pina.7 = 0 Then Goto A88
Return
در ابتدا پس از معرفی میکرو و فرکانس کاری میکرو متغیر ها را تعریف کرده وبه سراغ پیکره بندی کلیدها می رویم که هر 50 میلی ثانیه آنها را چک می کندو مقادیر tog , addr را می دهیم.
سپس برای پورت a مثل گیرنده عمل می کنیمولی با این تفاوت که در اینجا pull up
را غیر فعال کرده ایم واز پورت به عنوان ورودی استفاده کرده ایم.
سپس وارد حلقه do,loop می شویم .در این حلقه اگر هر کدام از کلیدها صفر شود همان پایه از پورت صفر می شود وسپس تراشه فعال می گردد.
Ax:
Rc5send Tog , Addr , x
cr قرار دهد 5 را در Tog می تواند صفر تا 7 باشد و آدرس و محتویات x
دستور بعد از آن برای این نوشته شده است که اگر هر کدام از کلید ها فشار داده شود تا فشار بعدی خروجی گیرنده درهمان حالت بماند وتمام .
نکته:ورودی مدار پائین به 0C1a وصل می شود .
این مدار بدون قسمت میکرو می باشد که قسمت میکروی آن به خاطرسهولت مداری رسم نشده است .
دیدگاه