
کتاب میکروکنترلرهای PIC با نام Microcontrollers – Fundamentals and Applications with PIC با گرایش به میکروکنترلرهای PIC نوشته Fernando E. Valdes-Perez و Ramon Pallas-Areny می باشد . این کتاب به معرفی میکروکنترلر PIC و کاربردهای آن می پردازد . سرفصل های اصلی این کتاب به شرح زیر است :
کامپایلر های مختلفی را برای این منظور می توان یافت. این کامپایلر ها تنها در چند دستور با هم متفاوتند لذا بهتر است که فقط با یک نوع از آنها کار کرد. کامپایلری که پیشنهاد می کنم و درباره آن توضیح می دهم، کامپایلر و شبیه ساز میکروکنترلر PIC یعنی PIC Simulator IDE می باشد که می توان جدید ترین نسخه آن را از وب سایت www.oshonsoft.com دانلود کرد (نسخه رجیسترشده این نرم افزار در قسمت دانلودهای همین سایت موجود می باشد.). در 3 قسمت دستورات این کامپایلر شرح داده می شود. هیچ فرقی نمی کند که دستورات را با حروف کوچک بنویسید یا بزرگ . کامپایلر این نرم افزار دستورات را تشخیص می دهد و آن ها را به رنگ آبی نمایش می دهد. برای اینکه بتوانید در این نرم افزار به زبان بیسیک برنامه نویسی نمائید ابتدا برنامه را باز کنید و روی منوی TOOLS رفته و سپس Basic Compiler را انتخاب نمائید. دستورات: DIM از این دستور برای اعلام متغیر ها استفاده می شود. متغیرها (دیتا) می توانند BIT , BYTE , WORD باشند. یک بیت یا صفر است یا یک ، یک بایت byte از 8 بیت تشکیل می شود و یک word (کلمه) از 2 بایت تشکیل می شود. این دستور را می توان در هر جای برنامه استفاده نمود منتها قبل از استفاده از متغیر. تعداد متغیرهایی که می توان به عنوان bit,byte,word در برنامه تعریف نمود بستگی به حافظه RAM میکروکنترلر دارد. به عنوان مثال در میکروکنترلر 16 ,PIC 16F84متغیربیت , 52 متغیر بایت و 25 متغیر کلمه می توان به طور مجزا تعریف کرد. شاید ندانید که میکروی PIC شما چند متغیر بایت یا کلمه دارد . می توانید به دیتا شیت آن مراجعه کنید . البته باید بدانید که دانستن این موضوع چندان اهمیتی ندارد و در برنامه نویسی به مشکلی بر نخواهید خورد. فرم کلی دستور DIM به صورت زیر است: DIM varname(array) datatype که datatype می تواند bit , byte و یا word باشد. مثال: DIM A AS BIT DIM B AS BYTE DIM X AS WORD اگر بخواهیم از array استفاده کنیم مطابق مثال زیر این کار را انجام می دهیم: DIM A(10) AS BYTE با این دستور 10 متغیر از نوع بایت با نام های A0 تا A9 تعریف می شود. Varname.BIT اگر متغیری به صورت بایت تعریف شده باشد می توان با استفاده از دستور فوق به تک تک بیت های آن متغیر دسترسی داشت. که BIT شماره بیت مورد نظر است که می تواند از 0 تا 7 باشد. مثال: Dim name As Byte name.3 = 0 دستور فوق عدد صفر را به چهارمین بیت از متغیر name اختصاص می دهد. SFRname.BITname با استفاده از دستور بالا می توان به بیت های ثبات های با منظور خاص (SFRs) دست یافت. مثلا با دستور (PORTA.1) می توان به دومین بیت پورت A دست یافت و یا با دستور (INTCON.INTF) می توان به بیت INTF ثبات INTCON دست یافت. Varname.HB Varname.LB اگر متغیری به صورت کلمه تعریف شده باشد با دستورات بالا می توان به کم ارزش ترین و با ارزش ترین بایت
آموزش PIC BASIC PRO :
در این بخش تمامی دستورات بیسیک مورد نیاز را آموزش خواهید دید .
در این بخش با سخت افزار میکرو و پایه های آن آشنا خواهید شد و با مثال های متفاوت و عملی نحوه کار با آن را یاد خواهید گرفت .
به همراه مثالهای متعدد:
- مثال 1 : مدار راه انداز میکروکنترلرهای PIC
- مثال 2 : راه اندازیLCD
- مثال 3 : ارتباط سریال با کامپیوتر
- مثال 4 : نحوه استفاده از ADC در PIC
- مثال 5 : ساخت کیبورد سریال
- مثال 6 : اندازه گیری دما و نمایشآن در پنجره ارتباط سریال MicriCode Studio
در رابطه با نرم افزار PIC Basic
سادگی
و آسانی مهمترین ویژگی یک زبان برنامه نویسی سطح بالا می باشد که موجب شده
است بطور گسترده ای در میکروکنترلر ها برای کارهای بزرگ استفاده شود. زبان
برنامه نویسی سطح بالا با بکارگیری توابع آماده زمان برنامه نویسی را
کوتاه می کند و همچنین پیچیدگی برنامه تنها به موضوع اصلی مورد نظر کاربر
محدود می شود. برنامه نویس می تواند تمرکز بیشتری بر روی کار مورد نظر خود
داشته باشد و از اتلاف وقت بر روی نوشتن کدهای جانبی که دائما در پروژه های
مختلف تکرار می شود جلوگیری کند.
مثلا در بسیاری از پروژها به برنامه برای ارسال اطلاعات به قطعه دیگر یا کامپیوتر نیاز است و یا نمایش پیغامی بر روی نمایشگرLCD و یا تولید پالس PWM و غیره نیاز است که همه اینها بصورت آماده در یک زبان سطح بالا مانند PIC Basic موجود است.
☑️بیل گیتس چگونه پولدار شد؟
@joingama
🔶راز های ثروتمندی🔶
🔘نکته اول: مسیر اشتباه را تشخیص و آن را تغییر بده
➰در سال 1973 بیل گیتس وارد دانشگاه هاروارد شد. با وجود اینکه رشته اولیه او برای تحصیل در این دانشگاه حقوق بود، بعد از گذشت مدت کوتاهی رشته خود را تغییر داد و رشته علوم ریاضی و کامپیوتر را انتخاب کرد.
🔘نکته دوم: اعتماد به نفس داشته باش و جسارت به خرج بده
➰دو سال بعد از ورود به هاروارد، بیل گیتس ترک تحصیل می کند تا مایکروسافت را به همراه پاول آلن تاسیس کند. از آنجایی که او هیچ گاه موفق نشد تحصیلات تکمیلی خود را به پایان برساند، دانشگاه هاروارد در سال 2007 دکترای افتخاری را به بیل گیتس اهدا کرد.
🔘نکته سوم: اصول موفقیت را فقط در مدرسه نمی آموزند
➰گیتس طی سخنرانی در یکی از دبیرستان های آمریکا خطاب به دانش آموزان گفت که در دبیرستان خیلی چیزها را به دانش آموزان نمی آموزند. او از هفت اصل برای موفقیت نام می برد که اولین و مهم ترین شان این نکته است: «در زندگی همه چیز عادلانه نیست و بهتر است با این حقیقت کنار بیایید.»
🔘نکته چهارم: رک باش اما بی ادب نه
➰گیتس زمانی که در مایکروسافت کار می کرد به سبب زبان نیش دار و پر از طعنه اش شهرت داشت و لحن کلام او در جلسه ها و ایمیل هایش معمولا همین گونه بود اما مخاطب مستقیم او افراد نبودند. یکی از اشخاصی که با گیتس کار کرده می گوید: «گیتس شاید عصبانی به نظر می رسید اما هیچ گاه ندیدم که با فردی بد صحبت کند.»
🔘نکته پنجم: از خودت یک چهره تاثیرگذار اجتماعی بساز
➰بیل گیتس در طول زندگی خود حدود 100 میلیارد دلار را در امور خیریه (مستقیم و غیرمستقیم) هزینه کرده است. کمک های بنیاد بیل گیتس به بهداشت جهانی، بیشتر از کمک های سازمان بهداشت جهانی (WHO) در این زمینه است.
🔘نکته ششم: تک بعدی نباش
➰اکنون دیگر مایکروسافت بزرگترین منبع درآمد گیتس نیست. برای سال های متمادی است که او در حال فروش سهام خود از این شرکت و سرمایه گذاری در کسب و کارهای دیگر است.
به نام خدا
سلامی دوباره به همراهان همیشه ناهمراه !
چطورید دوستان ؟!
قسمت شد یه بار دیگه پست آموزش بزارم براتون،ایشالا که خوشتون بیاد و بتونید از این مطالب استفاده کافی رو ببرید !
امروز میخوام راجع به وقفه یا Interrupt صحبت کنم !
دقت کنید که تنها در حد آشنایی و معرفی با وقفه آشنا میشید و در این قسمت از آموزش از بیان جزئیات خودداری میکنم و تنها هدفم از نوشتن این بخش از آموزش اینه که اگه یه جا گفتم "وقفه" نگرخید !!!
اگه کلمه interrupt رو داخل دیکشنری معادل فارسیشو ببینید با عباراتی نظیر :
قطع کردن،گسیختن،کلام کسی را قطع کردن،منقطع کردن و ... روبرو خواهید شد.
اما اینجا منظور از interrupt دقیقا چیه ؟
وقفه مکانیزمی است که میکروکنترلر را برای پاسخگویی به برخی وقایع لحظه ای فعال میکند.(این تعریف کتابیش بود !)
مکانیزم :
هنگام رخداد وقفه،برنامه ای که در حال اجراست قطع میشود و برنامه وقفه انجام میشود و پس از آن،برنامه از همانجا که قطع شده است از سر گرفته میشود و ادامه پیدا میکند.
مراحل اجرای یک وقفه ؛
پس از آنکه میکروکنترلر درخواست وقفه را دریافت کرد مراحل زیر انجام میشود :
1.به دستوری که در حال اجرای آن باشد پایان میدهد و آدرس دستورالعمل بعدی را در فضایی به نام پُشته (Stack) ذخیره میکند.
2.به جدول بردار وقفه مراجعه میکند،آدرس سرویس وقفه (ISR) را پیدا میکند،به آدرس بدست آمده پرش میکند.
3.زیربرنامه وقفه رو اجرا میکند.
4.آدرسی را که در پشته ذخیره کرده بود را برداشته و اجرای ادامه برنامه را از سر میگیرد.
بردار وقفه : هنگام رخدادن وقفه،آدرسی که در شمارنده برنامه قرار میگیرد رو بردار وقفه مینامند.
پُشته (Stack) چیست ؟
قسمتی از حافظه داده SRAM است که برای اجرای برنامه وقفه مورد نیاز است.
در واقع این بخش یک جزئی از SRAM هست که یه سری دستورات جهت فراخوانی میکرو و علی الخصوص وقفه رو در خودش ذخیره میکنه ! اینو دیگه همه در جریانش هستید که RAM چکنویس (چرکنویس!) میکرو است.(اینو گفتم که فقط گفته باشم ! cool)
اما تعریف خودمونیش (یجور بگم کَف بُر بشید !!!) yes :
مثال :
فرض کنید نشستید پای کامپیوتر و مشغول تایپ کردن متنی از روی کتاب هستید.مثلا یه تحقیق میخواین تحویل استادتون بدید و میخواین 5 صفحه شو از کتاب کُپ بزنید.میاین و کتاب رو میزارید جلوتون و شروع میکنید به تایپ کردن !
در حالیکه 2 صفحه و 3 خط از کتاب رو تایپ کردید،ناگهان مادر گرامیتون صداتون میزنه که پسرم (یا دخترمcheeky) بفرما که ناهار حاضره !
شما هم از فرط گشنگی ! نوشتن ادامه تحقیق رو بی خیال میشید و تا اونجایی که تایپ کردید رو علامت میزنید و مثل موشک خودتون رو به غذا میرسونید و پس از صرف نهار میاین سراغ کامپیوتر و شروع میکنید از خط 4 صفحه 3 (ادامش !) تایپ کردن !!!
این ساده ترین و کاملترین مثالی هست که میشه در مورد وقفه زد !
تحلیل مثال بالا با مراحل انجام وقفه که براتون بالاتر گفتم ! :
*شما در حال تایپ کردن هستید. ==> در حال انجام کار عادی خود
*مادر گرامی شما رو صدا میزنند. ==> درخواست وقفه (صدا زدن)
*توقف عملیات تایپ کردن. ==> متوقف شدن کار و ذخیره دستورالعمل بعدی (1)
*به سمت محل صرف غدا میروید. ==> رجوع به آدرس وقفه (2)
*شروع به غذا خوردن میکنید. ==> انجام برنامه وقفه (غذا خوردن) (3)
*بر میگردید و ادامه تایپتون رو انجام میدید. ==> بازگشت به محل قبلی و ادامه فعالیت (4)
تصویر بالا دقیقا همون حرفهایی که زدم رو داره بیان میکنه.
برنامه در حال اجراست،ناگهان وقفه درخواست میشه،میکروکنترلر به جدول بردار وقفه مراجعه میکنه(1)،آدرس زیرروال وقفه رو پیدا میکنه و پرش میکنه به اون آدرس(2)،پس از اینکه برنامه وقفه اجرا شد مجددا به برنامه اصلی برمیگرده (3).
دیاگرام پایین هم همین مسئله رو با یه چشم دیگه نگاه میکنه !
حالا یه عده میان میگن :" آقا قبول،توضیحاتم جامع بود و با مثال برامون جا انداختی وقفه رو.اما ما آخرش نفهمیدیم این وقفه به چه درد میخوره و اصلا کجا باید ازش استفاده کرد.اصلا استفاده نکنیم ازش چی میشه ؟! "
اما پاسخ من چیه ؟!
من هم بهشون میگم : " یکم گردو و ماهی بخورید ! (فسفر داره برای مغزتون خوبه !!!) خخخخخخخخخخخخ laughcheekycool "
اما جدا از شوخی و بی مزه بازی و مسخره کردن دیگران،این سوال،سوال بجاییه !
بهتره که یه مطلبی رو حاشیه وار توضیح بدم ؛
پردازنده ها برای اینکه از رویدادهای داخلی و خارجی مطلع بشند از دو روش میتونند استفاده کنند :
روش اول ؛ روش سرکشی یا polling :
در این روش با استفاده از برنامه نویسی،یه فواصل زمانی دلخواه رو معین میکنیم و بصورت متناوب دائم رویداد مورد نظرمون چک میشه که آیا اتفاق افتاده یا نه ! (اونایی که برنامه نویسی کردند،بهتر متوجه شدند من چی میگم !)
میکرو کنترولر و میکروپروسسور تقریبا از یک شاخه تکنولوژیک وساختاری هستند اما در اجزای وابسته، با هم تفاوت های عمده دارند در میکرو پروسسورها فقط واحد پردازش به صورت مجزا به صورت یک ای سی وجود دارد که رم و رام و حتی ثبات ها در ای سی های مجزا به میکروپروسسور وصل و تشکیل یک میکرو کامپیوتر را می دهند اما در میکرو کنترلر تمام واحد های یک کامپیوتر از جمله رم و رام و ثبات ها در درون یک ای سی به صورت فشرده به نام میکرو کنترولر وجود دارد که معمولا در دستگاه های تجاری برای کاهش قیمت دستگاه مانند تلویزیون و ماکروویو و غیره استفاده می شود.[۴]
از مهمترین و بزرگترین تولیدکنندگان میکرو کنترلرها میتوان از شرکت اَتمِل (به انگلیسی: Atmel) نام برد که در حال حاضر سری ایویآر و ۸۰۵۱ میکروکنترلرهای این شرکت در ایران بدلیل سهولت استفاده مورد توجهاست.
برنامه ریزی میکروکنترلرهای AVR بیشتر با زبان C و با کامپایلر codevision، و یا با زبان بیسیک و توسط نرمافزار BASCOM انجام میشود. یکی دیگر از تولیدکنندگان بزرگ میکروکنترلرها شرکت Microchip است که میکروکنترلرهای این شرکت با نامهای تجاری PIC و dsPIC نیز از محبوبیت زیادی برخوردار است.[۳]
شرکتهای بزرگ دیگری نیز در زمینه تولید میکروکنترلر فعالیت میکنند که از آن جمله میتوان بهTI، موتورولا و فیلیپس اشاره کرد.شرکت intel هم نقش بسیار مهمی در تولید میکروکنترلرهای خانوادهٔ ۸۰۵۱ دارد.
البته اخیراً با قدرتنمایی میکروکنترلرهای آرم، این میکروکنترلرهای 32 بیتی با شدت بسیار زیادی در حال فراگیر شدن است و از رشد بسیار زیادی در بازار برخوردار است . میکروکنترلرهای آرم موجود در ایران توسط سه شرکت انایکسپی، اتمل و ST تولید می شوند، که در این میان سهم میکروکنترلرهای انایکسپی و اتمل بیشتر است