![]() |
![]() |
|
| مهندسی برق الکترونیک را بهتر بشناسیم (به زبان ساده و ....) |
|
بيش از نيم قرن پيش، هنگامي كه هنوز هيچ تراشه سيليكونياي ساخته نشده بود، آلن تورينگ، يكي از بحثانگيزترين پرسشهاي فلسفي تاريخ را پرسيد. او گفت <آيا ماشين ميتواند فكر كند؟> و اندكي بعد كوشيد به پيروي از اين قاعده كه <هر ادعاي علمي بايد از بوته آزمايش سربلند بيرون بيايد>، پرسش فلسفي خود را با يك آزمايش ساده و در عين حال پيچيده جايگزين كند. او پرسيد: آيا يك ماشين - يك كامپيوتر - ميتواند آزمون <بازي تقليد> را با موفقيت پشت سر بگذارد؟ آيا ماشين ميتواند از انسان چنان تقليد كند كه در يك آزمون محاورهاي نتوانيم تفاوت انسان و ماشين را تشخيص دهيم؟ او در سال1950 بر اساس محاسباتي تخمين زد كه پنجاه سال بعد، كامپيوتري با يك ميليارد بيت حافظه خواهد توانست به موفقيتهايي در اين زمينه دست پيدا كند. اكنون كه در آستانه سال 2007 ميلادي هستيم، حتي هفت سال بيشتر از زماني كه او لازم دانسته بود، هنوز هيچ ماشيني نتوانستهاست از بوته آزمون تورينگ با موفقيت خارج شود.
اما همين پرسش كافي بود تا بشر در نيم قرن اخير به دستاوردهاي شگرفي در زمينه هوش مصنوعي برسد. دست كم يكي از پيشبينيهاي تورينگ درست از آب درآمد: در سال 2000 مفهوم <هوش مصنوعي> براي هيچكس غيرقابلباور نبود. در اين مقاله نگاهي داريم به سير تحولاتي كه پس از اين پرسش تاريخي در دنياي علم و مهندسي به وقوع پيوستند.
ادامه مطلب |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 . که در تمام مثالهای آورده شده از این آی سی استفاده شده است .
مشخصات سخت افزاری ATMEGA32 : شکل ظاهری و پایه ها: ATMEGA32 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد . ATMRGA32 دارای چهار پورت 8بیتی ( 1 بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد . ولتاژ مصرفی این آی سی از 4.5 V تا 5.5V میتواند باشد . فرکانس کار هم تا 16MHz میتواند انتخاب شود که تا 8MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند . پایه ی شماره 9 نیز ریست سخت افزاری میباشد و برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن نیز باید به زمین وصل میشود . پایه های 12 , 13 نیز برای استفاده از کریستال خارجی تعبیه شده است . ادامه مطلب |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركز (CPU) و واحد كنترل (CU)است.
CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد نظر انجام شوند. حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد. درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند. ادامه مطلب |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
در صنعت امروز بدون سنسورها و سوئيچها هيچ پروسه صنعتي قابل اجرا نيست.در اين مقاله به بررسي يك سري ازمهمترين سنسورها و سوئيچهاي صنعتي ميپردازيم.
ادامه مطلب |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
|
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
برای پروگرام کردن یک میکروی AVR تنها به یک فیش پارالل (Parallel) که بهش LPT یا DB-25 هم میگن نیاز داریم.
بعد باید یک سری از پایههای میکرو رو به پایههای فیش پارالل لحیم کرد. پایههای مورد نیاز میکرو، MISO، MOSI، SCK، RESET و پایه زمین (GND) هستند . اول از همه باید این پایههای میکرو رو پیدا کنید. برای این کار به Datasheet میکرو احتیاج داریم. بسته به نوع میکرویی که باهاش کار میکنید میتونید از سایت ATMEL دیتاشیت مورد نظر رو دانلود کنید و به پایههای اون میکرو نگاه کنید. من اینجا پایههای 2 تا میکروی معروف بازار رو که به احتمال زیاد شما باهاش کار خواهید کرد نشون دادم. ادامه مطلب |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
يكي از انواع ميكروكنترلرهاي جديد كه در بازار الكترونيك ارائه شده است، ميكروكنترلر هاي شرکت ATMEL با نام میکروکنترلرهای خانوادهAVR می باشد. این میکروکنترلر های هشت بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر زبان های سطح بالا (HLL ) بسیار مورد توجه قرار می گیرند. این میکروکنترلر ها از معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع میکروکنترلر ها دارا بودن 32 رجیستر همه منظوره می باشد. همچنین در این میکروکنترلر ها از حافظه های کم مصرف و غیر فرار FLASH و EEPROM استفاده می شود. کامپایلر هایی به زبان BASIC و C که زبانهای پرکاربرد در دنیا هستند برای این نوع میکرو ها طراحی شده است و علاوه برآن از زبان اسمبلی نیز همچنان می توان برای برنامه نویسی استفاده کرد. به عنوان مثال کامپایلر BASCOM با زبان BASIC برای برنامه نویسی این نوع از میکروکنترلر ها می تواند مورد استفاده قرار گیرد. میکروکنترلر های AVR به سه دسته اصلی تقسیم می شوند: -->سری AT90S یا AVR -->سری TINYAVR -->سری MEGAAVR میکروکنترلر های نوع MEGAAVR دارای قابلیت های بیشتری نسبت به دو سری دیگر هستند. در اینجا به بررسی مشخصات و پایه های یکی از میکروکنترلرهای پرکاربرد سری MEGA به نام ATMega32 می پردازیم: ATMega32 مهمترین مشخضات این میکروکنترلر 40 پایه عبارت است از: کارایی بالا و توان مصرفی کم 32 رجیستر (ثبات) 8 بیتی سرعت با سقف 16 میلیون دستور در ثانیه در فرکانس 16 Mhz 32 کیلو بایت حافظه FLASH داخلی قابل برنامه ریزی با قابلیت ده هزار بار نوشتن و پاک کردن 2 کیلو بایت حافظه داخلی SRAM 1024 بایت حافظه EEPROM داخلی قابل برنامه ریزی با قابلیت صد هزار بار نوشتن و خواندن قابلیت ارتباط JTAG دو تایمر/شمارنده هشت بیتی یک تایمر/شمارنده شانزده بیتی چهار کانال PWM هشت کانال مبدل A/D ده بیتی یک مقایسه کننده آنالوگ داخلی WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی ارتباط سریال برای برنامه ریزی: ISP USARTسریال قابل برنامه ریزی دارای شش حالت SLEEP منابع وقفه داخلی و خارجی اسیلاتور داخلی RC کار با ولتاژ 4.5 تا 5.5 فرکانس کاری 0 تا 16 مگاهرتز 32 خط داده ورودی و خروجی قابل برنامه ریزی پایه های میکروکنترلرATMega32: توضیحات تکمیلی: برای پروگرام کردن این آی سی ها از PIN های MISO - MOSI - SCK - RESET - GND - VCC استفاده می شود. سایر PIN ها هم که به چهار پورت A - D - C - B تقسیم می شوند، هم می توان به عنوان خروجی از آنها استفاده کرد و هم می توان به عنوان ورودی از آنها استفاده کرد.(بستگی به برنامه نویس دارد). |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
اتصال صفحه کلید ماتریسی 16 تایی به میکروکنترلر می باشد و کاربردهای زیادی در اکثر پروژه های مبتنی بر مییکروکنترلر دارد . نقشه ی شماتیک سخت افزار را می توانید از اینجا دانلود کنید و نرم افزار را هم که در زیر مشاهده می کنید همان نرم افزاری است که در کتاب «میکروکنترلر 8051» نوشته ی محمد علی مزیدی برای اتصال صفحه کلید ماتریسی 16 تایی به میکروکنترلر پیشنهاد شده است . با این تفاوت که نرم افزار موجود در کتاب از 2 پورت استفاده می کند ولی نرم افزاری که در اینجا مشاهده می کنید برای استفاده از یک پورت بهینه شده است و برای نمایش اعداد مربوط به کلید های فشرده شده نیز از 4 عدد سون سگمنت که به روش مالتی پلکس بسته شده اند بهره می برد . توضیحات لازم در مورد نرم افزار صفحه کلید را در ذیل آن مشاهده می کنید و در مورد نرم افزار مالتی پلکس هم در آزمایش قبل به طور مفصل توضیح داده شده است .
Zero Equ 0C0H One Equ 0F9H Two Equ 0A4H Three Equ 0B0H Four Equ 99H Five Equ 92H six Equ 82H Seven Equ 0F8H Eight Equ 80H Nine Equ 90H _A Equ 88H _B Equ 83H _C Equ 0C6H _D Equ 0A1H _E Equ 86H _F Equ 8EH
ادامه مطلب |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
آزمایش اول : اتصال یک LED به میکروکنترلر خوب اگه وسایل و قطعات لیست مذکور را تهیه کردید ، نرم افزار Keil را دانلود و نصب کرده و به راحتی میتونید یک پروژه ی جدید ایجاد کنید ، پروگرامر شرح داده شده در بالا را ساخته و تست کردید و منبع تغذیه ی 5+ولت را هم ساختید ، میریم سراغ اولین و در واقع ساده ترین آزمایش که اتصال یک LED به میکروکنترلر و روشن و خاموش کردن آن است . در این آزمایش ما دو هدف را دنبال میکنیم : 1_ اتصال صحیح یک LED به میکرو و 2_ ایجاد یک تأخیر یک ثانیه ای نسبتاً دقیق با استفاده از تایمر صفر . قبل از اینکه به سراغ آزمایشهای بعدی بریم ، باید این تذکر را بدم که من توی این وبلاگ قصد آموزش برنامه نویسی اسمبلی را ندارم و فرض را بر این میگذارم که شما با دستورات اسمبلی و نحوه ی کاربرد اونها کاملاً آشنا هستید . از اونجائیکه پورتهای میکروکنترلرهای سری 8051 فقط در حالت خروجی صفر جریاندهی خوبی دارند و جریان دهی پورتها در حالت خروجی یک ، برای روشن کردن یک LED کافی نیست ، در اینجا پایه ی کاتد LED را به میکرو وصل کرده و پایه ی آند LED را هم با یک مقاومت 470 اهم به 5+ولت وصل می کنیم . لازمه به این نکته اشاره کنم که LED هایی مورد استفاده من از نوع مرغوب هستند که حتی با یک مقاومت 7/4 کیلو اهم هم روشن می شوند و فکر کنم در اکثر شهرها هم از این نوع LED پیدا میشه . برتامه ی میکرو را هم در زیر مشاهده می کنید . در این برنامه از تایمر صفر در مود یک استفاده شده که با توجه به مقداردهی اولیه پس از 62500 میکرو ثانیه سر ریز می کند و پس از هر بار سر ریز محتوای رجیستر R2 با دستور Djnz یک واحد کم می شود . با توجه به مقداردهی اولیه این رجیستر که عدد 16 هست ، سرانجام پس از 16 بار تکرار حلقه مذکور زمانی برابر 62500*16 میکرو ثانیه یا 1000000 میکروثانیه سپری خواهد شد که همان یک ثانیه می باشد . پس از گذشت زمان یک ثانیه وضعیت پایه ی P0.0 که LED به آن متصل است معکوس می شود و پس از مقدار دهی دوباره ی R2 برنامه مجدداً وارد حلقه ی تاخیر می شود . Org 0H Sjmp Mov r2,#16 Initialize: Mov Th0,#0BH Mov Tl0,#0DBH Setb Tr0 Jnb Tf0,$ Clr Tr0 Clr Tf0 Djnz r2,Initialize Cpl P0.0 Mov r2,#16 Sjmp Initialize End |
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
ادامه مطلب |
||||||||
|
+ تهیه و تنظیم
توسط مهندس علی قاسمی |
|
|
صفحه نخست پست الکترونیک آرشیو |
| درباره وبلاگ |
"Nature laughs at the difficulties of integration" - Pierre-Simon de Laplace
|
|
RSS
|