دستورات کار با پایه ها و پورت ها
پیکر بندی پورت میکروکنترلر به عنوان ورودی یا خروجی
1 2 3 |
Config portx = state Config pinx.y = state |
برای معرفی یک پورت یا حتی یک پایه به میکرو استفاده می شود.
State : حالت پورت ( input – output )
X : شماره پورت
Y : شماره پایه
نکته: زمان خواندن از پورت از pinx.y و زمان نوشتن در پورت از portx استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
Config porta = input , پورت به عنوان ورودی Config pinb.0 = output , پایه به عنوان خروجی Config pinb.7 = input , پورت به عنوان ورودی Cpnfig portc = output , پورت به عنوان خروجی Dim a as bit Dim b as byte Porta = 225 B = 1 Portb.0=b , portb.0=1 Portc=255 End |
یک کردن پایه مورد نظر در میکروکنترلر AVR به زبان بیسیک BASIC
1 |
Set pin / var.x |
با این دستور می توان یک بیت از متغیر یا یک پین از پورت ها را یک کرد.
1 2 3 4 5 6 7 8 9 10 |
Config portc = output Dim a as bit Dim b as byte Set a , a= 1 Set b.0 , b=1 Set portc.7 , portc = 128 Set b , b = 1 Set portc , portc = 1 End |
صفر کردن پایه مورد نظر در میکروکنترلر AVR به زبان بیسیک BASIC
1 |
Reset pin / var.x |
با این دستور در زبان برنامه نویسی بیسیک می توان یک بیت از متغیر یا یک پین از پورت ها را صفر کرد.
1 2 3 4 5 6 7 8 9 |
Config portc = output Dim a as bit Dim b as byte B = 49 Set portc.7 , portc = 128 Reset b , b=0 Reset portc , portc = 0 End |
معکوس کردن وضعیت پایه میکروکنترلر AVR در زبان بیسیک BASIC
1 |
Toggle pin / var.x |
با این دستور می توان یک بیت از متغیر یا یک پین از پورت ها را معکوس کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Config portc = output Dim a as bit Dim b as byte B= 10 Toggle portc , portc = 255 Toggle b , b = 245 Toggle portc , portc = 0 A= 1 Toggle a , a= 0 b.0=1 toggle b.0 , b=0 end |
انتظار برای صفر یا یک شدن یک پایه از میکروکنترلر AVR
1 |
Bitwait pin , set / reset |
این دستور تا زمانی که یک بیت و یا یک پین به دلخواه یک یا صفر ( set / reset ) نشود برنامه را در همان خط متوقف می کند.
1 2 3 4 5 6 7 8 |
Config portc = input Dim a as bit Dim b as byte Bitwait pinc.4 , reset Bitwait a , reset Bitwait b.4 , set End |
پیکر بندی کلید برای میکروکنترلر AVR به زبان بیسیک BASIC
1 |
Debounce pinx.y , state , label [ , sub] |
برای اتصال یک کلید به میکرو به صورت شرطی و با سرکشی اتوماتیک , به کار می رود.
Pinx.y : پایه ای که کلید به آن متصل است.
State : شرط کلید ( 0 یا 1 بودن کلید ).
Label : بر چسب مورد نظر برای پرش در صورتی که شرط برقرار باشد.
Sub : در صورت نیاز به پرش به بر چسب زیر برنامه استفاده می شود ( اختیاری)
نکته: میکرو به صورت اتوماتیک هر 25ms کلید را سرکشی می کند و در صورت قبولی شرط به برچسب پرش می کند.
نکته : زمان سرکشی را می توان با دستور زیر تغییر داد.
1 |
Config debounce = x |
X : مدت زمان تاخیر در هر سر کشی به میلی ثانیه
1 2 3 4 5 6 7 8 9 10 |
Config debounce = 100 Dim a as byte Debounce pinc.0,0,lable1, sub Debounce pin.7,1, lable2, sub End Lable1: Set a.4 Lable2: Reset a.4 |
ایجاد پالس در خروجی پایه میکروکنترلر AVR به زبان بیسیک BASIC
1 |
Pulseout port , pin , period |
با این دستور می توان پالسی با فرکانس دلخواه بر روی پایه دلخواه میکرو ایجاد کنید.
Port : پورت مورد نظر
Pin : پایه مورد نظر پورت
Period : بر چسب میکرو ثانیه مدت زمان صفر یا یک بودن پایه ( اگر در حالت اول آن پایه صفر بود , period مدت زمان 1 بودن پایه را مشخص می کند و بر عکس ( مدت زمان معکوس period به نسبت فرکانس کار میکرو خواهد بود برای نمونه با فرکانس 4mhz ایت زمان 1us می باشد.
نکته : برای عمل کردن این پایه باید پایه مورد نظر را خروجی تعریف کنید.
1 2 3 4 5 6 |
$crystal = 4000000 Config portd = output Do Pulseout portd , 7 ,500 , 500us on – 500us off Loop |
نکته : این دستور باید در یک حلقه تکرار قرار گیرد تا پالس ادامه داشته باشد. در ادامه با حلقه آشنا خواهید شد.
زمان سنجی ورودی در زبان بیسیک BASIC
1 |
Pulsein var.pinx,pin,state |
مدت زمان بین دو تغییر وضعیت 0 به 1 یا بلعکس را در متغیر var از نوع word می ریزد.
Pinx : پورت ورودی مورد نظر
Pin : پایه مورد نظر پورت
State : حالت 0 برای زمانی که پایه از 0 به 1 تغییر می کند و حالت 1 برای زمانی که پایه از 1 به 0 تغییر وضعیت می دهد.
نکته : برای عمل کردن این پایه باید پایه مورد نظر را ورودی تعریف کنید.
1 2 3 4 |
Config portc = input Dim p as word Pulsein p , pinc , 1 , 0 |
نکته : این دستور باید در یک حلقه تکرار قرار گیرد تا پالس ادامه داشته باشد. در ادامه با حلقه آشنا خواهید شد.
تولید تعداد پالس مشخص در زمان دلخواه بر روی پایه خروجی میکروکنترلر AVR
1 |
Sound portx.y , n , pulse |
با این دستور می توان به تعداد n بر روی یک پایه دلخواه پالس ایجاد کرد. (حداکثر تعداد n تا 56535)
کاربرد : تولید اصوات مختلف
Portx.y : پایه دلخواه خروجی
Pulse : مدت زمان 0 و 1 بودن پایه بر حسب میکروثانیه (پریود تا 65535us)
نکته : برای عمل کردن این پایه باید پایه مورد نظر را ورودی تعریف کنید.
1 2 3 |
Config Portd = Output Sound Portd.7,3,50 '3 Pulse - 1/50Hz |