مقدمه
خداوند متعال را سپاس میگویم که توفیق آنرا پیدا کردم تا مجموعهای را که ملاحظه خواهید فرمود آماده نمایم . قبل از هر سخنی این زحمت و تلاش را به کسانی تقدیم میکنم که همیشه در راه تعلیم و تعلم دشواریها را به جان میخرند و از تحمل آن خشنود میباشند .
در پیوست3 کتاب آموزش ساده وعملی میکروکنترلرهای AVR در ارتباط با نرم افزار کدویژن
( Codevision ) چند صفحهای جهت آشنائی با این نرم افزار ارائه شده بود . در همان موقع هم اعتقاد داشتم که در رابطه با این نرم افزار و قابلیتهای آن باید بیشتر مطلب نوشت و نوشتن صرفا چند صفحه نمیتواند قابلیتهای این نرمافزار را روشن سازد . در آن کتاب مجال بیشتر برای پرداختن به موضوع نبود و تصمیم گرفتم در فرصتی دیگر به این کار بپردازم . اکنون خوشحالم از اینکه این فرصت فراهم شد و البته با تاخیر زیاد , چون علاقمند بودم بلافاصله بعد از انتشار آن کتاب بتوانم در حداقل زمان ممکن کتاب مربوط به کدویژن ( Codevision ) را آماده کنم. بخشی از تاخیر نیز مربوط به مشکلات چاپ و انتشار بود .
این کتاب شرحی است کامل بر نرمافزار کدویژن (Codevision) . برنامههای مربوط به میکروکنترلرهای AVR به زبان C در محیط این نرمافزار نوشته شده و سپس کامپایل(Compile) میگردد . علاوه بر Library ،C در نرم افزار Codevision برای کاربردهای زیر نیز Library هائی پیشبینی شده است.
- LCD (برای نوشتن حروف و اعداد)- I2C bus (Philips)- سنسور درجه حرارت
LM75 - DS1302,DS1307 Real Time Clock- PCF8563,PCF8583 Real Time Clock- سنسور درجه حرارت DS18S20 و DS1820- DS1621 - DS2430,DS2433 EEPROMS- ارتباط سریال SPI- مدیریت تغذیه- تأخیر- تبدیل Gray – Code
در این نرم افزار هم چنین پیشبینی شده که با Codewizard AVR بهصورت سریع برنامه ریزی موارد زیر انجام پذیرد.
- Setup ، دسترسی به حافظهی خارجی- Setup ، تشخیص منبع Reset- آماده سازی PORT و
پینهای آن بهعنوان ورودی و یا خروجی- آمادهسازی وقفههای خارجی- آمادهسازی تایمرها
( شمارشگرها )- آمادهسازی تایمر Wachdog- آمادهسازی ارتباط سریال UART- آمادهسازی مقایسهگر آنالوگ- آمادهسازی مبدل آنالوگ به دیجیتال- آمادهسازی ارتباط سریال SPI- آمادهسازی ، I2C bus ، LM75 (سنسور حرارتی) ترمومتر و ترموستات DS1621 و ساعتهای
DS1307, DS1302, PCF8583, PCF8563- آماده سازی bus تک سیمه برای DS18S20 و DS1820- آماده سازی مدول LCD
در این کتاب علاوه بر توضیح کامل و شرح قابلیتهای فوق برای هرکدام از آنها مثالی تهیه شده و کاربرد این قابلیتها نشان داده شده است . تمامی مثالها , مثالهائی هستند که بدون اشکال اجرا میشوند و توصیه میشود کسانی که قصد آموزش این نرم افزار را بهصورت ریشهای دارند تمامی این مثالها را مطالعه و اجرا کنند . در CD ضمیمه کتاب , کلیه فایلهای سورس ( فایلهای .C ) و نیز نرمافزارکدویژن ( Codevision ) با Version 2.04 که موضوع این کتاب است و نیز برخی نرم افزارهای دیگر را میتوانید ملاحظه کنید . توجه داشته باشید در CD ضمیمه تعداد 81 مثال که همان مثالهای کتاب به ترتیب میباشند در پوشهای با نام mesalhaye codvision قرار گرفتهاند .
در خاتمه سخن لازم میدانم از کلیه کسانی که در این راه مرا یاری کردند از جمله مسئولین و کارکنان انتشارات فدک که زحمت چاپ و انتشار کتاب را بر عهده داشتند تشکر کنم .
بدون شک مجموعه تدوین شده خالی از اشکال نخواهد بود . کلیه اساتید و عزیزانی که زحمت مطالعه کتاب را بر خود هموار میکنند , بنده حقیر را رهین منت خود خواهند فرمود اگر اشکالات کتاب را به اینجانب متذکر شوند .
در خاتمه توفیق همه عزیزان و پویندگان دانش و بینش را از خدای بزرگ خواستارم .
حمید شبستری
فهرست مطالب
فصل اول محیط نرم افزار Codevision 1
1.1 ساختن یک فایل جدید 3
2.1 بازکردن یک فایل موجود 3
3.1 ساختن یک پروژه ی جدید 4
4.1 بازکردن یک پروژه 5
5.1 تنظیمات مربوط به یک پروژه 5
6.1 تهیه برنامه قابل اجرا 12
فصل دوم مروری بر Compiler زبان C نرم افزار Codvision 23
1.2 بررسی برخی از دستورات زبان C 25 25
2.2 نوع داده ها 40
3.2 ثابت ها 41
4.2 متغیرها 42
5.2 ذخیره کردن متغیر عمومی در SRAM 44
6.2 متغیر نوع bit 45
7.2 ذخیره کردن متغیر عمومی در رجیسترها 45
8.2 ساختمان ها 47
9.2 یونیون ها 52
10.2 داده و متغیر شماره گذاری 55
11.2 فایل مربوط به حافظه ی متغیرهای عمومی 56
12.2 تعیین نوع داده 56
13.2 تبدیل نوع داده ها به یکدیگر 57
14.2 اپراتورها 57
15.2 توابع 58
16.2 اشاره گرها 59
17.2 دسترسی به ریجسترهای ورودی و خروجی 62
18.2 دسترسی به بیت های رجیسترهای ورودی و خروجی 62
19.2 دسترسی به EEROM
20.2 نحوه ی استفاده از وقفه ها 65
21.2 ساختار فضای حافظه SRAM 66
22.2 استفاده از فایل startup خارجی 67
23.2 ضمیمه کردن دستورات اسمبلی در برنامه 68
24.2 فراخوانی توابع اسمبلی از C 69
25.2 ایجاد کتابخانه 70
26.2 استفاده از نرم افزار اشکال 72
27.2 محدودیت ها 74
فصل سوم توابع کتابخانه ای مرجع(Libraty Functions Reference)
1.3 توابع نوع کاراکتری 77
2.3 توابع استاندارد ورودی خروجی 81
3.3 توابع استاندارد کتابخانه ای 92
4.3 توابع ریاضی 95
5.3 توابع مربوط به رشته ها 105
6.3 توابع تبدیل BCD 131
7.3 توابع تبدیل کد Gray 132
8.3 توابعی برای دسترسی به حافظه 133
9.3 توابع LCD 134
10.3 توابع LCD برای LCD، 40*4 140
11.3 توابع LCD وقتی که به صورت یک حافه 8 بیت وصل شده باشند 141
12.3 توابع I2C 141
13.3 توابع مربوط به سنسور درجه حرارت 145
14.3 توابع مربوط به ترموستات (ترمومتر) DS1621 147
15.3 توابع مربوط به PCF8563 150
16.3 توابع مربوط به IC، PCF8583 152
17.3 توابع مربوط به DS1307 155
18.3 توابع مربوط به IC، DS1302 158
19.2 توابع مربوط به Wire Protocol 163
20.3 توابع مربوط به سنسور درجه حرارت DS1820/DS18S20 165
21.3 توابع مربوط EEPROM، DS2430 169
22.3 توابع مربوطه به DS2433 EEPROM 170
23.3 توابع SPI 170
24.3 توابع مدیریت توان 173
25.3 توابع تاخیر 176
فصل چهارم مروری بر Compiler زبان C نرم افزار Codevision AVR 177
1.4 معرفی Wizard اتوماتیک نرم افزار Codevision 179
2.4 تنظیمات مربوط به خود قطعه AVR 182
3.4 تنظیمات مربوطه به استفاده از RAM خارجی 187
4.4 تنظیمات مربوط به PORT 190
5.4 تنظیمات مربوط به وقفه های خارجی 192
6.4 تنظیمات مربوط به تایمرها (شمارش گرها) 195
7.4 تنظیمات مربوط به UART و یا USART 217
8.4 تنظیمات مربوط به مقایسه گر آنالوگ 234
9.4 تنظیمات مربوط به مبدل آنالوگ به دیجیتال 240
10.4 تنظیم مربوط به قابلیت ارتباط SPI 247
11.4 تنظیمات مربوط به قابلیت ارتباط سریال 251
12.4 تنظیمات مربوطه به ارتباط I2C 252
1.12.4 تنظیمات مربوطه به IC ، LM75 (سنسور حرارتی) 255
2.12.4 تنظیمات مربوطه به قطعه DS1621 (ترمومتر یا ترموستات) 258
3.12.4 تنظیمات مربوط به قطعه PCF8563(ساعت یا شمارشگر) 260
4.12.4 تنظیمات مربوط به PCF8583( ساعت یا شمارش گر) 261
5.12 تنظیمات مربوط به DC1307(ساعت یا شمارش گر) 264
13.4 تنظیمات مربوط به 1 Wrie Bus (ارتباط تک سیم) 268
14.4 تنظیمات مربوط به ارتباط دوسیم 2wihre 271
15.4 تنظیمات مربوط به کنترلر LCD مربوط به ATMEGA 169 279
16.4 تنظیمات مربوط به کنترل LCD 280
17.4 تنظیمات مربوط به وسایل جانبی 282
فهرست الفبایی 289