# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C >  برنامه نویسی میکروکنترولر ها با ++C

## h_c2005

با سلام و خسته نباشید خدمت دوستان عزیز 

می خواستم یه منبع خوب فارسی برای برنامه نویسی میکروکنترولر ها با زبان ++C معرفی کنید . 
هر چی دنبالش گشتم نتونستم پیدا کنم.  :لبخند: و می خواستم بدونم کسی که می خواهد برنامه نویسی ربات بکند باید تا چه حد زبان برنامه نویسی ++c رو بلد باشه . 

با تشکر ...

----------


## DAMAVAND

> با سلام و خسته نباشید خدمت دوستان عزیز 
> 
> می خواستم یه منبع خوب فارسی برای برنامه نویسی میکروکنترولر ها با زبان ++C معرفی کنید . 
> هر چی دنبالش گشتم نتونستم پیدا کنم. و می خواستم بدونم کسی که می خواهد برنامه نویسی ربات بکند باید تا چه حد زبان برنامه نویسی ++c رو بلد باشه . 
> 
> با تشکر ...


بهترین کتاب در این زمینه:
پروژهایی به زبان C برای میکروکنترولر 8051
ناشر:کانون نشر علوم

خیلی لازم نیست C رو در حد بالا بدونید.
همینکه با دستورات اصلی و کار با توابع اشنا باشید کاملا کافیه.

----------


## saeid5977

سلام 
++C یا C ؟
C زیاده اما Cpp ندیدم تا حالا.
برای چه میکرویی میخوای؟ PIC ، AVR چی؟

----------


## h_c2005

خیلی فرق میکنه که من که C++‎ بلدم  برنامه نویسی C را در مورد میکرو کنترولر ها بخونم ؟؟
به نظر شما برای شروع کدام میکرو بهتر است ؟

----------


## saeid5977

سلام 
اگه ++C بلدی پس مشکلی نیست راحت میتونی با C کارکنی فقط یه کم دست و پات بسته تر از برنامه نویسی تو PC هست.
در مورد میکرو هم شروع کردن مهمتر از از کجا شروع کردنه
اول بهتره با خود میکرو کنترلر آشنا بشی و اصول کارشو یاد بگیری کمی هم اسمبلیش رو یاد بگیری و بعد بری سراغ C .  هم pic خوبه و هم avr. اما ظاهراً pic پر طرفدارتره.

----------


## DAMAVAND

سلام
برای برنامه نویسی برای میکروکنترولر زبان C++‎ نداریم.فقط C
برای یادگیری هم بهتره اول از 8051 و با اسمبلی شروع کنید .
بعدش خیلی راحت میتونید با هر میکرو و هر زبانی کار کنید.
در ضمن از لحاظ طرفدار و حجم پروژها میکروکنرولر ها اینجوری طبقه بندی میشن:
1:(8051)
2:AVR
3:PIC

----------


## powerboy2988

شما اگه می خوای رو میکرو برنامه نویسی کنی با 2تا زبان میتونی
BASCOME و  CodeVision که اولی مثله زبانه بیسیکه و دومی مثله c 
کتابهای فارسی برنامه نویسی میکرو با codevision رو یه نگاهی بکن

----------


## h_c2005

سلام 
میشه یه کتاب خوب ر این  باره معرفی کنید آقای power boy که برنامه نویسی ربات رو از پایه آموزش بده

----------


## saeid5977

> شما اگه می خوای رو میکرو برنامه نویسی کنی با 2تا زبان میتونی
> BASCOME و CodeVision که اولی مثله زبانه بیسیکه و دومی مثله c 
> کتابهای فارسی برنامه نویسی میکرو با codevision رو یه نگاهی بکن


 
فکر میکنم این دو تا IDE باشند. نه زبان!

----------


## sayeh007

بیس کام به نظر من بهتر از کدویوزن هستش 
دز ضمن ای دی هم داره بیس کام

----------


## raminsol

سلام:
من علي هستم دوست عزيز
سئوالي داشتم اگه مي تونين کمکم کنيد
مي خوام پروژه اي بنويسم اما نمي دونم از چه ميکرويي استفاده کنم
پروژه شامل يک ميکرو و يک  ال سي دي مثلا 20*20 سانتيمتر هست
گفتم مثلا  منظورم يک ال سي دي در اندازه بزرگ هست
دونبال ميکرويي ميگردم که بتونم يک محيط تقريباّ مثل محيط موبايل
درست کنم
که بتونم براش منو و فولدر و فايل  بسازم 
و بتونم توش اطلاعات زيادي ذخيره کنم
من خودم با 8051 کارکردم اما بدرد اين کار نمي خوره 
درضمن ميکروش توي ايران باشه و قيمتش هم زياد نباشه 
از حافظه کمکي هم اگه استفاده کنه مهم نيست
مهم اينه که اون کارايي که گفتم بتونم انجام بدم
پيشاپيش از کمکتون ممنونم

----------


## navidrtl

اگه موبایلا رو می بینی که این شکلی منو دارن ، این موبایلا دارای سیستم عامل هستن می شه این کار و کرد ولی باید برنامه نویسی با C  رو خیلی خوب بلد باشی به برنامه نویسی شی گرا کاملاً مسلط باشی .
موفق باشی  :چشمک:

----------


## navidrtl

من خودم روباتیک کار می کنم معمولاً من خودم با میکروکنترلر avr AT mega32 کار می کنم. به نظر من خیلی خوب جواب میده.
موفق باشید  :چشمک:

----------


## محمدامین شریفی

https://barnamenevis.org/showthread.php?t=110663

----------


## SamaPic

با سلام خدمت دوست عزيز .
من مدتي است كه با ميكرو كنترل AVR كار مي كنم و پروژه هاي زيادي با آن (البته ساده ) نوشته و اجرا كردم.
افرادي كه به شما راهنمايي كردن از نظر من مدتي از حضور فعالشان در اين رشته مي گذرد ولي اميد وارم مطالبي كه در زير مي نويسم اشتباه باشه .پيشا پيش بخاطر نوشته هايم (كه اميد وارم اشتباه باشه) از شما دوستان عزيز و از همه ي فعالان اين رشته عذر مي خواهم.
با توجه به تجربيات و دانسته هاي من در ضمينه ي ميكرو كنترل هاي خطي بايد بگويم كه نوع 8051 ديگر از دور خارج شده و خط توليد آن آخرين رو هاي خودش را مي گذراند. در ضمينه ميكرو كنترل هاي PLC من هنوز با آنها كار نكردم ولي مي دونم كه با اسمبلي نوشته مي شن و از نوع مشابه يعني AVR در بعضي پروژه ها ضعيف تر هستن و بالعكس.
در حال حاضر ميكرو كنترل هاي AVR عرصه را بر رقبا تنگ كرده اند.
اين ميكرو كنترل (AVR ) با دستورات C++‎ نوشته مي شوند(البته با قدري تغيير) اين ميكرو كنترل قدرت انعطاف زيادي داشته و تقريبا هر كاري رو مي تواند انجام دهد.
در حال حاضر براي توليد ربات ها از اين ميكرو استفاده مي شود.
خانواده ي AVR از  AT tiny 13  تا AT86RF401 وجود دارد كه من تمامي برنامه هايم را با ATmega16 يا ATmega16L  نوشته و به مرحله ي اجرا در آورده ام.
برنامه نويسي آن بسيار ساده بوده توسط CodVisionAVR نوشته و توسط AVRstudio شبيه سازي (تست عملي ) مي شود.
به طو كلي بگويم كه دست شما در اين نوع بسيار باز است.
در ضمينه ي كتاب بايد كتاب ميكرو كنترل هاي خطي انتشارات نصر را بگيري چون مثال هاي عملي زيادي دارد و من تاكنون كتابي با اين تعداد مثال نديده ام و كتاب دانشگاهي اش هم ميكرو كنترل هاي خطي نوشته ي سمييان يا همچين نامي است.
بايد بگوييم من خودم برنامه نويسيم چنگي به دل نمي  زند ولي به راحتي ميتوانم برنامه هاي مذكور را نوشته و اجرا كنم.اگر شما يكي از دو زبان c يا C++‎ را بلد بوديد كافي است چون نياز چنداني به ياد داشتن اين زبان نيست.
در ضمينه ي PLC هم من كار نكرده ام كه به شما توصيه يا حتي نظري بدهم ولي استادمان مي گفت بهترين ميكرو ، ميكرو منترل هاي خطي AVR است.
باز هم از محضر اساتيد و ريش سفيدان اين ورطه به خاطر گفته هايم عذر خواهي مي كنم .
اين هم يك نمونه برنامه ي ساده كه با CVAVR نوشته شده است . البته خيلي ساده است و مهمتر از آن اين است كه موارد رنگي را خود برنامه مي نويسد.

#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x0F;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
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;
ACSR=0x80;
SFIOR=0x00;
while (1)
      {
        PORTB.0=1;
        PORTB.1=0;
        PORTB.2=0;
        PORTB.3=0;
        delay_ms(10);        
        PORTB.0=0;
        PORTB.1=1;
        PORTB.2=0;
        PORTB.3=0;
        delay_ms(10);
        PORTB.0=0;
        PORTB.1=0;
        PORTB.2=1;
        PORTB.3=0;
        delay_ms(10);
        PORTB.0=0;
        PORTB.1=0;
        PORTB.2=0;
        PORTB.3=1;
        delay_ms(10);
      };
}

در پاين بگويم اين برنامه برنامه ي Step motor  است.
اگر در حين تايپ اشتباهاتي داشتم (منظور تايپي) به بزرگواري خود ببخشيد.
اميد وارم مطالب زيادم سر شما را به درد نياورده باشد و همچنين شما دوست عزيز به پاسخ خود رسيده باشيد.
خدا نگهدار.

----------


## SamaPic

با سلام مجدد خدمت دوستان و همچنين دوست عزيز.
اين را براي دوستي گذاشتم كه در مورد LCD سوال داشتن.
اوني كه مي خواستن نيست ولي شايد بدردشان بخوره.
به اميد اين كه بدرد شان بخوره.
من اين فايل را جايي گرفتم و همان را در اتجا گذاشتم تا شايد مشكل يكي از دوستان رفع شود.
خدانگهدار.

----------

