چکیده:
در واقع یک تابلوی نمایشگر دیجیتالی، متن مورد نظر خود را از طریق
تجهیزات ورودی همچون کیبورد و یا پورت سریال دریافت می کند. و این اطلاعات
را در اختیار پردازنده قرار می دهد. سپس پردازنده پس از آنالیز اطلاعات آن
را در حافظه تابلو ذخیره نموده. علاوه بر آن حافظه موجود در تابلو
می
تواند کدهای برنامه را در خود نگهداری نماید. از طرفی پردازنده با توجه به
اطلاعات ذخیره شده، سیگنالهای لازم را جهت نمایش تولید کرده و در اختیار
درایورها قرار می دهد. با توجه به اینکه نحوه چیدمان LED ها در نمایشگر به
صورت ماتریسی می باشد، لذا دو دسته درایور برای راه اندازی ماتریس نیاز
است که شامل درایورهای سطر و درایورهای ستون می باشند. این درایورها با
توجه به فرامین دریافتی از سوی پردازنده، با روشن و خاموش نگاه داشتن LED
های موجود در ماتریس، باعث به نمایش درآمدن مطالب (اعم از متن و یا تصویر)
بر روی ماتریس خواهند شد.
به این تصویر نگاه کنید، تصویر صورتک خندان!
در نگاه اول تصویر به صورت یک تصویر کامل و یکپارچه به نظر می رسد. اما
اگر کمی با دقت بیشتر به آن دقت کنید و تا حد امکان آنرا بزرگ نمایید متوجه
خواهید شد که در واقع آن تصویر از نقاط (Pixel) متعددی تشکیل شده. پس
تصویر را می توان مجموعه نقاطی دانست که دارای رنگهای
متفاوتی اند. هر یک از این نقاط را یک جزء تصویر (Element Picture) و این خاصیت موزائیکی تصویر می نامند.
هر چه تعداد اجزاء تصویر در واحد سطح بیشتر باشد، وضوح بیشتر می باشد.
به عبارت دیگر تصویر به واقعیت نزدیکتر بوده، جزئیات آن بهتر دیده می شود.
در تابلوهای دیجیتالی نیز خاصیت موزائیکی وجود دارد. تصویر تابلو توسط
ماتریسی از LED ها ایجاد می گردد. در اینجا ابعاد یک جزء تصویر به اندازه
قطر یک LED است. که از یک فاصله معین چشم بیننده قادر به تمایز نقاط تصویر
ایجاد شده نبوده و یک تصویر را یکپارچه احساس می کند.
جهت تشکیل تصویر بر روی پانل تابلو، نیاز به روشن و خاموش نگه داشتن
LEDهای موجود بر روی تابلو متناسب با تصویر مورد نظر است. بنابراین نیاز
به کنترل تک تک LEDهای موجود در تابلو
می باشد. از طرفی هر LED دارای
دو پایه است (با فرض تک رنگ بودن) و در صورتی که ما یک پانل LED با ماتریس
10×10 داشته باشیم، دویست پایه و یا دویست سیم جهت کنترل داریم. مسلماً
استفاده از این تعداد سیم مقرون به صرفه نخواهد بود و باعث پیچیدگی مدار
خواهد شد. جهت برطرف کردن مشکل فوق می توان پایه های یکسان در LED ها را
به صورت سطری و ستونی به یکدیگر متصل نمود. به تصویر بالا دقت کنید.
همانطور که در تصویر مشاهده نمودید، در این آرایش آند تمامی LED های
موجود در یک سطر یکسان به هم متصل شدند، همچنین کاتد LED های موجود در یک
ستون نیز به هم اتصال داده
شده اند. شما در این حالت جهت روشن کردن هر
LED کافیست که سطری که آن LED در آنجا قرار دارد را به سطح ولتاژ مثبت
اتصال داده و سپس ستون مربوط به همان LED را به زمین مدار وصل کنید.
با این روش ما توانستیم از تعداد سیمهای مورد نیاز جهت کنترل LED ها
بکاهیم ولی در مقابل امکان کنترل همزمان تمامی سطرها را از دست دادیم و در
هر لحظه فقط و فقط میتوان LED های موجود در یک سطر و یا یک ستون را کنترل
نمود.
جهت نمایش نیازی هم به تمامی LED ها نیست و میتوان توسط جاروب نمودن سطرها و یا ستون ها نیز به نمایش تصویر در تابلو روان پرداخت.
به هر حال در صورت عدم استفاده از روش فوق شما مدار پیچیده ای خواهید
داشت، مثلاً برای کنترل LED ها موجود در تصویر شما حداقل باید از طریق 41
سیم ماتریس را کنترل می کردید. در حالی که با استفاده از روش ماتریسی شما
فقط به 13 سیم نیاز دارید. فقط در این حالت برنامه شما کمی پیچیده خواهد
شد.
مختصری راجع به AVR :
زبانهای سطح بالا یا همان HLL(HIGH LEVEL LANGUAGES) به سرعت در حال
تبدیل شدن به زبان برنامه نویسی استاندارد برای میکروکنترلرها (MCU) حتی
برای میکروهای 8 بیتی کوچک هستند. زبان برنامه نویسی BASIC و C بیشترین
استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای
بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید می کنند. ATMEL ایجاد
تحولی در معماری، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این
تحول میکروکنترلرهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها
به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری RISC (REDUCED
INSTRUCTION SET COMPUTER) انجام می دهند و از 32 رجیستر همه منظوره
(ACCUMULATORS) استفاده می کنند که باعث شده 4 تا 12 بار سریعتر از
میکروهای مورد استفاده کنونی باشند.
تکنولوژی حافظه کم مصرف غیرفرّار شرکت ATMEL برای برنامه ریزی AVR ها
مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EEPROM در داخل
مدار قابل برنامه ریزی (ISP) هستند. میکروکنترلرهای اولیه AVR دارای 1 ، 2
و 8 کیلوبایت حافظه FLASH و به صورت کلمات 16 بیتی سازماندهی شده بودند.
AVR ها به عنوان میکروهای RISK با دستورات فراوان طراحی شده اند که باعث می شود حجم کد تولید شده کم و سرعت بالاتری بدست آید.
عملیات تک سیکل
با انجام تک سیکل دستورات، کلاک اسیلاتور با کلاک داخلی سیستم یکی می
شود. هیچ تقسیم کننده ای در داخل AVR قرار ندارد که ایجاد اختلاف فاز کلاک
کند. اکثر میکروها کلاک اسیلاتور به سیستم را با نسبت 1:4 یا 1:12 تقسیم می
کنند که خود باعث کاهش سرعت می شود. بنابراین
AVR ها 4 تا 12 بار
سرعتر و مصرف آنها نیز 12 - 4 بار نسبت به میکروکنترلرهای مصرفی کنونی کمتر
است زیرا در تکنولوژی CMOSاستفاده شده در میکروهای AVR، مصرف توان سطح
منطقی متناسب با فرکانس است.
نمودار زیر افزایش MIPS ( MILLION INSTRUCTION PER SECONDS) را به علت
انجام عملیات تک سیکل AVR (نسبت 1:1) در مقایسه با نسبت های 1:4 و 1:2 در
دیگر میکروها را نشان
می دهد.
نمودار مقایسه افزایش MIPS/POWER Consumption در AVR با دیگر میکروکنترلرها
از این ساعت دیجیتال در معابر عمومی و شرکت ها و بانک ها و سایر ادارات استفاده می شود.
فهرست مطالب
عنوان صفحه
مقدمه.......................................... 1
فصل اول: فیبر مدار چاپی
انواع فیبر مدار چاپی........................... 4
طریقه ساخت فیبر مدار چاپی..................... 4
طریقه نصب قطعات بر روی فیبر مدارچاپی.......... 4
رسم نقشه مربوط به خطوط پشت فیبر................ 4
انتقال نقشه مدار بر روی فیبر................... 5
فصل دوم: میکروکنترلرها
AVR........................................... 7
خصوصیات ATtiny10، ATtiny11، ATtiny12.................. 8
میکروکنترلر AVR................................ 10
توان مصرفی پایین............................... 10
نکات کلیدی و سودمند حافظه فلش خود برنامه ریز... 11 راههای مختلف برای عمل برنامه ریزی..................... 11
خود برنامه ریزی توسط هر اتصال فیزیکی........... 11
ISP............................................. 11
فصل سوم:Bascom
معرفی کامپایلر Bascom.......................... 13
معرفی منوهای محیط Bascom........................ 13
معرفی محیط شبیه سازی........................... 17
معرفی محیط برنامه ریزی......................... 19
ساخت programmerSTK200/300........................... 20
فصل چهارم:معرفی IC ATM8
معرفی پایه های IC .............................. 24
فصل پنجم: نرم افزار
بدنه یک برنامه در محیط Bascom.................. 31
معرفی میکرو.................................... 31
کریستال........................................ 31
اسمبلی و بیسیک................................. 32
آدرس شروع برنامه ریزی حافظه Flash................ 32
تعیین کلاک...................................... 32
پایان برنامه................................... 33
اعداد و متغیرها و جداول Look up.................. 33
دیمانسیون متغیر................................ 33
دستور Const...................................... 34
دستور CHR...................................... 35
دستور INCR..................................... 35
دستور DECR..................................... 35
دستور CHEcksum.................................. 36
دستور Low...................................... 36
دستور High...................................... 36
دستور Rotate..................................... 36
تابع format...................................... 37
جدولLook up...................................... 38
دستور Hex....................................... 38
رجیسترها و آدرس های حافظه...................... 39
دستور Set....................................... 39
دستور Reset...................................... 39
دستور Bitwait..................................... 39
دستور Out....................................... 40
دستور INP....................................... 40
دستورالعمل های حلقه و پرش...................... 40
دستور GoTo و JMP ............................... 40
دستور Do-Loop.................................... 41
دستور for- Next.................................... 41
دستور f......................................... 42
دستور Case...................................... 43
فصل ششم: پیکره بندی تایمر/کانتر صفر و یک
پیکره بندی تایمر/کانتر صفر در محیط Bascom...... 46
پیکره بندی تایمر/کانتر یک در محیط Bascom........ 47
معرفی زیربرنامه................................ 48
فصل هفتم : طراحی پروژه ........................ 50
ضمائم ......................................... 60
مراجع.......................................... 88
مقدمه :
-الکترونیکدرزندگیامروز
امروزهپیشرفتدرالکترونیکایامکانرابهمادادهاستتابتوانیمانواعوسایلالکترونیکیمانند
ماشینحسابهایجیبی،ساعترقمی،کامپیوتربرایکاربرددرصنعتدرتحقیقاتپزشکیویاطریقهتولیدکالابهطوراتوماتیکدرکارخانجاتوبسیاریازموارددیگررامستقیمیاغیرمستقیممورداستفادهقراردهیم
.
اینهاهمهبهخاطرآناستکهفنآوریتوانستهمدارهایالکترونیکیراکهشاملاجزاءکوچکالکترونیکیهستند،برروییکقطعهکوچکسیلیکنکهشایدسطحآنبه
5 میلیمترمربعبیشترنیست،جایدهد .
فنآوریمیکروالکترونیککهبهمدارهاییکپارچهمعروفبهآیسییاتراشهمربوطمیگردد،دربهبودزندگیبشرتاثیربهسزاییداشتهوآنرابطورکلیدگرگوننمودهاست
.
تراشههاهمچنینبرایمصارفیچونکنترلرباتهادرکارخانجات،یاکنترلچراغهایراهنماییویاوسایلخانگیمانندماشینلباسشوییوغیرهمورداستفادهقرارمیگیرند
.
ازطرفیتراشههارامیتوانمغزدستگاههاییچونمیکروکامپیوترهاورباتهابهحسابآورد.
-سیستمهایالکترونیکی
پسازیکنظراجمالیدرداخلیکسیستمالکترونیکیمانندیکدستگاهرادیو،تلویزیونویاکامپیوترممکناستانسانازپیچیدگیآنوازیادگیریالکترونیکدلسردشود،امادرواقعآنطورکهبهنظرمیرسند،دشوارنیستندواینبهدودلیلاست
.
اولاینکهاگرچهسیستمهایالکترونیکیاجزاوقطعاتزیادیرادرخودجایمیدهند،اماباید
دانستکهانواعکلیایناجزااغلبمحدودوانگشتشمارهستند .
ازمهمترینگروههایایناجزامیتوانمقاومتها،خازنها،القاگرها،دیودها،ترانزیستورها،کلیدهاومبدلهارانامبرد
.
ایناجزازمانیکهبهصورتیکپارچهدریکتراشهقرارمیگیرند،هریکهمانوظیفهخودرابهعنوانیکقطعهمجزاانجاممیدهندوفقطاندازه
فیزیکیآنکوچکترشدهاست .
دوماینکهانواعسیستمهایالکترونیکیازتعدادمحدودیمدارهایاصولیویابلوکهاییکهوظیفههرکدامبهکاراندازیقسمتیازسیستممثلاتقویتیاشمارشاست،تشکیلیافتهاندکهبهمنظورعملکردکلسیستم،آنرابهیکدیگرمتصلمینمایند
.
-مدارهایخطیومدارهایرقمی
بسیاریازسیستمهایالکترونیکیطوریطراحیشدهاندتابادریافتیکورودیالکتریکیوباپردازشآن،یکخروجیالکتریکیتولیدکردهتابتوانندکارمعینیراانجامدهند
(
کهاینکاربدونسیستمموردنظر،بهتنهاییازعهدهورودیالکتریکیمذکورساختهنخواهدبود .
)
مدارهایالکترونیکیکهدرسیستمهاکاربرددارندبهدودستهمهمتقسیممیشوند : مدارهایخطی ( یاقیاسی ) ومدارهایرقمییادیجیتال .
مدارهایخطیارنوعمدارهایتقویتکنندههستندکهباسیگنالهاییسروکاردارندکهاینسیگنالهامعرفکمیتهاییمانندتغییراتصوتی،صدایانسانیاموسیقیوغیرههستند
. دربسیاریازمدارهایخطیازترانزیستوربهعنوانتقویتکنندهصوتیاستفادهمیکنند
.مدارهایدیجیتالازنوعمدارهایکلیدزنیهستند،کهمقدارورودییاخروجیآنهادرهرزمانفقط
میتواندداراییکیازدوحالتصفریایکباشدواگرقراراستایندوحالتبههمتبدیلشونداینتبدیلحالتبسیارسریعاتفاقمیافتد،درحالیکهمدارهایخطیدارایحالت
مداومبودهواینحالاتبهتدریجدرواحدزمانقابلتغییرهستند.
مدارهایرقمیدارایفقطدوحالتهستندوورودیوخروجیآنهابهاصطلاح (high)
بهمعنیبالا،یعنینزدیکبهمیزانولتاژمنبعمدارویا (low)
بهمعنیپایین،یعنینزدیکصفرولتهستند .
دراینمدارهاعملکلیدزنیبهوسیلهترانزیستورانجاممیگیرد .
دستگاهشمارشگردرواقعیکمداررقمیاستکهدرآنسیگنالتولیدشدهتوسطسلولنوری،یادرحالتصفرویادرحالتیکقرارمیگیردواینامربستگیبهقطعشدنیانشدننوردارد
. بنابراینمدارهایرقمیعلائمالکتریکیرابهصورتپالسیاضربهباخودحملمیکنند .
سیستمیکهدرآنیکلامپتوسطدیمرکنترلوکموزیادمیشود،یکسیستمحالتمداوموسیستمیکههمانلامپراخاموشوروشنمیکندیکسیستمدوحالتهاست،چونکهتوسطآنلامپمذکوریاکاملاروشنیاکاملاخاموشمیشود
.
فصل اول
فیبر مدار چاپی
1-1- انواع فیبر مدارچاپی:
1- فیبر فنلی: این فیبر به رنگ زرد پررنگ یا قهوه ای است و به راحتی
سوراخ می شود و لایه مس روی آن بر اثر حرارت زیاد هویه به راحتی جدا می
شود. قیمت این نوع از فیبر ارزان بوده و به همین دلیل در ساخت انواع کیت از
این نوع از فیبرها استفاده می شود.
2- فیبر فایبرگلاس: این نوع از فیبر سبز رنگ بوده و نسبت به فیبر فنلی
محکم تر است و به سختی سوراخ می شود. این نوع فیبر در مقابل حرارت مقاومت
خوبی دارد و در ساخت بیشتر مدارات ماشین حساب، کامپیوتر و ... از این نوع
فیبر استفاده می شود.
3- فیبر دو رو: فیبرهای دورو هم از نوع فنلی و هم از نوع فایبر گلاس
وجود دارند. تفاوت این نوع از فیبرها با فیبرهای معمولی این است که در این
نوع از فیبرها در هر دوطرف فیبر لایه مسی پوشانده شده است در نتیجه در ساخت
مدارهای بزرگ، با استفاده از این فیبرها از حجم مدار کاسته می شود.
4- فیبرهای آماده: در این نوع از فیبرها جای پایه قطعات مختلف بر روی فیبر سوراخ شده است و
می توانیم قطعات را بر روی فیبر قرار دهیم و توسط سیم اتصالات مربوطه را به هم وصل کنیم.
2-1- طریقه ساخت فیبر مدار چاپی:
ابتدا فیبر را توسط تیغ موکن بری یا اره موئی به اندازه دلخواه می بریم و
سپس با استفاده از کاغذ سمباده سطح فیبر را تمیز می کنیم تا چربی های
موجود بر روی فیبر پاک شود.
3-1- طریقه نصب قطعات بر روی فیبر مدارچاپی:
دو روش برای نصب قطعات بر روی فیبر مدارچاپی وجود دارد. در صورتی که جای
کمی برای نصب قطعات وجود داشته باشد می توانیم قطعات را به صورت ایستاده
بر روی فیبر قرار دهیم. در این حالت فاصله پایه های قطعات به کمترین مقدار
ممکن می رسد. چنانچه بر روی فیبر مدارچاپی جای کافی برای نصب قطعات وجود
داشته باشد میتوانیم قطعات را به صورت خوابیده لحیم کنیم.
فاصله پایه های آی سی ها از یکدیگر 5/2 میلیمتر و فاصله دو ردیف پایه از
هم 5/7 میلیمتر است. در مورد نصب آی سی های قدرت باید فضای کافی برای نصب
رادیاتور در نظر گرفته شود.
4-1- رسم نقشه مربوط به خطوط پشت فیبر:
ابتدا نقشه مدار را رسم می کنیم سپس خطوط بر روی نقشه را به نحوی رسم می
کنیم که خطوط از روی هم عبور نکنند. سپس کاغذ را بر می گردانیم و نقشه
خطوط را بر روی قسمت مسی فیبر مدار چاپی منتقل می کنیم. در رسم نقشه مدار
برای اینکه خطوط از روی هم عبور نکنند میتوانیم خطوط را از بین پایه های
قطعات عبور دهیم. در صورتیکه خطوطی باید از روی هم عبور کنند از جامپر
استفاده می کنیم.
5-1- انتقال نقشه مدار بر روی فیبر:
با استفاده از Printer: پس از رسم خطوط مدار از طریق پروتل توسط یک
کاغذ روغنی از طرح مداری پرینت گرفته می شود سپس کاغذ را بر روی فیبر قرار
داده و با اتوی داغ بر روی آن کشیده می شود. بدین ترتیب مدار بر روی فیبر
چاپ می گردد. برای از بین بردن مس های اضافی فیبر یک محلول اسیدی که ترکیبی
از آب داغ و اسید کرومیک یا اسیدهیروفلوراید می باشد درست کرده و فیبر را
در آن قرار می دهیم تا قسمت های اضافی مس از بین برود.
فصل دوم
میکروکنترلرها
میکرو کنترلرها
همانطور که می دانید در واقع کامپیوترهای بسیار کوچکی هستند که دارای
بخش های اصلی حافظه، پردازشگر، ورودی و خروجی می باشند و قابل برنامه ریزی
شدن هستند. برنامههای مورد نظر که
میبایستی توسط میکروکنترلر اجرا شوند بایستی به زبان ماشین یا همان صفر و یک ها دربیایند و سپس در حافظه میکروکنترلر جای بگیرند.
این برنامه ها بسته به نوع میکروکنترلری که استفاده می کنیم می تواند در
کامپایلرهای مختلفی نوشته شوند و آن کامپایلر برنامه را پس از رفع عیب،
کامپایل یا اصطلاحاً به زبان ماشین ترجمه می نماید و یک فایل از برنامه که
به زبان ماشین یا همان صفر و یک هاست به ما تحویل می دهد.
دستورات این فایل بایستی توسط نرم افزارهای برنامه ریزی کننده یا همان
پروگرامر وارد حافظه میکروکنترلر شود. علاوه بر نرم افزار پروگرامر، نیاز
به یک مدار ساده نیز داریم که برنامه را از کامپیوتری که در آن ذخیره شده
به حافظه میکروکنترلر منتقل نماید. این مدار همان سخت افزار پروگرامر می
باشد.
در هر میکروکنترلر بعضی از پین ها علاوه بر کارکرد خود در حالت اجرای
برنامه، به عنوان پایه های برنامه ریزی میکروکنترلر نیز تعریف شده اند، با
اتصال این پایه ها به کامپیوتر از طریق یکی از پورتهای کامپیوتر که می
تواند پورت سریال یا موازی و یا USB باشد، و اجرای نرم افزار پروگرامر،
کدهای زبان ماشین یا همان دستورات ما که قرار است میکروکنترلر اجرا نماید و
تبدیل به صفر و یک شده اند، وارد حافظه میکروکنترلر شده و از آنجا آماده
اجرا توسط میکرو خواهند شد.
مدار سخت افزاری پروگرامرها اگرچه بسیار ساده و قابل ساخت در آزمایشگاه
می باشند، اما معمولاً به دلیل استفاده مکرر و یا عدم ساخت دقیق و بادوام،
ممکن است خوب کار نکنند و یا زود دچار آسیب شوند. از این رو معمولاً برخی
شرکت ها پروگرامرهای هر نوع میکروکنترلر را به صورت آماده ساخته و در معرض
فروش و استفاده قرار می دهند که این نوع پروگرامرها از دقت و کارایی بهتری
برخوردارند. در این پروژه سخت افزار پروگرامر به پین هی GND، MISO، SCK و
RESET پورت B متصل شده است.
1-2- AVR
یکی از انواع میکروکنترلرهای جدید که در بازار الکترونیک ارائه شده است،
میکروکنترلرهای شرکت ATMEL با نام میکروکنترلرهای خانواده AVRمی باشد. این
میکروکنترلرهای هشت بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر زبان
های سطح بالا (HLL) بسیار مورد توجه قرار می گیرند. این میکروکنترلرها از
معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری
پیشرفته و دستورات بهینه، حجم کدتولید شده را کم و سرعت اجرای برنامه را
بالا ببرد. یکی از مشخصات این نوع میکروکنترلرها دارا بودن 32 رجیستر همه
منظوره می باشد. همچنین در این میکروکنترلرها از حافظه های کم مصرف و غیر
فرار FLASH و EEPROM استفاده می شود، کامپایلرهایی به زبان BASIC و C که
زبانهای پرکاربرد در دنیا هستند برای این نوع میکروها طراحی شده است و
علاوه بر آن از زبان اسمبلی نیز همچنان می توان برای برنامه نویسی استفاده
کرد. به عنوان مثال کامپایلر BASCOM با زبان BASIC برای برنامه نویسی این
نوع از میکروکنترلرها می تواند مورد استفاده قرار گیرد.
میکروکنترلرهای AVR به سه دسته اصلی تقیسم می شوند:
- سری AT90S یا AVR
- سری TINYAVR
- سری MEGAAVR
سری MEGAAVR میکروکنترلرهای نوع MEGAAVR دارای قابلیت های بیشتری نسبت به دو سری دیگر هستند.