(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 باشد.


پژوهشگر و نویسنده: دکتر (  افشین رشید )