آموزش کاربردی میکروکنترلرهای AVR از 0 تا 100
آموزش کاربردی میکروکنترلرهای AVR از 0 تا 100
تعداد صفحات : 251
0 تا 100 میکرو ها همراه با پروژه های عملی در کدویژن و پروژه های دانشجویی
عنوان صفحه
فصل 1 مقدمه . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ……. ………………………….. 1
1 – 1 پیشگفتار مولف . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – …. ………………………….. 1
1 – 2 مدارهای الکتریکی و الکترونیکی . . . . . . . . . . . . . . . . . . . . . . . . . – ……………………. 2
1 – 2 – 1 سیستم های الکترونیکی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – …………………………. 4
1 – 2 – 2 تفاوت سیستم دیجیتال با آنالوگ . . . . . . . . . . . . . . . . . . . . . . . . . . – …………………….. 5
1-3- آشنایی با اجزای مدارهای الکترونیکی . . . . . . . . . . . . . . . . . . . . . . …………………. 6
1-3-1- آشنایی با بردبورد . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ………………………….. 6
1 – 3 – 2 آشنایی با مقاومت الکتریکی – : .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 7
1 – 3 – 3 آشنایی با خازن – : .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 9
1 – 3 – 4 آشنایی با سلف . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – .. ………………………….. 11
1-3-5- آشنایی با دیود . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … ………………………….. 12
1 – 3 – 6 آشنایی با – LED .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 14
1 – 3 – 7 آشنایی با منابع تغذیه . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ………………………… 15
1-3-8- رگولاتور یا تنظیم کننده ولتاژ : .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 18
1-3-9- آشنایی با سون سگمنت . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 18
1-3-10- آشنایی با ترانزیستور . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………….. 20
1-3-11- آشنایی با آی سی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ………………………….. 22
1 – 3 – 12 برد مدار چاپی ) – pcb ……………………….. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ) 24
1 – 3 – 13 المان های نصب سطحی ) – smd …………………… . . . . . . . . . . . . . . . . . . . . . . . . ) 24
1 – 3 – 14 آشنایی با کریستال . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – …………………………. 25
1 – 4 اصول الکترونیک دیجیتال . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ……………………….. 25
1-4-1- تفاوت الکترونیک آنالوگ و دیجیتال . . . . . . . . . . . . . . . . . . . . . . . ………………….. 26
1-4-2- تعریف سیگنال دیجیتال . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 26
1 – 4 – 3 مفهوم فرکانس . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – … ………………………….. 27
1-4-4- سیگنال کلاک (Clock) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 29
1-5- آشنایی با سیستم اعداد باینری . . . . . . . . . . . . . . . . . . . . . . . . . . …………………….. 29
1 – 5 – 1 تبدیل اعداد از مبنای – 2 به مبنای 10 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 31
ب
1 – 5 – 2 تبدیل اعداد از مبنای – 10 به مبنای 2 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 32
1-5-3- اعداد در مبنای 16 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . 32
1 – 6 تعریف واحد های اندازه گیری حافظه . . . . . . . . . . . . . . . . . . . . . . – …………………. 33
فصل 2 ساختار میکروکامپیوتر و تفاوت آن با میکروکنترلر . . . . . . . . . . . . . . . – …………… 35
2-1- تعریف کامپیوتر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … ………………………….. 35
2-2- تعریف میکروکامپیوتر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 36
2-2-1- تعریف میکروپروسسور ( CPU ) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 37
2 – 2 – 2 تعریف – ROM .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 38
2-2-3- انواع حافظه های ROM .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 38
2 – 2 – 4 تعریف – RAM .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 40
2-2-5- انواع حافظه های RAM .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 41
2 – 2 – 6 تعریف – PORT .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 41
2 – 2 – 7 تعریف – BUS ………………………………. 41
2-3- تعریف میکروکنترلر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………….. 42
2-4- انواع میکروکنترلرها . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………….. 43
فصل 3- معرفی میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 45
3-1- معرفی و تاریخچه ساخت . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………….. 46
3-2- انواع میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 46
3-3- معماری و ساختار میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 47
3-3-1- هسته مرکزی CPU ( واحد پردازش مرکزی ……………… . . . . . . . . . . . . . . . . . . ) 47
3-3-2- واحد محاسبه و منطق (Arithmetic Logic Unit) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 49
3-3-3- رجیسترهای CPU .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 49
رجیستر های عمومی General Purpose Registers .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 49
3-3-4- نحوه عملکرد واحد CPU .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 51
3-3-5- خط لوله Pipelining .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 51
3-4- معماری حافظه در AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 52
3-4-1- حافظه داده SRAM .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . 53
3-4-2- حافظه داده EEPROM .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 53
3-4-3- حافظه برنامه FLASH .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 53
ج
3 – 5 معرفی دیگر واحدهای میکروکنترلرهای – AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 53
3-5-1- واحد ورودی/خروجی (Input/Output) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 53
3-5-2- واحد کنترل کلاک ورودی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………….. 54
3-5-3- واحد تایمرها و شمارنده ها ( Timers & Counters ) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 54
3-5-4- واحد تایمر سگ نگهبان Whatchdog .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 54
3-5-5- واحد کنترل وقفه Interrupt .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 55
3-5-6- واحد ارتباطی JTAG .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 55
3-5-7- واحد مبدل آنالوگ به دیجیتال ( ADC ) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 55
3-5-8- واحد مقایسه کننده آنالوگ . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………. 56
3-5-9- واحد ارتباطات سریال . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 56
3-6- انواع زبان های برنامه نویسی و کامپایلر های AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. 57
3-7- برنامه ریزی )پروگرام( کردن میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. 58
3-7-1- ISP چیست ؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …. ………………………….. 58
3 – 7 – 2 تهیه پروگرامر مناسب . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – …………………………. 59
فصل 4- بررسی و راه اندازی Atmega32 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 60
4-1- خصوصیات ، ویژگی ها و عملکرد ATMega32 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 60
4-2- تشریح عملکرد پایه ها در ATMEGA32 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 63
4-3- معماری و ساختار داخلی میکروکنترلر Atmega32 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 64
4-4- ساختار برنامه میکروکنترلر به زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 68
4 – 4 – 1 نحوه عملیاتی شدن یک برنامه توسط میکرو . . . . . . . . . . . . . . . . . . – ……………… 68
4-5- حداقل سخت افزار راه اندازی میکروکنترلر Atmega32 .. .. .. .. .. .. .. .. .. .. .. .. 69
4-6- معرفی رجیسترهای واحدهای میکروکنترلر Atmega32 .. .. .. .. .. .. .. .. .. .. .. .. .. 70
4-6-1- رجیسترهای واحد I/O در AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 70
فصل 5 اصول شبیه سازی و پیاده سازی . . . . . . . . . . . . . . . . . . . . . . . . . . – …………………….. 74
5-1- معرفی کلی نرم افزارهای Proteus و CodeVision .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 74
5-2- دانلود و نصب نرم افزارهای Proteus و CodeVision .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 75
5-3- مراحل کلی انجام یک پروژه میکروکنترلری . . . . . . . . . . . . . . . . . . ……………… 76
5-4- شروع به کار با نرم افزار پروتئوس . . . . . . . . . . . . . . . . . . . . . . . . …………………… 77
5-5- شروع به کار با نرم افزار CodeVision AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 81
د
5-6- واحد کنترل کلاک سیستم در میکروکنترلر Atmega32 .. .. .. .. .. .. .. .. .. .. .. .. .. 88
5-7- فیوز بیت ها در میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 90
5 – 8 فیوز بیت های تنظیم کلاک . . . . . . . . . . . . . . . . . . . . . . . . . . . – ……………………… 91
5-8-1- نوسان ساز با کریستال خارجی . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………… 92
5-8-2- نوسان ساز با کریستال فرکانس پائین . . . . . . . . . . . . . . . . . . . . . . . ………………….. 93
5-8-3- نوسان ساز با RC خارجی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………… 94
5-8-4- نوسان ساز با اسیلاتور RC کالیبره شده داخلی . . . . . . . . . . . . . . . . . . ……………… 95
5-8-5- نوسان ساز با کلاک خارجی . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………. 96
5 – 9 تنظیم دیگر فیوز بیت ها . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ……………………….. 97
5-10- تنظیم فیوز بیت ها در نرم افزار کدویژن . . . . . . . . . . . . . . . . . . . . . ………………… 98
5-11- تنظیم پروتئوس در حالت استفاده از کریستال خارجی . . . . . . . . . . . . . …………. 99
فصل 6- آموزش برنامه نویسی C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 101
6-1- معرفی کوتاه زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 101
6-2- کلمات کلیدی در زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 102
6-3- ویژگی های یک برنامه به زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 102
6-4- ساختار یک برنامه به زبان C در کامپیوتر . . . . . . . . . . . . . . . . . . . ………………. 103
6-5- تفاوت برنامه نویسی برای کامپیوتر و میکروکنترلر . . . . . . . . . . . . . . ………….. 103
6-6- ساختار برنامه میکروکنترلر به زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 104
6-7- متغیرها در زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 104
6-7-1- نحوه تعریف متغیرها . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 105
6-7-2- ویژگی های نام متغیر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 105
6-7-3- انواع متغیر ها از نظر محل تعریف در برنامه . . . . . . . . . . . . . . . . . . ……………… 105
6-7-4- محل تعریف متغیرها در حافظه میکروکنترلر . . . . . . . . . . . . . . . . . . ……………… 105
6-8- توابع در زبان c .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 106
6-8-1- انواع توابع در زبان c .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 107
6-8-2- تعریف توابع در زبان c .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 108
6 – 8 – 3 اعلان و بدنه تابع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ………………………….. 108
6 – 8 – 4 فراخوانی تابع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – .. ………………………….. 109
6-9- تعریف ثوابت در زبان C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 110
ه
6 – 10 دستورات شرطی در – C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 111
6-10-1- دستور شرطی if .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 111
6-10-2- دستور شرطی switch .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 112
6-11- حلقه های تکرار در C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 112
6-11-1- حلقه while .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 113
6 – 11 – 2 حلقه – do…while .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 113
6 – 11 – 3 حلقه – for 113
6-11-4- دستور break و continue در حلقه ها . . . . . . . . . . . . . . . . . . . . . . . ………………….. 114
6-12- اتصال کلید به میکرو . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 115
6 – 13 آرایه ها در – C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 119
6-13-1- آرایه های یک بعدی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 119
6-13-2- آرایه های چند بعدی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 120
6-13-3- مقدار دهی به آرایه های چند بعدی . . . . . . . . . . . . . . . . . . . . . . …………………. 121
6 – 14 رشته ها در – C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 121
6-14-1- تعریف یک کاراکتر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………….. 122
6-14-2- تعریف رشته ) آرایه ای از کاراکتر ها ………………… . . . . . . . . . . . . . . . . . . . . . ) 122
6 – 14 – 3 کاراکترهای کنترلی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ………………………… 123
6-15- عملگرها . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …… ………………………….. 124
6-15-1- عملگرهای محاسباتی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………………. 124
6-15-2- عملگرهای مقایسه ای و منطقی . . . . . . . . . . . . . . . . . . . . . . . . . . …………………….. 125
6-15-3- عملگرهای ترکیبی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………….. 125
6-15-4- تعریف عملگرهای بیتی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………… 126
6-15-5- تقدم کلی در عملگرها . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………… 127
6-16- تبدیل نوع در محاسبات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………….. 127
6-17- اتصال سون سگمنت به میکرو . . . . . . . . . . . . . . . . . . . . . . . . . . …………………….. 127
6-17-1- راهنمای آی سی 7448 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 128
6-17-2- سون سگمنت های مالتی پلکس . . . . . . . . . . . . . . . . . . . . . . . . . ……………………. 131
6-18- اتصال صفحه کلید به میکرو . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………… 133
6-19- اتصال صفحه کلید 4 در 4 به میکرو . . . . . . . . . . . . . . . . . . . . . . . ………………….. 138
6-19-1- برنامه حرفه ای تر اتصال صفحه کلید 4 در 4 به میکرو . . . . . . . . . . . . ………… 140
و
فصل 7 آموزش کدویزارد – AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 141
7-1- واحد پورت های ورودی/خروجی . . . . . . . . . . . . . . . . . . . . . . . ………………….. 141
7-1-1- رجیسترهای واحد I/O .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 143
7-1-2- نحوه فعالسازی مقاومت پول آپ . . . . . . . . . . . . . . . . . . . . . . . . …………………… 144
7-2- CodeWizard چیست ؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………… 144
7-2-1- شروع کار با ابزار CodeWizard .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 144
7-3- راه اندازی LCD های کاراکتری . . . . . . . . . . . . . . . . . . . . . . . . …………………… 147
7 – 3 – 1 تنظیمات – LCD کاراکتری در کدویزارد . . . . . . . . . . . . . . . . . . . . ……………….. 150
7-3-2- توابع کار با LCD کاراکتری . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………… 150
7-4- معرفی و تشریح واحد وقفه های خارجی . . . . . . . . . . . . . . . . . . . ………………. 156
7-4-1- انواع منابع وقفه در میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 156
7-4-2- راه اندازی واحد وقفه خارجی در Atmega32 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 156
7-5- واحد مبدل آنالوگ به دیجیتال ADC .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 162
7 – 5 – 1 تنظیمات واحد – ADC در AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 163
7-5-2- تنظیمات کدویزارد برای راه اندازی واحد ADC .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 164
فصل 8 راه اندازی ارتباطات سریال با کدویزارد . . . . . . . . . . . . . . . . . . . – ………………. 169
8-1- ارتباطات سریال و موازی در میکروکنترلرها . . . . . . . . . . . . . . . . . …………….. 169
8-2- پروتکل های ارتباطی سریال و سرعت آنها . . . . . . . . . . . . . . . . . . . ………………. 170
8-3- نوع فرستنده و گیرنده . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………… 170
8-4- انواع حالت ارتباط سریال . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………. 170
8-5- روش ارسال اطلاعات سریال . . . . . . . . . . . . . . . . . . . . . . . . . . …………………….. 171
8-6- راه اندازی واحد USART .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 171
8-6-1- قالب ارسال/دریافت دیتا در پروتکل UART ( آسنکرون ………. . . . . . . . . . . ) 172
8-6-2- پروتکل های استاندارد UART .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 173
8 – 6 – 3 استاندارد – RS232 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 174
8-6-4- تنظیمات واحد USART در کدویزارد . . . . . . . . . . . . . . . . . . . . . . …………………. 176
8-6-5- توابع پرکاربرد stdio.h در هنگام کار با واحد USART .. .. .. .. .. .. .. .. .. .. .. .. .. 177
8-6-6- توابع پرکاربرد کتابخانه string.h برای کار با رشته ها . . . . . . . . . . . . . …………. 180
8 – 6 – 7 ماژول های مبدل – USB به سریال . . . . . . . . . . . . . . . . . . . . . . . . …………………… 186
ز
8 – 6 – 8 انواع مبدل های – USBtoTTL .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 187
8 – 6 – 9 اتصال ماژول – USB به میکرو . . . . . . . . . . . . . . . . . . . . . . . . . . …………………….. 189
8-7- واحد ارتباط سریال SPI .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 189
8-7-1- طرز کار واحد SPI .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 190
8-7-2- خصوصیات واحد SPI در میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 190
8-7-3- شبکه بندی چندین Slave در پروتکل SPI .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 190
8-7-4- تنظیمات واحد SPI در کدویزارد . . . . . . . . . . . . . . . . . . . . . . . . …………………… 191
8 – 8 راه اندازی واحد تایمر/کانتر . . . . . . . . . . . . . . . . . . . . . . . . . – ……………………. 198
8-8-1- رجیستر چیست ؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ………………………….. 199
8-8-2- کانتر یا شمارنده چیست ؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………. 199
8-8-3- واحد تایمر/کانتر چیست ؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………………. 200
8-8-4- واحد تایمر/کانتر در میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 200
8-8-5- انواع واحد تایمر/کانتر در میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. 201
8 – 8 – 6 معرفی رجیستر های واحدهای تایمر/کانتر – 8 بیتی . . . . . . . . . . . . . …………. 203
8-8-7- معرفی و تشریح تایمر/کانتر ساده 8 بیتی . . . . . . . . . . . . . . . . . . . ………………. 204
8-8-8- معرفی و تشریح تایمر/کانتر پیشرفته 8 بیتی . . . . . . . . . . . . . . . . . . ……………… 205
8-8-9- بررسی تایمر/کانتر 8 بیتی پیشرفته در حالت ساده ( Normal ) .. .. .. .. .. .. .. .. 206
8-8-10- PWM چیست ؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ………………………….. 208
8-8-11- تولید PWM به روش نرم افزاری و بدون استفاده از واحد تایمر . . . . . . . ……. 209
8-8-12- بررسی تایمر/کانتر 8 بیتی پیشرفته در حالت PWM سریع ( Fast PWM ) .. .. 210
8-8-13- بررسی تایمر/کانتر 8 بیتی پیشرفته در حالت PWM تصحیح فاز ( Phase Correct PWM ) ………………………………… 211
8-8-14- معرفی اجمالی رجیسترهای تایمر/کانترهای 16 بیتی . . . . . . . . . . . . . …………. 212
8-8-15- معرفی و تشریح تایمر/کانتر پیشرفته 16 بیتی . . . . . . . . . . . . . . . . . …………….. 213
8-8-16- تایمر/کانتر 16 بیتی پیشرفته در حالت ساده ( Normal ) .. .. .. .. .. .. .. .. .. .. .. .. 214
8-8-17- تایمر/کانتر 16 بیتی پیشرفته در حالت مقایسه ( CTC ) .. .. .. .. .. .. .. .. .. .. .. .. 215
8-8-18- تایمر/کانتر 16 بیتی پیشرفته در حالت PWM سریع ( Fast PWM ) .. .. .. .. .. .. 216
8-8-19- تایمر/کانتر 16 بیتی پیشرفته در حالت PWM تصحیح فاز ( Phase Correct PWM )217
8-8-20- تایمر/کانتر 16 بیتی پیشرفته در حالت PWM تصحیح فاز و فرکانس ( Phase & Frequency Correct PWM ) .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 218
8-8-21- تنظیمات واحد تایمر/کانتر در کد ویزارد CodeWizard .. .. .. .. .. .. .. .. .. .. .. .. 219
ح
8 – 8 – 22 چند مثال شبیه سازی شده . . . . . . . . . . . . . . . . . . . . . . . . . . – …………………….. 223
8-8-23- راه اندازی RTC در میکروکنترلرهای AVR .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 232
8-8-24- تایمرسگ نگهبان . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ………………………….. 236
فصل 9 برنامه نویسی پیشرفته . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – ………………………… 238
9-1- انواع دستورات پیش پردازش . . . . . . . . . . . ……….. Error! Bookmark not defined.
9-1-1- پیش پردازنده define .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
9-1-2- پیش پردازنده include .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
9-1-3- دستورات پیش پردازش شرطی . . . . . . . . . . . ……….. Error! Bookmark not defined.
9-1-4- پیش پردازنده pragma .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
9-2- نحوه ساخت فایل های کتابخانه . . . . . . . . . . ………. Error! Bookmark not defined.
9-2-1- نحوه استفاده از کتابخانه در برنامه . . . . . . . . …….. Error! Bookmark not defined.
9-2-2- الگوی ساخت فایل هدر . . . . . . . . . . . . . . ………….. Error! Bookmark not defined.
9-2-3- الگوی ساخت فایل سورس . . . . . . . . . . . . . …………. Error! Bookmark not defined.
9-3- نوع داده sfrb و sfrw درکدویژن . . . . . . . . . ……… Error! Bookmark not defined.
9-4- کلاس های حافظه متغیرها . . . . . . . . . . . . ………… Error! Bookmark not defined.
9-4-1- نحوه تعریف کلاس حافظه یک متغیر . . . . . . . ……. Error! Bookmark not defined.
9-4-2- کلاس حافظه اتوماتیک . . . . . . . . . . . . . . . …………… Error! Bookmark not defined.
9-4-3- کلاس حافظه ثبات . . . . . . . . . . . . . . . . . …………….. Error! Bookmark not defined.
9-4-4- کلاس حافظه خارجی . . . . . . . . . . . . . . . …………… Error! Bookmark not defined.
9-4-5- کلاس حافظه استاتیک . . . . . . . . . . . . . . . …………… Error! Bookmark not defined.
9-5- اشاره گرها . . . . . . . . . . . . . . . . . . . . . ………………… Error! Bookmark not defined.
9-5-1- مقدار دهی به اشاره گر . . . . . . . . . . . . . . ………….. Error! Bookmark not defined.
9-5-2- دسترسی به محتوای یک اشاره گر . . . . . . . . . ……… Error! Bookmark not defined.
9-5-3- عملیات روی اشاره گرها . . . . . . . . . . . . . . ………….. Error! Bookmark not defined.
9-5-4- ارتباط اشاره گر با آرایه و رشته . . . . . . . . . . ………. Error! Bookmark not defined.
9-5-5- استفاده از اشاره گرها در توابع . . . . . . . . . . ………. Error! Bookmark not defined.
9-6- ساختار . . . . . . . . . . . . . . . . . . . . . . . ………………….. Error! Bookmark not defined.
فصل 10- راه اندازی ارتباط سریال I2C .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 239
10 – 1 معرفی ارتباط سریال – I2C .. .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
ط
10 – 2 شبکه بندی – Master و Slave ها در پروتکل I2C . Error! Bookmark not defined.
10 – 3 قالب بندی ارتباط در پروتکل – I2C .. .. .. .. .. .. .. Error! Bookmark not defined.
10 – 3 – 1 وضعیت – Start / Stop .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
10 – 3 – 2 وضعیت ارسال آدرس . . . . . . . . . . . . . . – ………….. Error! Bookmark not defined.
10 – 3 – 3 وضعیت ارسال/دریافت دیتا . . . . . . . . . . . . . . – ………….. Error! Bookmark not defined.
10 – 4 مدهای عملکرد واحد – TWI .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
10 – 5 انواع دسترسی به رابط – I2C در کدویژن . . . . …. Error! Bookmark not defined.
10 – 6 فعالسازی رابط – I2C در کدویزارد . . . . . . . . …….. Error! Bookmark not defined.
10 – 7 راه اندازی – I2C نرم افزاری . . . . . . . . . . . ……….. Error! Bookmark not defined.
10 – 7 – 1 توابع موجود در کتابخانه – i2c.h .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
10 – 7 – 2 نحوه استفاده از توابع – i2c.h .. .. .. .. .. .. .. .. .. .. .. Error! Bookmark not defined.
10 – 7 – 3 معرفی آی سی های سری – AT24CXX .. .. .. .. .. Error! Bookmark not defined.
10 – 7 – 4 عملیات نوشتن در آی سی – EEPROM .. .. .. .. .. Error! Bookmark not defined.
10 – 7 – 5 تابع نوشتن بایتی روی – EEPROM سری AT24CXXError! Bookmark not defined.
10 – 7 – 6 عملیات خواندن از آی سی – EEPROM .. .. .. .. .. Error! Bookmark not defined.
10 – 7 – 7 خواندن از آدرس فعلی . . . . . . . . . . . . – ………… Error! Bookmark not defined.
10 – 7 – 8 خواندن از آدرس مورد نظر . . . . . . . . . . – ………. Error! Bookmark not defined.
10-7-9- خواندن متوالی . . . . . . . . . . . . . . . . . . . ………………. Error! Bookmark not defined.
10 – 7 – 10 تابع خواندن از آدرس مورد نظر در – EEPROM سری AT24CXXError! Bookmark not defined.
10 – 8 راه اندازی – I2C سخت افزاری . . . . . . . . . . ………. Error! Bookmark not defined.
10 – 8 – 1 نحوه استفاده از واحد – TWI سخت افزاری . . . … Error! Bookmark not defined.
10 – 8 – 2 معرفی رجیسترهای واحد – TWI .. .. .. .. .. .. .. .. Error! Bookmark not defined.
10-8-3- راه اندازی TWI در میکروکنترلر Master ) هدر فایل twi_master.h ) Error! Bookmark not defined.
10 – 8 – 4 راه اندازی – TWI در میکروکنترلر Slave .. .. .. .. Error! Bookmark not defined