خانه / آموزش میکروکنترلرهای AVR / آموزش برنامه نویسی مقدماتی BASIC-دستورات کار با پورت ها

آموزش برنامه نویسی مقدماتی BASIC-دستورات کار با پورت ها

آموزش برنامه نویسی مقدماتی BASIC-دستورات کار با پورت ها

آموزش برنامه نویسی مقدماتی BASIC-دستورات کار با پورت ها

دستورات کار روی پورت ها به عنوان I/O

:: پیکر بندی

Config portx = state

Config pinx.y = state

برای معرفی یک پورت یا حتی یک پایه به میکرو استفاده می شود.

State : حالت پورت ( input – output )

X : شماره پورت

Y : شماره پایه

نکته: زمان خواندن از پورت از pinx.y و زمان نوشتن در پورت از portx استفاده کنید.

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

:: یک کردن بیت

Set pin / var.x

با این دستور می توان یک بیت از متغیر یا یک پین از پورت ها را یک کرد.

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

:: صفر کردن بیت

Reset pin / var.x

با این دستور می توان یک بیت از متغیر یا یک پین از پورت ها را صفر کرد.

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

:: معکوس کردن بیت

Toggle pin / var.x

با این دستور می توان یک بیت از متغیر یا یک پین از پورت ها را معکوس کرد.

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

:: انتظاری برای بیت

Bitwait  pin  ,  set / reset

این دستور تا زمانی که یک بیت و یا یک پین به دلخواه یک صفر ( set / reset ) نشود برنامه را در همان خطا متوقف می کند.

Config portc = input

Dim a as bit

Dim b as byte

Bitwait pinc.4 , reset

Bitwait a , reset

Bitwait b.4 , set

End

:: پیکر بندی کلید برای میکرو

Debounce pinx.y  , state , label    [ , sub]

برای اتصال یک کلید به میکرو به صورت شرطی و با سرکشی اتوماتیک , به کار می رود.

Pinx.y : پایه ای که کلید به آن متصل است.

State : شرط کلید ( 0 یا 1 بودن کلید ).

Label : بر چسب مورد نظر برای پرش در صورتی که شرط برقرار باشد.

Sub : در صورت نیاز به پرش به بر چسب زیر برنامه استفاده می شود ( اختیاری)

نکته: میکرو به صورت اتوماتیک هر 25ms کلید را سرکشی می کند و در صورت قبولی شرط به برچسب پرش می کند.

نکته : زمان سرکشی را می توان با دستور زیر تغییر داد.

Config debounce = x

X : مدت زمان تاخیر در هر سر کشی به میلی ثانیه

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

:: ایجاد پالس در خروجی

Pulseout port  , pin , period

با این دستور می توان پالسی با فرکانس دلخواه بر روی پایه دلخواه میکرو ایجاد کنید.

Port : پورت مورد نظر

Pin : پایه مورد نظر پورت

Period : بر چسب میکرو ثانیه مدت زمان صفر یا یک بودن پایه ( اگر در حالت اول آن پایه صفر بود , period مدت زمان 1 بودن پایه را مشخص می کند و بر عکس ( مدت زمان معکوس period به نسبت فرکانس کار میکرو خواهد بود برای نمونه با فرکانس 4mhz ایت زمان 1us می باشد.

نکته : برای عمل کردن این پایه باید پایه مورد نظر را خروجی تعریف کنید.

$crystal = 4000000

Config portd = output

Do

Pulseout portd , 7 ,500              , 500us on – 500us off

Loop

نکته : این دستور باید در یک حلقه تکرار قرار گیرد تا پالس ادامه داشته باشد. در ادامه با حلقه آشنا خواهید شد.

:: زمان سنجی ورودی

Pulsein var.pinx,pin,state

مدت زمان بین دو تغییر وضعیت 0 به 1 یا بلعکس را در متغیر var از نوع word می ریزد.

Pinx : پورت ورودی مورد نظر

Pin : پایه مورد نظر پورت

State : حالت 0 برای زمانی که پایه از 0 به 1 تغییر می کند و حالت 1 برای زمانی که پایه از 1 به 0 تغییر وضعیت می دهد.

نکته : برای عمل کردن این پایه  باید پایه مورد نظر را ورودی تعریف کنید.

Config portc = input

Dim p as word

Pulsein p , pinc , 1 , 0

نکته : این دستور باید در یک حلقه تکرار قرار گیرد تا پالس ادامه داشته باشد. در ادامه با حلقه آشنا خواهید شد.

:: تولید تعدادی پالس در خروجی

Sound portx.y , n , pulse

با این دستور می توان به تعداد n بر روی یک پایه دلخواه پالس ایجاد کرد. (حداکثر تعداد n تا 56535)

کاربرد : تولید اصوات مختلف

Portx.y : پایه دلخواه خروجی

Pulse : مدت زمان 0 و 1 بودن پایه بر حسب میکروثانیه (پریود تا 65535us)

نکته : برای عمل کردن این پایه باید پایه مورد نظر را ورودی تعریف کنید.

Config Portd = Output

Sound Portd.7,3,50          ‘3 Pulse – 1/50Hz

 موسسه خیریه حمایت از کودکان مبتلا به سرطان

 دسته اصلی : زبان برنامه نویسی BASIC

 نویسنده : electronics98

 تاریخ انتشار :

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطلب پیشنهادی

I2C-AVR

آموزش برنامه نویسی پیشرفته BASIC – ارتباط سریال I2C

آموزش برنامه نویسی پیشرفته BASIC – ارتباط سریال I2C پایه های مورد استفاده پروتکل I2C …