(Bascom _ AVR) دستور ENCODER در محیط بسکام AVR (مهندسی برق _ الکترونیک)
پژوهشگر و نویسنده: دکتر ( افشین رشید )
نکته : ENCODER نوعی کلید دو طرفه میباشد.از این قطعه در کیبردها و لوازم صوتی تصویری و ... برای کم و زیاد کردن صدا و نور و ... استفاده میشود.
در واقع این قطعه از دوکلید تشکیل شده است ، هنگامی که شما سری را به سمت راست میچرخانید ، کلید سمت راست ( که یک پایه آن به پایه وسط و پایه دیگر به پایه سمت راست متصل است) قطع و وصل میشود ، و هنگامی که سری را به سمت چپ میچرخانید کلید سمت چپ ( که یک پایه ان به سر وسط و پایه دیگر به پین سمت چپ متصل است ) قطع و وصل میشود ، با استفاده از دستور زیر میتوان عملیات مناسب با جهت چرخش ( قطع و وصل شدن هر کلید ) را انجام داد:
Var = ENCODER( pin1, pin2, LeftLabel, RightLabel , wait
VAR: یک متغییر از جنس دلخواه میباشد که به ازای پالس های فرد مقدار ان صفر و به ازای پالس های زوج مقدار آن یک است (مقدار ان حول صفر ویک تغییر میکند)
pin1 : نشان دهنده پایه ای است که پین 1) چپ یا راست ) انکدر به ان متصل میشود.
pin2 : نشان دهنده پایه ای است که پین 2) چپ یا راست ) انکدر به ان متصل میشود.
Left Label : نام برچسبی است که در هنگام به چپ چرخیدن انکودر به ان پرش میشود.باز گشت از برچسب با دستور return انجام میشود.
RightLabel : نام برچسبی است که در هنگام به راست چرخیدن انکودر به ان پرش میشود. باز گشت از برچسب با دستور return ان جام میشود.
Wait : در صورتی که شما به جای این کلمه 1 بگذارید cpu میکرو بر روی این دستور متوقف میشود ، هنگامی که انکدور میچرخد cpu به زیر برنامه میرود و بعد از انجام دستورات موجود در زیر برنامه دوباره روی این دستور متوقف شده و منتظر میماند تا پالسی اعمال شود و درصورتی که 0 قرار دهید cpu مدام در حلقه گردش میکند و اگر دستور انکودر در حلقه باشد ان را چک میکند و اگر نباشد که هیچ.مانند:
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 =
Portd.3 , E = Portd.4 , Rs = Portd.5
Config Portb = Input
Dim A As Byte , B As Byte , C As Word : Cls
دستور DTMFOUT :
توسط این دستور میتوانید پالس مناسب با یک عدد را تولید کرده و ان را روی خط تلفن سوار کنید. فرم کلی این دستور به شکل زیر است : این دستور در دو فرم استفاده میشود، فرم اول :
DTMFOUT number, duration
با این دستور شما میتوانید فقط یک شماره را به خط تلفن ارسال کنید ، متغیری که رقم دلخواه در ان به جای number گذاشته میشود و duration تاخیر زمانی بین ارسال این رقم و ارقام بعدی میباشد ، شما میتوانید به جای رقم یک متغییر قرار دهید ، اما متغییر باید بین 0 تا 15 باشد.
پژوهشگر و نویسنده: دکتر ( افشین رشید )