تبلیغات
میکروکنترلر های AVR و ARM

معرفی سایت در زمینه میکروکنترلر های AVR و ARMو pic

نویسنده : m sh شنبه 17 بهمن 1394 09:00 ق.ظ  •   

سایت اتمل میکرو :        

     www.atmelmicro.com 
یا 
      www.atmelmicro.ir
                                                                        
 سایت اتمل میکرو در زمینه اموزش میکروکنترلر های avr ،PIC و arm فعالیت دارد .این سایت به تازگی راه اندازی شده و مطالب ان به صورت منظم و هفتگی انتشار می شود . 
به کسانی که علاقه مند به یادگیری میکرو کنترلر ها می باشند توصیه می شود مطالب این سایت را دنبال کنند.
این سایت از مباحث پایه ای شروع به اموزش میکرو کنترلر ها کرده است .
میتونید از بخش پیوند های روزانه روی اموزش برنامه نویسی میکرو کنترلر هاکلیک کنید و وارد این سایت شوید.
 


برچسب ها: اموزش میکرو کنترلر های avr ، اموزش میکرو کنترلر های arm ، معرفی سایت در زمینه میکرو کنترلر ها ، اموزش avr ، اموزش arm ، avr ، arm ،
دنبالک ها: اموزش میکرو کنترلر های avr و arm ،
آخرین ویرایش: دوشنبه 7 تیر 1395 02:49 ب.ظ

شمارنده صعودی و نزولی با سون سگمنت به زبان C

نویسنده : m sh دوشنبه 9 شهریور 1394 03:26 ب.ظ  •    ارسال شده در: میکروکنترلر های AVR

در این برنامه با استفاده از یک میکرو کنترلر 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 ب.ظ

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

نویسنده : m sh پنجشنبه 20 فروردین 1394 07:33 ب.ظ  •    ارسال شده در: میکروکنترلر های AVR

اموزش میکروکنترلر های 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




برچسب ها: میکروکنترلر ، avr ، بسکام ،
آخرین ویرایش: سه شنبه 10 شهریور 1394 12:40 ب.ظ

معماری آرم

نویسنده : m sh چهارشنبه 19 فروردین 1394 10:22 ب.ظ  •    ارسال شده در: میکروکنترلر های ARM

معماری آرم (به انگلیسیARM architecture) نوعی از معماری و ساختار پردازنده‌های رایانه‌ای است که به‌وسیلهٔ شرکت انگلیسی آرم هولدینگز طراحی شده‌است و بیش‌تر برای تلفن‌های هوشمند، تبلت‌ها و دستگاه‌های قابل‌حمل کاربرد دارد. معماری آرم دستورالعمل‌های ۳۲ بیتی را پردازش می‌کند و از دههٔ ۱۹۸۰ میلادی تا به‌امروز در حال توسعه و گسترش است. شرکت آرم هولدینگز خود تولیدکننده پردازنده‌ها نیست و گواهی‌نامهٔ به‌کارگیری از معماری آرم را به تولیدکنندگان نیمه‌هادی می‌فروشد. کمپانی‌ها نیز به راحتی تراشه‌های خود را براساس معماری آرم تولید می‌کنند. از جمله کمپانی‌هایی که پردازنده‌های خود را براساس معماری آرم طراحی می‌کنند می‌توان به اپل در تراشه‌های اختصاصی خود، سامسونگ الکترونیکس در پردازنده‌های اگزینوس، ان‌ویدیا در پردازشگرهای تگرا و کوالکام در پردازنده‌های اسنپ‌دراگون اشاره کرد. معماری آرم به‌گونه‌ای طراحی‌شده که برای هسته اصلی پردازشگر تنها به حدود ۳۵ هزار ترانزیستور نیاز است و این باعث می‌شود که پردازنده بسیار کم‌مصرف شود، کم‌تر داغ کند و نیازی به خنک‌کننده یا فن نداشته باشد بر خلاف معماری x86 به‌کار رفته در پردازنده‌های شرکت‌های اینتل و ای‌ام‌دی که نیازمند میلیون‌ها ترانزیستور هستند و همین مسأله باعث افزایش توان مصرفی و داغ شدن آنان می‌شود. شرکت آرم هولدینگز اعلام کرده که در سال ۲۰۱۴ معماری آرم با قابلیت پشتیبانی از دستورالعمل‌های ۶۴ بیتی در پردازنده‌های کورتکس-ای۵۳ و کورتکس-ای۵۷ که توسط این شرکت تولید خواهد شد، عرضه می‌شود.

آخرین ویرایش: پنجشنبه 20 فروردین 1394 07:28 ب.ظ

ساخت دیمر 220 ولت با میکرو کنترلر AVR به زبان C

نویسنده : m sh چهارشنبه 10 اردیبهشت 1393 05:43 ب.ظ  •    ارسال شده در: میکروکنترلر های AVR

به نام خدا

با استفاده از قابلیت انالوگ به دیجیتال (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
{
{






برچسب ها: دیمر ، میکروکنترلر ، avr ،
آخرین ویرایش: دوشنبه 9 شهریور 1394 03:53 ب.ظ