AVCC: زمانی که ولتاژ پایهAVCC به عنوان ولتاژ مرجع در نظر گگرفته میشود در این حالت اتصال پایه های AVCC وAREF به صورت شکل 6-2 است .

 

 

INTERNAL: زمانی که ولتاژ منبع داخلی 2.56 V با خازن خارجی بر روی پایه AREF استفاده  شود در این حالت اتصال پایه هایAVCC وAREF به صورت شکل 6-2 است انتخاب این گزینه برای میکروهایی که ولتاژ مرجع داخلی ندارند هیچ تأثیری ندارد .

 

 

دستور GETADC

n      با این دستور سیگنال آنالوگ وارد شده به کانال های ( 7-0 ) به مقدار دیجیتال تبدیل میشود . و در متغیرVAR از نوع داده WORD قرار می گیرد.

 

 

VAR=GETADC(CHANNEL)
 
VARنتیجه تبدیل و CHANNEL کانال مبدل آنالوگ به دیجیتال داخلی انتخاب شده است که میتواند بین 0-7 باشد این دستور فقط برای چیپهایAVR که دارای مبدل آنالوگ به دیجیتال هستند به طور نمونهATMEGA32 استفاده میشود . از پرتهای آنالوگ به دیجیتال میتوانیم به عنوان ADC پرتهای ورودی و خروجی استفاده کنید ولی هنگامی که پرت به عنوان پیکره بندی می شود دیگر نمیتوان از آن به عنوانI/O- استفاده کنیم .

 

 

دستورات START و STOP

 

 

n      توسط دستورSTART ADC ،ADCشروع به نمونه برداری از سیگنال آنالوگ کرده و توسط  STOP ADCتغذیه را ازADC قطع می کنیم و به عملیات تبدیل پایان  میدهیم این دستورات برای شروع و توقف ADC بایستی نوشته شود

 

 

n      مثال

n      Sregfile= "m32def.det"

n      Config adc=single; prescaler=auto"now give power to the chip stop adc

n       Start adc

n      Dim  w as word ; channel as byte

n      Channel =0

n      Do

n      W= gete adc (channel)     :now read a /d valuo from channel 0to7

n      Print "channel ";channel;"value";w incr channel

n      If channel >7then channel =0

n      Loop

n      End

 

 

 

کار با وقفه

n      زمانی که کار نمونه برداری ADC از سیگنال آنالوگ  به پایان رسید ،ADC پرچم اتمام تبدیل خود به نامADC را یک میکند . با فعال کردن وقفه سراسری با دستور ENABLE INTER UPTS و فعال کردن وقفهADC با دستورENABLE ADC می توان به زیر برنامه وقفه ADC توسطON ADC LABLE پرش کرد که LABLE نام دلخواه زیر برنامه وقفه ADC یا ISR مربوط است میتوان برای کاهش نویز سیستم میکرو را در زمان نمونه برداری در مد IDLE یا ADC NOISE REDUCTION قرار داد و سپس میکرو خود کار با بالا رفتن پرچم وقفه اتمام تبدیل ADC از این مد بیدار شده و مقدار دیجیتال شده را در متغیر نوع WORD قرار می دهد .

 

 

 

n      مثال

n      Sregfile =" 4433def. dat"

n      Scrystal =400000

n      Sbaud =9600

n      'configure single mode and auto prescaler setting

n      ' the auto feature ' will select the highest clockrate possible

n      'theadc needs a clock from 50-200khz

n      Config adc =single ' perscaler=auto

n      On adc adc – isr

n      Enable adc

n      Enable interrupts

n      Dim w as word channel as dyte

n      'now read a/d value from channel 0 channel =0

n      'now give power to the adc

n      Start adc

n      Do

n      W= getadc (channel )

n      'idle will put the micro into sleep

n      'an interruptwill wake the micro

n       idle

n      loop

n      end

n      adc- isr:

n      print "channel" :channel :"value":w

n      waitms 500

n      return

 

 

 

 

مقایسه کننده آنالوگ

مقایسه کننده آنالوگ و رجیسترها

 

 

 

مقایسه کننده  آنالوگ (ANALOG COMPARATOR ) مقادیر آنالوگ در دو ورودی پایه مثبت (AINO) و پایه منفی(AIN 1) را با هم مقایسه می کند زمانی که ولتاژموجود در ورودی مثبت (AINO) بالاتر از ولتاژ موجود در ورودی منفی(AIN 1) باشد خروجی مقایسه کننده (ACO) یک می شود

 

 

مقایسه کننده همچنین دارای یک پرچم وقفه مجزا است کاربر می تواند نحوه تریگر شدن وقفه خروجی مقایسه کننده را در لبه بلا رونده پایین رونده یا TOGGLE انتخاب کند
خروجی مقایسه کننده می تواند به عنوان تریگر ورودی
CAPTURE تایمر/ کانتر یک استفاده شود

 

 

 

پیکره بندی مقایسه کننده آنالوگ در BASCOME

 

n      مقایسه کننده آنالوگ باید توسط دستور زیر پیکره بندی شود تا بتوان از آن استفاده نمود . مقایسه کننده آنالوگ ، ولتاژ موجود در دو پایه مثبت و پایه منفی را با هم مقایسه می کند.

n      CONFIG ACI =ON/OFF ;TRIGGER=TOGGLE/RISING /FALING

n      CONFIG ACI =ON/OFF: باید در زمان استفاده از مقایسه کننده ON باشد .

 

 

CONFIG ACI =ON/OFF: باید در زمان استفاده از مقایسه کننده ON باشد .

 

CAMPARE =ON/OFF: در صورت انتخاب ON ، خروجی مقایسه کننده آنالوگ  (ACO)مستقیماً به ورودی CAPTURE تایمر/کانتر یک  وصل است و در صورت انتخاب   OFFاین اتصال بر قرار نیست.

 

 

TRIGGER=TOGGLE/RISING/FALLING: این گزینه نحوه روی دادن وقفه مقایسه کننده را نشان میدهد.

در صورت انتخاب  FALLING، یک لبه پایین رونده در خروجی مقایسه کننده باغث یک شدن پرچم وقفه مقایسه کننده و اجرا شدن برنامه وقفه خواهد شد .
در صورت انتخاب
RISING ، یک  بالا رونده در خروجی مقایسه کننده باغث یک شدن پرچم وقفه مقایسه کننده و اجرا شدن برنامه وقفه خواهد شد.

 

 

 

در صورت انتخاب TOGGLE ،یک(HIGH ) به صفر((LOW یا صفر به یک شدن خروجی مقایسه کننده باعث یک شدن پرچم وقفه مقایسه کننده واجراشدن برنامه وقفه خواهد شد

 

 

کار با وقفه مقایسه کننده آنالوگ

 

n      پرچم وقفه مقایسه کننده  ACIنام دارد این وقفه با دستور ENABLE ACI ودستور فعال کنندهوقفه سراسری ENABLE INTERRUPTS فعال میشود . توسط دستور ON ACI LABLE می توان در زمان رویداد وقفه مقایسه کننده به LABLE پرش وتوسط دستورRETURN  ازISR مربوط برگشت کرد.

 

 

 

مثال
زمانی که خروجی مقایسه کننده معکوس شود،وقفه مقایسه کننده روی داده و زیر برنامه
ANALOGINIT اجرا می شود . دراین مثال خروجی مقایسه کننده به CAPTURE تایمر/کانتر یک متصل نیست.

 

 

 

Sregfile= 'm32def.' dat'
 
Scrystasl =800000
Config aci =on;compare= off ;trigger =toggle
Sbaud =9600
Enable interrupts
Enable aci
On aci analoginit
Do
Loop

 

 

 

End
'end program
Analoginit:
Print "on aci "
Return

 

 

پايان