کتاب برنامه نویسی میکروکنترلرهای STM32F4 با سیمولینک
مقدمه
یکی از مهم ترین عناصر الکترونیکی و شاید پرکاربرد ترین آن ها در صنعت الکترونیک میکروکنترلرها هستند. میکروکنترلرها شاخه ای از میکروپروسسورها هستند که برای انجام های کارهای کنترلی طراحی شده اند و بسیاری از سخت افزارهای جانبی مورد نیاز را درون خود دارا می باشند. امروزه استفاده از تراشه های مختلف میکروکنترلر در ساخت و کنترل پروژه های دانشگاهی و صنعتی به عنوان ابزاری قدرتمند در خدمت دانشجویان و طراحان قرار گرفته است.
میکروکنترلرهای خانواده AVR جز محبوب ترین و پرکاربردترین میکروکنترلرهای موجود می باشند. این میکروکنترلرها به عنوان دومین محصول مطرح شده شرکت ATMEL بعد از میکروکنترلر 8051 هستند که امروزه رونق زیادی بین دانشجویان و مهندسین پیدا کرده اند و تقریبا جایگزین کاملی برای کاربران سابق تراشه های 8051 شده اند.
ویژگی بارز این کتاب که آن را از کتب مشابه متمایز می کند، آموزش گام به گام برنامه نویسی به زبان C و کار با قابلیت ها و امکانات میکروکنترلر AVR توسط نرم افزار Codevision و شبیه سازی تمامی پروژه ها در نرم افزار Proteus می باشد.
در هر فصل ضمن معرفی هریک از قسمت های میکروکنترلر، تنظیمات مورد نیاز آن در محیط نرم افزار Codevision توضیح داده شده و سپس چند پروژه متناسب با موضوع هر فصل توسط نرم افزار Proteus شبیه سازی و برنامه پروژه ی مورد نظر را به صورت کامل توضیح داده ایم.
سرفصل ها
- فصل اول: دستورات زبان C
در این فصل که از 10 زیر شاخه تشکیل شده است، مفاهیمی از جمله داده ها، ثابت ها، متغییرها، رهنمودهای پیش پردازنده، دستورات کنترلی و کلیه توابع کتابخانه ای به طور کامل شرح داده شده اند.
1- ساختار برنامه در Codevision
2- داده ها
3- رهنمودهای پیش پردازنده
4- استفاده از وقفه ها
5- اضافه کردن کدهای اسمبلی به برنامه
6- توابع کتابخانه ای
7- ...
در این فصل سعی شده است تا خواننده با دستورات زبان C آشنا شود و بتواند برنامه های کاربردی خود را به این زبان بنویسد. البته این تنهایی برای نوشتن یک برنامه کاربردی با میکروکنترلر AVR کافی نیست، زیرا کاربر علاوه براین زبان باید به پیکربندی و توانمندی های میکروکنترلر AVR آشنا باشد.
در برنامه نویسی به زبان C، هدر فایل ها در ابتدای برنامه قرار می گیرند؛ در واقع به دستوراتی که پسوند آن ها .h می باشد و با #include شروع شوند، هدر فایل یا فایل سرآیند گفته می شود. این دستورات قادر هستند فایل هایی را به ابتدای برنامه الحاق کنند.
یکی از امکانات زبان های برنامه نویسی جدید، استفاده از دستورها و ساختارهای کنترلی است و در نتیجه این امکان را فراهم می سازند که قطعه ای از برنامه تا موقعی که شرط ویژه ای برقرار است، چندین بار اجرا شود.
- فصل دوم: نرم افزار Codevision
در این فصل که از 6 زیر شاخه تشکیل شده است، از نصب نرم افزار تا ایجاد پروژه جدید و کار با نرم افزار و همچنین کامپایل کردن و پروگرم کردن میکروکنترلر توضیح داده شده اند.
1- مقدمه
2- نصب نرم افزار کد ویژن Codevision
3- کامپایل کردن میکروکنترلر
4- پروگرم کردن میکروکنترلر
5- ...
درمیان تمام کامپایلر های موجود، نرم افزار Codevision یک قابلیت فوق العاده دارد و آن تولید خودکار کد برای راه اندازی اولیه تراشه ها می باشد. این قابلیت به کاربر کمک می کند که بدون درگیر شدن با اسامی پیچیده ثبات های تراشه ی AVR و چگونگی تنظیمات آن ها، تراشه را راه اندازی کند. این قابلیت بسیار قدرتمند، ابزار Codewizard نام دارد.
این نرم افزار برای کار با میکروهای AVR توسط شرکت ATmel معرفی شده است.
- فصل سوم: راه اندازی میکروکنترلر AVR
در این فصل که از 6 زیر شاخه تشکیل شده است، از ولتاژ مورد نیاز میکروکنترلر تا معرفی انواع پروگرمرها و همچنین روش های پروگرم کردن توضیح داده می شوند. لازم به ذکر است اسیلاتور ها و منابع کلاک و تنظیمات فیوز بیت ها که از مهمترین ریزه کاری ها هستند، توضیح داده شده اند.
1- مقدمه
2- ولتاژ تغذیه میکروکنترلر AVR
3- مدار Reset
4- روش های برنامه ریزی میکروکنترلرهای AVR
5- منابع کلاک وتنظیمات فیوزبیت های مرتبط با آن ها
6- فیوزبیت ها
برای راه اندازی میکروکنترلر های AVR نیاز به یک سری لوازم و قطعات جانبی می باشد. در این فصل در مورد تمامی لوازم و قطعات مورد نیاز و چگونگی به کار گیری آن ها بحث و بررسی می شود.
- فصل چهارم: پورت های ورودی و خروجی I/O
این فصل در 5 زیر شاخه خلاصه شده است. ابتدا پورت ها و رجیسترهای ورودی و خروجی در انواع آی سی ها بررسی می شوند.
1- مقدمه
2- پورت های ورودی و خروجی ATmega16
3- رجیسترهای کنترلی پورت های ورودی و خروجی I/O
4- تنظیمات کنترلی I/O در Codevision
5- پروژه ها
درگاه ها یا پورت های ورودی و خروجی یکی از قسمت های اصلی و جدانشدنی میکروکنترلرها می باشند. در واقع این پورت ها هستند که بین محیط بیرون و میکروکنترلر ارتباط برقرار می کنند.
درگاه های ورودی و خروجی میکروکنترلرهای AVR از چند پین (چند ورودی و خروجی به ارزش یک بیت) تا 9 پورت وجود دارد.
در انتهای این آموزش ها 4 پروژه پرمصرف آموزش داده می شوند.
پروژه اول: فلاشر تک بیتی
پروژه دوم: فلاشر هشت بیتی
پروژه سوم: شمارنده با سون سگمنت
پروژه چهارم: چپ گرد و راست گرد موتور AC
- فصل پنجم: نمایشگر کریستال مایع LCD
این فصل از 7 زیر شاخه تشکیل شده است. نکته ای که در این بخش حائز اهمیت است، این است که ال سی دی ها به دلیل اینکه دارای پرازنده داخلی می باشند، برنامه ریزی آسان تری خواهند داشت. از این رو با تلفیق شدن امکان نمایش در ابعاد مختلف و کاراکترهای مختلف تر باعث شده که بیشتر مورد استفاده قرار گیرند و از محبوبیت بیشتری برخوردار شوند.
1- مقدمه
2- پایه های ال سی دی
3- نحوه اتصال LCD به میکروکنترلر AVR
4- توابع کتابخانه ای LCD
5- تنظیمات LCD در Codevision
6- نمایش کاراکترها بر روی LCD
7- پروژه ها
از نظر اندازه، این ال سی دی ها دارای تنوع مختلفی هستند از جمله 16*2 - 20*2 - 16*4 - 20*4 و .... که منظور از این اعداد تعداد کاراکترهای قابل نمایش در یک سطر و تعداد ستون های آن است. به عنوان مثال در ال سی دی 20*4 دارای 4 سطر و 20 ستون می باشد که در هر سطر 20 کاراکتر را نمایش می دهد.
در این فصل شناخت پایه های ال سی دی و نحوه اتصال به میکروکنترلر AVR وشیوه نمایش کاراکترهای ثابت و متغییر آموزش داده شده اند و در پایان فصل یک پروژه به همراه کد های نرم افزار آموزش داده شده است.
- فصل ششم: تایمر و شمارنده
این فصل از 8 زیر شاخه تشکیل شده است. که به طور کامل درباره تایمر های درون برنامه ای آموزش داده شده است.
1- تایمر / شمارنده
2- مد های مختلف عملکرد تایمر / شمارنده
3- رجیسترهای تایمر / شمارنده
4- تنظیمات تایمر / شمارنده صفر در Codewizard
5- تایمر / شمارنده یک
6- تایمر / شمارنده دو
7- تنظیمات تایمر / شمارنده یک در Codewizard
8- پروژه ها
تایمر یکی از مهم ترین امکانات میکروکنترلرها به حساب می آیند که عملا عدم استفاده از آن ها در اکثر پروژه ها اجتناب ناپذیر است. در میکروکنترلرهای AVR تعداد و قابلیت های تایمر و شمارنده های موجود در مدل های مختلف با هم متفاوت است. به طوری که ساده ترین نوع میکروکنترلر فقط یک تایمر یا شمارنده هشت بیتی دارد، در صورتی که پیشرفته ترین نوع، دو تایمر یا شمارنده هشت بیتی و چهار تایمر یا شمارنده شانزده بیتی دارد. با این وجود اصول و قابلیت های این تایمر ها در میکروکنترلرهای مختلف به میزان زیادی با هم شباهت دارند، به طوری که با فراگیری یکی از آن ها، دیگر مشکلی در راه اندازی دیگر تراشه ها نخواهید داشت!
تایمر های میکروکنترلرها به چهار مد مختلف کار می کنند.
1- مد نرمال
2- مد CTC
3- مد Fast PWM
4- مد Phase Correct PWM
علاوه بر این ها تنظیمات و رجیسترهای تایمر و چگونگی ست کردن در نرم افزار را می آموزید.
در پایان فصل سه پروژه به همراه کدهای نرم افزار آموزش داده می شوند.
پروژه اول: ساعت با استفاده از تایمر
پروژه دوم: اندازه گیری فرکانس سیگنال مربعی
پروژه سوم: اندازه گیری و کنترل سرعت موتور
- فصل هفتم: وقفه های خارجی
وقفه درواقع پدیده ای درونی یا بیرونی است که میکروکنترلر را از نیاز یک وسیله به نوعی سرویس مطلع می سازد. میکروکنترلرهای AVR از چندین منبع وقفه پشتیبانی می کنند.
1- وقفه ها
2- رجیسترهای کنترلی وقفه های خارجی
3- تنظیمات وقفه های خارجی در Codewizard
4- پروژه ها
5- ...
به ازای هر وقفه یک روال سرویس وقفه یا ISR وجود دارد که میکروکنترلر پس از وقوع وقفه، روال سرویس آن وقفه را اجرا می کند. به ازای هر وقفه؛ مکانی ثابت در حافظه تعریف شده است. به عنوان مثال آی سی ATmega16 بیست و یک بردار وقفه دارد.
وقفه های خارجی، وقفه هایی هستند که با تحریک پایه خارجی INTx احضار می شوند. حتی زمانی که این بیت ها به صورت خروجی تنظیم گردند، باز هم وقفه ها تریگر می شوند؛ به این طریق می توان به صورت نرم افزاری وقفه تولید کرد. وقفه های خارجی می توانند با یک لبه بالا رونده یا Rising Edge و همچنین یک لبه پایین رونده یا Falling Edge و یا یک سطح منطقی صفر تریگر شوند. در آی سی میکروکنترلر ATmega16 و در بعضی از میکروهای دیگر یکی از وقفه ها تنها با یک لبه تریگر می شوند.
در ادامه به معرفی رجیسترهای کنترلی وقفه های خارجی و تنظیمات وقفه های خارجی در Codewizard پرداخته می شود.
در پایان فصل همانند دیگر فصل ها با پروژه های مربوطه روبرو می شویم.
پروژه اول: اندازه گیری سرعت موتور DC از روش تعداد پالس
پروژه دوم: اندازه گیری سرعت دو عدد موتور از روش عرض پالس
پروژه سوم: اندازه گیری دما با استفاده از سنسور SMT160
- فصل هشتم: مبدل آنالوگ به دیجیتال ADC
گاهی نیاز است که یک کمیت بیرونی مانند دما، شدت صدا، شدت نور، فشار یا نیرو اندازه گیری شود؛ برای این کار از وسیله ای به نام سنسور استفاده می شود.
1- مقدمه
2- مبدل آنالوگ به دیجیتال ADC
3- روش های حذف نویز
4- نحوه محاسبه مقدار ADC
5- پروژه ها
6- ...
سنسورها مقدار یک کمیت آنالوگ را به ولتاژ یا جریان تبدیل می کنند. برای اینکه ولتاژ یا جریان آنالوگ خروجی این سنسورها آماده عملیات پردازشی و نمایشی شود باید به مقدار دیجیتال تبدیل شوند. این کار توسط مداری به اسم Analog to Digital Converter یا همان ADC انجام می گیرد. مدار مورد نظر با نمونه گیری از سیگنال ورودی در زمان های تعیین شده، یک سیگنال دیجیتال معادل برایمان می سازد. از روی این سیگنال دیجیتال می توان سیکنال آنالوگ را بازیابی کرد.
نقطه عطف کار در اینجاست که شرکت های سازنده میکروکنترلر، این مبدل را با پردازنده خود در داخل یک پکیج قرار داده اند و یک قابلیت بسیار مهم و کارآمد را به میکروکنترلرها اضافه کرده اند.
در این بخش، رجیسترهای کنترلی ADC و تنظیمات آن در Codewizard و همچنین نحوه محاسبه مقدار ADC آموزش داده شده است. در پایان مانند اصول کتاب در دیگر فصل ها به پروژه های آموزش داده شده به همراه کدهای شان می رسیم.
پروژه اول: ولت متر دیجیتال 0 تا 5 ولت
پروژه دوم: خواندن صفحه کلید با استفاده از یک پایه
پروژه سوم: کنترل دمای اتاق با استفاده از سنسور LM35
- فصل نهم: ارتباط سریال USART
ارتباط سریال کاربردهای زیادی در میکروکنترلر دارد. به عنوان مثال می توان عملکرد هر دستگاه که با میکروکنترلر کار می کند را با استفاده از ارتباط سریال در نمایشگر کامپیوتر نمایش داد. میکروکنترلر AVR دارای چهار نوع ارتباط سریال می باشند، USART ، SPI ، I2C یا TWI و تک سیمه که در این فصل چگونگی برقراری ارتباط سریال USART بین میکروکنترلر و کامپیوتر شخصی یا کامپیوتر صنعتی یا ماژول های آماده که با پورت سریال ارتباط برقرار می کنند آموزش داده می شود.
1- مقدمه
2- ارتباط سریال USART و UART
3- رجیسترهای کنترلی USART
4- توابع کتابخانه ای ارتباط سریال
5- پروژه ها
6- ...
در این فصل همانطور که گفته شد، ابتدا سریال USART معرفی می شود و رجیسترهای کنترلی و تنظیمات آن در نرم افزار آموزش داده می شوند.
در انتهای فصل سه پروژه به طور کامل به همراه کدهایشان آموزش داده شده اند.
پروژه اول: ارتباط سریال با کامپیوتر از طریق پورت RS232
پروژه دوم: ارتباط سریال با کامپیوتر از طریق پورت USB
پروژه سوم: کنترل موتور DC با کامپیوتر
- فصل دهم: ارتباط سریال SPI و I2C - TWI
یکی از روش های انتقال داده به صورت سریال، استفاده از پروتکل SPI یا سه سیمه می باشد. پروتکل SPI قابلیت ارتباط دوطرفه سنکرون با سرعت نسبتا بالا بین میکروکنترل های AVR، وسایل جانبی و یا بین چندید میکروکنترلر را فراهم می کند.
1- مقدمه
2- ارتباط سریال SPI
3- رجیسترهای کنترلی SPI
4- تابع کتابخانه ای SPI
5- ارتباط سریال I2C
6- پروژه ها
7- ...
پروتکل I2C در اوایل دهه 1980 توسط شرکت فیلیپس طراحی شد. امروزه این پروتکل به صورت عمومی در صنعت پذیرفته شده است، به گونه ای که از این پروتکل در بیشتر آی سی ها، میکروکنترلرها، ماژول های آماده و سایر وسایل برای انتقال داده استفاده می شود.
پس از معرفی و شناخت اصول اولیه در رابطه با این دو پروتکل در پایان فصل سه پروژه به همراه کد های آن ها آموزش داده شده اند.
پروژه اول: ارتباط دو میکروکنترلر از طریق SPI
پروژه دوم: قطب نمای دیجیتال
پروژه سوم: نمایش زمان و دما با استفاده از تراشه DS1307 و LM35
- فصل یازدهم: مشخصات میکروکنترلرهای AVR
در این بخش سه سری از میکروکنترلرها معرفی و کلیه مشخصات فنی مورد نیاز برای طراحی مدار در کتاب جمع آوری شده است.
که در 54 صفحه به همراه نقشه و شماتیک پایه های آی سی ها در اختیار شما قرار گرفته اند.
سری اول، میکروکنترلرهای سری ATtiny
سری دوم، میکروکنترلرهای سری AT90S
سری سوم، میکروکنترلرهای سری ATmega
اطلاعات
مولفین:مهندس مهدی کیائی
مهندس احمد احمدی
تعداد صفحه:316
-
مهدی فاضلی | بیش از 4 سال قبل خواهش میکنم هر چه زود بعضی از وسائل به همراه این کتاب موجود کنید من خیلی وقته منتظر این کتاب هستم موجود بشه -
امیررضا سرباز ایران | بیش از 4 سال قبل سلام.
ببخشید این کتاب بازم موجود میشه یا نه ؟-
ادمین | بیش از 4 سال قبل سلام، این کالا در حال تامین موجودی بوده و به زودی موجود خواهد شد. با استفاده از گزینه "موجود شد به من خبر بده" میتوانید بوسیله ایمیل، از تجدید موجودی این کالا مطلع شوید.
-
-
نوید یاراختر | بیش از 4 سال قبل این محصول رو خریدم ولی CD نداره-
ادمین | بیش از 4 سال قبل سلام، ناشر dvd به همراه کتاب ارائه نکرده است
در صفحه کالا نیز درج نشده که کتاب دارای dvd می باشد
-
-
امیررضا سرباز ایران | بیش از 4 سال قبل سلام این محصول به همراه CD می باشد؟-
ادمین | بیش از 4 سال قبل سلام، دارای CD نمی باشد.
-
-
محمد جواد مشهدی | بیش از 4 سال قبل سلام
در صورتی که چاپ جدید برای این کتاب وجود ندارد آیا امکان اضافه کردن کتاب مشابه دیگری در فروشگاه هست؟!-
ادمین | بیش از 4 سال قبل سلام، عناوین جدید در حال اضافه شدن به فروشگاه می باشند.
-
- 1
- 2
- بعدی