تبلیغات
میکروکنترلر های AVR و ARM
منوی اصلی
میکروکنترلر های AVR و ARM
  • m sh شنبه 17 بهمن 1394 09:00 ق.ظ نظرات ()
    سایت اتمل میکرو :        

         www.atmelmicro.com 
    یا 
          www.atmelmicro.ir
                                                                            
     سایت اتمل میکرو در زمینه اموزش میکروکنترلر های avr ،PIC و arm فعالیت دارد .این سایت به تازگی راه اندازی شده و مطالب ان به صورت منظم و هفتگی انتشار می شود . 
    به کسانی که علاقه مند به یادگیری میکرو کنترلر ها می باشند توصیه می شود مطالب این سایت را دنبال کنند.
    این سایت از مباحث پایه ای شروع به اموزش میکرو کنترلر ها کرده است .
    میتونید از بخش پیوند های روزانه روی اموزش برنامه نویسی میکرو کنترلر هاکلیک کنید و وارد این سایت شوید.
     
    آخرین ویرایش: دوشنبه 7 تیر 1395 02:49 ب.ظ
    ارسال دیدگاه
  • m sh دوشنبه 9 شهریور 1394 03:26 ب.ظ نظرات ()
    در این برنامه با استفاده از یک میکرو کنترلر atmega8 و دو عدد سون سگمنت کاتد مشترک یک شمارنده صعودی و نزولی 0-99 ساخته شده است 


    برنامه این پروژه به صورت زیر است:
    <include <mega8.h#
        
    <include <delay.h#

    ;signed  char a,b,c,d


    ;{unsigned char digital[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
     


    (void Init (void

    }
    ;c=9
    ;d=9
    ;a=0
    ;b=0
    ;DDRD=0xff
    ;DDRB=0xff
    ;DDRC=0x00
    {


    (void up(void
    }
    (while(1
    }

    ;[PORTD=digital[a

    ;[PORTB=digital[b

    ;a=a+1

    ;(delay_ms(50
    (if (a==10
    }
    ;a=0
    ;b=b+1
    {

    (if (b==10
    }
    ;b=0
    {
    {
    {

    (void down (void
    }
    (while(1
    }

    ;[PORTD=digital[c

    ;[PORTB=digital[d

    ;c=c-1

    (delay_ms(50
    (if (c==-1
    }

    ;c=9

    ;d=d-1
    {


    (if (d==-1
    }
    ;d=9
    {
    {
    {

    (void main(void
    }

    ;()Init
    (while(1
    }

    if (PINC.0)==1
    }
    ;()up
    {


    if(PINC.1)==1
    }
    ;()down
    {


    {
    {






    آخرین ویرایش: دوشنبه 9 شهریور 1394 03:50 ب.ظ
    ارسال دیدگاه
  • m sh پنجشنبه 20 فروردین 1394 07:33 ب.ظ نظرات ()

    اموزش میکروکنترلر های avr با نرم افزار بسکام 

    1-دستور معرفی میکرو مورد نظر:

    $Regfile=” نام میکرو

    :مثال$regfile=”m8def.dat”


    2-دستور معرفی فرکانس کلاک:

    $Crystal=فرکانس کاری میکرو

    :مثال$crystal=8000000

    نکته ها:

     باشد.DO   ,   LOOP1-همیشه برنامه باید بین

     دارد.END2-هربرنامه ای نیاز به

    3-دستور تعریف متغیر ها :

    DIM  نام متغیر   AS  جنس متغیر

    :مثال

    Dim a as bit

    Dim b as byte

    :CONFIG4-دستور

    از این دستور برای ورودی و خروجی کردن پورت ها و همچنین برای متصل کردن سخت افزار به میکرو استفاده میشود

     

     تک تک روشن شود و سپس تک تک خاموش شود ؟Dمثال1:برنامه ای بنویسید که ال ای دی های متصل به پورت

    regfile = "m8def.dat"$

    crystal=8000000 $

    Config Portd = Output

    Do

    Portd.0 = 1

    Waitms 50

    Portd.1 = 1

    Waitms 50

    Portd.2 = 1

    Waitms 50

    Portd.3 = 1

    Waitms 50

    Portd.4 = 1

    Waitms 50

    Portd.5 = 1

    Waitms 50

    Portd.6 = 1

    Waitms 50

    Portd.7 = 1

    Waitms 50

    Portd.0 = 0

    Waitms 50

    Portd.1 = 0

    Waitms 50

    Portd.2 = 0

    Waitms 50

    Portd.3 = 0

    Waitms 50

    Portd.4 = 0

    Waitms 50

    Portd.5 = 0

    Waitms 50

    Portd.6 = 0

    Waitms 50

    Portd.7 = 0

    Waitms 50

    Loop

    End

     

        یکی یکی از سمت راست به سمت چپ روشن و خاموش شوند؟Dمثال 2:برنامه ای بنویسید که ال ای دی های متصل به پورت

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Portd = Output

    Do

    Portd.0 = 1

    Waitms 50

    Portd.1 = 2

    Waitms 50

    Portd.2 = 4

    Waitms 50

    Portd.3 = 8

    Waitms 50

    Portd.4 = 16

    Waitms 50

    Portd.5 = 32

    Waitms 50

    Portd.6 = 64

    Waitms 50

    Portd.7 = 128

    Waitms 50

    Portd.6 = 256

    Waitms 50

    Loop

    End                                                                                                                                                                                                                                  

    مثال 3:برنامه ای بنویسید که ال ای دی های متصل به پورت دی از صفر تا  255بضورت باینری بشمارد؟

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Portd = Output

    Do

    Dim A As Byte

    A = 0

    Do

    Portd = A

    Waitms 50

    A = A + 1

    Loop

    End

     

    سون سگمنت ها :

    نکته :کد های بالا مربوط به سون سگمنت کاتد مشترک میباشد

    مثال 4 : برنامه ای بنویسید که سون سگمنت متصل به پورت دی از صفر تا 9 را شمارش کند؟

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Portd = Output

    Dim A As Byte , B As Byte

    A = 0

    Do

    B = Lookup(a , Test)                                                                                                                           Bاز جدول و قرار دادن در متغیر Aدر اوردن مقدار متغیر

    Portd = B

    Waitms 50

    A = A + 1

    If A = 10 Then A = 0

    Loop

    End

    Test:

    Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111

     

     

     

     یک واحد شمارش شده سپس عدد شمارش شده بر روی ال ای دی های قرار گرفته روی S1مثال 5: برنامه ای بنویسید که با هر بار تحریک شستی

    پورت دی قرار بگیرد؟

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Portd = Output

    Config Pinb.0 = Input

    Dim A As Byte , B As Byte , C As Bit

    A = 0

    Ssa:                                                                                       معرفی یک زیر برنامه با نامی دلخواه

    Do

    C = Pinb.0

    If C = 0 Then Goto Ssa

    A = A + 1

    Portd = A

    Waitms 50

    Loop

    End

    مثال6:برنامه ای بنویسید که با هر بار تحریک شستی یک واحد به سون سگمنت متصل به پورت دی اضافه نماید؟

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Portd = Output

    Config Pinb.0 = Input

    Dim A As Byte , B As Byte , C As Bit

    A = 0

    Ssa:

    Do

    C = Pinb.0

    If C = 0 Then Goto Ssa

    A = A + 1

    If A = 10 Then A = 0

    B = Lookup(a , Test)

    Portd = B

    Waitms 50

    Loop

    End

    Test:

    Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111

     

     

     را روی ال سی دی متصل به پورت دی نمایش دهد ؟Helloمثال 7:برنامه ای بنویسید که حرف

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Lcd = 16 * 2                                                             دستور متصل کردن ال سی دی 2 در 16

    Config Lcdpin = Pin Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , Rs = Portd.4 , E = Portd.5        معرفی پایه های ال سی دی به میکرو

    Do

    Cls                                                                    دستور پاک کردن ال سی دی  

    Lcd "hello"                                                       دستور نوشتن متن روی ال سی دی

    Waitms 50

    Loop

    End

     

        مثال 8:برنامه ای بنوسید که اعداد 0 تا 255 را به ترتیب روی ال سی دی نشان دهد ?

    $regfile = "m8def.dat"

    crystal=8000000 $

    Config Lcd = 16 * 2

    Config Lcdpin = Pin Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , Rs = Portd.4 , E = Portd.5

    Dim A As Byte

    Cls

    Do

    ;Lcd "counter" ; A                                                 روی ال سی دیAنمایش مقدار متغیر

    Waitms 100

    Cls

    A = A + 1

    Loop

    End


    آخرین ویرایش: سه شنبه 10 شهریور 1394 12:40 ب.ظ
    ارسال دیدگاه
  • m sh چهارشنبه 19 فروردین 1394 10:22 ب.ظ نظرات ()
    معماری آرم (به انگلیسیARM architecture) نوعی از معماری و ساختار پردازنده‌های رایانه‌ای است که به‌وسیلهٔ شرکت انگلیسی آرم هولدینگز طراحی شده‌است و بیش‌تر برای تلفن‌های هوشمند، تبلت‌ها و دستگاه‌های قابل‌حمل کاربرد دارد. معماری آرم دستورالعمل‌های ۳۲ بیتی را پردازش می‌کند و از دههٔ ۱۹۸۰ میلادی تا به‌امروز در حال توسعه و گسترش است. شرکت آرم هولدینگز خود تولیدکننده پردازنده‌ها نیست و گواهی‌نامهٔ به‌کارگیری از معماری آرم را به تولیدکنندگان نیمه‌هادی می‌فروشد. کمپانی‌ها نیز به راحتی تراشه‌های خود را براساس معماری آرم تولید می‌کنند. از جمله کمپانی‌هایی که پردازنده‌های خود را براساس معماری آرم طراحی می‌کنند می‌توان به اپل در تراشه‌های اختصاصی خود، سامسونگ الکترونیکس در پردازنده‌های اگزینوس، ان‌ویدیا در پردازشگرهای تگرا و کوالکام در پردازنده‌های اسنپ‌دراگون اشاره کرد. معماری آرم به‌گونه‌ای طراحی‌شده که برای هسته اصلی پردازشگر تنها به حدود ۳۵ هزار ترانزیستور نیاز است و این باعث می‌شود که پردازنده بسیار کم‌مصرف شود، کم‌تر داغ کند و نیازی به خنک‌کننده یا فن نداشته باشد بر خلاف معماری x86 به‌کار رفته در پردازنده‌های شرکت‌های اینتل و ای‌ام‌دی که نیازمند میلیون‌ها ترانزیستور هستند و همین مسأله باعث افزایش توان مصرفی و داغ شدن آنان می‌شود. شرکت آرم هولدینگز اعلام کرده که در سال ۲۰۱۴ معماری آرم با قابلیت پشتیبانی از دستورالعمل‌های ۶۴ بیتی در پردازنده‌های کورتکس-ای۵۳ و کورتکس-ای۵۷ که توسط این شرکت تولید خواهد شد، عرضه می‌شود.
    آخرین ویرایش: پنجشنبه 20 فروردین 1394 07:28 ب.ظ
    ارسال دیدگاه
  • m sh چهارشنبه 10 اردیبهشت 1393 05:43 ب.ظ نظرات ()
    به نام خدا

    با استفاده از قابلیت انالوگ به دیجیتال (ADC) در میکروکنترلر های AVR میتوان یک دیمر 220 ولت ساخت . برای این کار ابتدا با استفاده از دستورات خط 3 تا خط 12و دستورات خط 42و 43  ADC میکرو کنترلر را فعال میکنیم و همچنین توسط دستور :DDRB=0x08 ُ خروجی مورد نظر را فعال میکنیم و توسط حلقه while نمونه برداری از مقدار انالوگ صورت میگیرد. برنامه کامل دیمر به صورت زیر است .
    فرکانس کلاک میکرو 1000000 هرتز انتخاب شود 

    <include <mega16a.h#
    <include <delay.h#
    define ADC_VREF_TYPE 0x20 #
    (unsigned char read_adc(unsigned char adc_input
    {
    ;(ADMUX=adc_input | (ADC_VREF_TYPE & 0xff
    ;(delay_us(10
    ;ADCSRA|=0x40
    ;while ((ADCSRA & 0x10)==0
    ;ADCSRA|=0x10
    ;return ADCH
    {
    (void main(void
    ;PORTB=0x00
    ;DDRB=0x08
    ;PORTD=0x00
    ;DDRD=0x00
    ;TCCR0=0x6B
    ;TCNT0=0x00
    ;OCR0=0x00
    ;TCCR1A=0x00
    ;TCCR1B=0x00
    ;TCNT1H=0x00
    ;TCNT1L=0x00
    ;ICR1H=0x00
    ;ICR1L=0x00
    ;OCR1AH=0x00
    ;OCR1AL=0x00
    ;OCR1BH=0x00
    ;OCR1BL=0x00
    ;ASSR=0x00
    ;TCCR2=0x00
    ;TCNT2=0x00
    ;OCR2=0x00
    ;MCUCR=0x00
    ;MCUCSR=0x00
    ;TIMSK=0x00
    ;UCSRB=0x00
    ;ACSR=0x80
    ;SFIOR=0x00
    ;ADMUX=ADC_VREF_TYPE & 0xff
    ;ADCSRA=0x81
    ;SPCR=0x00
    ;TWCR=0x00
    (while (1
    }
    ;(OCR0=read_adc(0
    {
    {




    آخرین ویرایش: دوشنبه 9 شهریور 1394 03:53 ب.ظ
    ارسال دیدگاه