Skip to content
Menu
آموزش تخصصی و رایگان میکروکنترلر، FPGA و مدارچاپی
  • متفرقه
  • تماس با ما
  • درباره مدرس
  • تصاویر
  • محصولات
  • دوره هــــــــــا
    • دوره های ویدیویی
    • برنامه نویسی زبان C
    • FPGA-VHDL-Verilog
    • میکروکنترلر ARM
    • میکروکنترلر AVR
    • میکروکنترلر PIC
    • پردازنده ی DSP
    • طراحی مدار چاپی با Altium
    • Labview
    • MATLAB
    • رباتیک
    • شرح دوره های آموزشی
    • درباره ی سازمان فنی و حرفه ای
  • آموزش
    • آموزش الکترونیک از صفر
    • طراحی مدار چاپی با Allegro
    • دانشگاه انقلاب اسلامی
    • دانلود فایل های آموزشی
    • شرح دوره های آموزشی
    • فایل های ارسالی شما
    • نمونه برنامه های بیسیک
    • پروژه ها و مدارات کاربردی
    • آموزش میکروکنترلر با زبان ساده (عالیه)
  • آزمون
  • ثبت نام کلاس
  • فروشگاه
  • صفحه اصلی
آموزش تخصصی و رایگان میکروکنترلر، FPGA و مدارچاپی
نمونه برنامه

نمونه برنامه های میکروکنترلر

Posted on 2013/01/062016/07/07 by محمد رضا بیگی

نمونه برنامه ی 01

University

در این برنامه یک LED روشن و خاموش می شود. در ابتدا پورت A خروجی شده و سپس هر 0.5 ثانیه یک بار خاموش و روشن می شود.

دانلود


نمونه برنامه ی 02

University

در این برنامه با مقدار دهی به رجیستر PORTA یک فلاشر 8 کانال ساخته شده است که به صورت اتوماتیک مد چشمک زدن آن تغییر می کند.

دانلود


نمونه برنامه ی 03

در این نمونه برنامه برای کاهش حجم نمونه برنامه ی 02 و کاهش تعداد خط های برنامه از حلقه ی for استفاده شده است. تو ضیحات برنامه با // شروع شده اند که برای راهنمایی نوشته شده اند. دستور << یعنی شیفت به راست و دستور >> یعنی شیفت به چپ عدد می باشد (یعنی به ترتیب تقسیم بر 2 و ضرب در 2 شدن عدد)

دانلود


نمونه برنامه ی 04

University

در این نمونه برنامه با فشار دادن کلید موجود LED روشن شده و با رها کردن کلید، LED خاموش می شود. برای تثبیت ولتاژ روی پایه ی PA1 از یک مقاومت Pull-Down استفاده شده است. ویژگی این برنامه این است که تا وقتی کلید را نگه داریم LED روشن می ماند. کلید مانند پدال چرخ خیاطی می ماند و می توان بجای LED یک موتور وصل کرد (در ادامه ی برنامه ها چگونگی اتصال موتور را ببینید).

دانلود


نمونه برنامه ی 05

در این برنامه وقتی کلید را می زنیم و رها می کنیم، LED روشن می شود و با دوباره فشردن و رها کردن کلید، LED خاموش می شود در صورتی که حلقه ی while حذف شود، با فشردن کلید، LED با سرعت بسیار زیادی تا حد 1/4 فرکانس میکروکنترلر روشن و خاموش می شود. تاخیر 50 میلی ثانیه ای داخل حلقه ی while جهت حذف لرزش های ناشی از فشردن شده کلید یا به اصطلاح debounce نوشته شده است.

دانلود


نمونه برنامه ی 06

University

در این برنامه که همان برنامه ی قبلی است، بجای LEDیک موتور وصل شده است. با فشردن کلید موتور روشن شده و می چرخد و با فشردن مجدد کلید موتور خاموش می شود. در صورتی که موتور آمپر بالایی لازم داشته باشد، بجای ترانزیستور BD139 باید درایور مناسب تری مانند L298 قرار داد که در مثال های بعدی گفته می شود.

دانلود


نمونه برنامه ی 07

University

در این برنامه هر 0.5 ثانیه یک بار متغیری زیاد می شود و روی lcd نمایش داده می شود. توابع مهم این برنامه عبارتند از:

;(lcd_init(16 جهت روشن کردن و مقدار دهی اولیه LCD

;()lcd_clear جهت پاک شدن LCD

;(lcd_puts(A جهت نمایش آرایه ی A که توسط تابع sprintf مقدار گرفته است.

دانلود


نمونه برنامه ی 08

University

در این برنامه با فشردن کلید متصل شده به پایه ی PA0 متغیر شمارنده زیاد شده و روی LCD نشان داده می شود و با فشردن کلید متصل شده به PA1 این شمارنده صفر می شود. عیب این برنامه این است که اگر کلید PA0 را نگه داریم، شمارنده به سرعت زیاد می شود. این عیب در برنامه ی 09 حل شده است.

دانلود


نمونه برنامه ی 09

در این برنامه با استفاده از یک حلقه ی while به میکروکنترلر می گوییم که تا وقتی کلید نگه داشته شده است متغیر شمارنده را زیاد نکن. با رها شدن کلید و دوباره فشردن آن متغیر زیاد می شود. این برنامه می تواند برای ساخت صلوات شمار استفاده شود.

دانلود


نمونه برنامه ی 10

University

در این برنامه سه متغیر به نام های s یعنی ثانیه، m یعنی دقیقه و h یعنی ساعت وجود دارند. در این برنامه در ابتدا متغیر s یک واحد افزایش می یابد اگر بیش از 59 شد، دقیقه اضافه می شود و s صفر می شود. اگر دقیقه بیش از 59 شود ساعت زیاد شده و m صفر می شود و اگر ساعت بیش از 23 شود s,m,h هرسه صفر می شوند و سپس با کمک تابع sprintf و lcd_puts مقدار این سه متغیر روش lcd نشان داده می شود و پس از تاخیر یک ثانیه ای مجددا ثانیه زیاد می شود.

این برنامه جهت ساخت ساعت بکار می رود. مشکل این برنامه در نمایش تک رقمی ساعت دقیقه و ثایه است که این مشکل در تمرین 11 حل شده است.

دانلود


نمونه برنامه ی 11

University

در این برنامه تمام خطوط برنامه شبیه برنامه ی قبلی است با این تفاوت که بجای کاراکتر u% در تابع sprintf از کاراکتر 02u% استفاده شده است. که به معنی نمایش دو رقمی عدد همراه با صفر است.

دانلود


نمونه برنامه ی 12

این برنامه شبیه برنامه ی قبلی می باشد با این تفاوت ک بجای اینکه ثانیه را در حلقه ی بی نهایت اضافه کنیم، داخل وقفه ی تایمر 0 اضافه کرده ایم. این تایمر طوری تنظیم شده است که هر یک ثانیه یک بار چهار بار سر ریز شود و پس از سر ریز شدن تایمر در این مدت زمان شمارنده 4 می شود و در این حالت یک واحد به ثانیه اضافه می شود. در داخل حلقه ی بی نهایت فقط زمان روی lcd نشان داده می شود. در این برنامه فرکانس میکروکنترلر 1MHz فرض شده است و تقسیم فرکانسی تایمر 0 برابر 1024 می باشد. محاسبات تعداد بار سر ریز شدن تایمر صفر و رجیستر TCNT0 در ابتدای برنامه نوشته شده است.

دانلود


نمونه برنامه ی 13

University

این برنامه مشابه برنامه ی 07 می باشد با این تفاوت که از تایمر صفر برای ایجاد یک ثانیه استفاده شده است. این تایمر در این برنامه تقسیم فرکانسی 256 دارد و فرکانس میکروکنترلر در این برنامه 8MHz در نظر گرفته شده است. در این حالت تایمر 123 بار سرریز می شود.

دانلود


نمونه برنامه ی 14

در این برنامه همانند برنامه ی 13 شمارنده ای زیاد می شود. فرق این برنامه این است که هر 200 میلی ثانیه یک بار شمارنده زیاد می شود. تقسیم فرکانسی تایمر 0 در این برنامه 64 است و فرکانس میکروکنترلر برابر 4MHz است. تایمر در این برنامه در مدت 200 میلی ثانیه 49 بار سرریز می شود.

دانلود


نمونه برنامه ی 15

در این برنامه همانند برنامه ی 13 شمارنده ای زیاد می شود. فرق این برنامه این است که هر 50 میلی ثانیه یک بار شمارنده زیاد می شود و نیز از تایمر 1 استفاده شده است. تقسیم فرکانسی تایمر 1در این برنامه 8 است و فرکانس میکروکنترلر برابر 8MHz است. تایمر در این برنامه در مدت 50 میلی ثانیه 1 بار سرریز می شود.

دانلود


نمونه برنامه ی 16

University

در این برنامه از تایمر صفر برای شمارش یک ثانیه و از تایمر 1 برای شمارش پالس های ورودی به پایه ی T1 استفاده شده است. هرگاه در مدت یک ثانیه تعداد پالس های ورودی را شمارش نماییم، فرکانس متر ساخته می شود. عیب این فرکانس متر این است که فقط تا فرکانس 65KHz را می تواند اندازه گیری نماید. در برنامه ی 17 این عیب رفع شده است.

دانلود


نمونه برنامه ی 17

University

این برنامه شبیه برنامه ی قبلی است با این تفاوت که این برنامه می تواند تا فرکانس های ورودی تا فرکانس خود میکروکنترلر را اندازه بگیرد (در این برنامه حداکثر 1MHz و در حالت کلی 16MHz) برای حل مشکل برنامه ی قبلی از وقفه ی تایمر 1 استفاده شده است. وقتی تعداد پالس های ورودی بیش از 65 هزار پالس در مدت یک ثانیه شود، تایمر 1 که 16 بیتی است سر ریز می شود و وقفه ی آن رخ می دهد. در برنامه ی وقفه متغیری به نام ovf زیاد می شود و بعد از گذشت یک ثانیه که وقفه ی تایمر 0 رخ می دهد، متغیر ovf در 65 هزار ضرب شده و با مقدار شمارشی تایمر 1 جمع می شود که این حاصل برابر فرکانس ورودی است. به دلیل اینکه اعداد بیش از 65 هزار با u% قابل نمایش نیستند، از کاراکتر کنترلی 1.0f% استفاده شده است به این معنی که حداقل یک رقم صحیح و حداکثر صفر رقم اعشار روی LCD نمایش بیابد. f% می تواند یک عدد 32 بیتی اعشاری یا صحیح را روی LCD نشان دهد.

دانلود


نمونه برنامه ی 18

University

در این برنامه موج PWM تولید می شود که زمان Duty Cycle آن از 1 در صد تا 99 درصد تغییر می کند. در این برنامه در حلقه ی بی نهایت متغیر x هر 50 میلی ثانیه زیاد می شود و مقدار x در رجیستر OCR0 قرار می گیرد.

دانلود


نمونه برنامه ی 19

University

در این برنامه تایمر صفر در حالت CTC راه اندازی شده است. با تغییر مقدار رجیستر OCR0 از 0 تا 255 مقدار فرکانس خروجی کاهش پیدا می کند.

دانلود


نمونه برنامه ی 20

University

در این برنامه اعداد 0 تا 9 بر روی سون سگمنت نمایش داده می شوند. سون سگمنت مورد استفاده از نوع کاتد مشترک می باشد.

دانلود


نمونه برنامه ی 21

University

در این برنامه توسط ارتباط USART اعداد 0 تا 9 برای پورت سریال کامپیوتر ارسال می شوند. در اینجا از virtual terminal برنامه ی proteus استفاده شده است. در عمل می بایست از آی سی MAX232 استفاده شود که طریقه ی راه اندازی آن در صفحه ی اصلی سایت آمده است. لازم به ذکر است که پورت سریال کامپیوتر داده ها را به صورت کد اسکی نمایش می دهد لذا موقع ارسال کد اسکی اعداد 0 تا 9 یا همان 0x30 الی 0x39 در رجیستر UDR قرار می گیرند تا ارسال شوند. نرم افزار دریافت اطلاعات در کامپیوتر می تواند Hyper Terminal یا Terminal نرم افزار code vision AVR باشد.

دانلود


نمونه برنامه ی 22

University

این برنامه عکس برنامه ی قبل می باشد یعنی میکروکنترلر از پورت سریال کامپیوتر کد های اسکی را دریافت کرده و روی lcd نشان می دهد. برای نمایش کد اسکی روی lcd از c% استفاده شده است.

دانلود


نمونه برنامه ی 23

University

با ترکیب دو برنامه ی قبل برنامه ی ساخته می شود که میکروکنترلر اول اطلاعات را برای میکروکنترلر دوم به صورت کد اسکی دریافت می کند و نمایش می دهد. در صورت قطع سیم ارتباطی دو میکروکنترلر، میکروکنترلر پایینی (گیرنده) هیچ داده ای را نشان نمی دهد.

دانلود


نمونه برنامه ی 24

University

در این برنامه دما از سنسور دمای LM35 توسط مبدل آنالوگ به دیجیتال یا همان ADC گرفته می شود و بر روی LCD نشان داده می شود.

دانلود


نمونه برنامه ی 25

University

در این برنامه از یک مقاومت LDR جهت اندازه گیری نور استفاده شده است. این مقاومت ها در نور زیاد در حدود 1K اهم و در تاریکی در حدود 1M اهم مقاومت دارند. در صورتی که نور از حد مشخصی کمتر شود (عدد بدست آمده از ADC بیش از 400 شود) رلهی خروجی که به لامپ ها وصل است روشن می شود. در صورتی که نور از حد معینی بیشتر شود (عدد ADC بیش از 375  شود. دلیل اختلاف 400 و 375 این است که یک مرز بین روشن و خاموش بودن در نظر گرفته شود تا نویز لامپ ها را خاموش و روشن ننماید)، مجددا رله خاموش می شود. عدد بدست آمده از ADC از طریق ارتباط UART برای میکروکنترلر دوم ارسال می شود و آن میکروکنترلر اطلاعات را نمایش می دهد.

دانلود


25 thoughts on “نمونه برنامه های میکروکنترلر”

  1. amin گفت:
    2015/01/30 در 23:53

    سلام دوست عزیز

    واقعا دمتگرم و خسته نباشی که زحمت کشیدی و مجانی قرار دادی.

    خدا خیرت بده.

    موفق باشی

     

    پاسخ
  2. سمیه گفت:
    2015/05/20 در 18:18

    سلام واقعا کارت قشنگ بود کمتر کسی همچین کاری می کنه جای تشکر و قدردانی داره.مرسی با مرام

    پاسخ
  3. جواد حاجی زاده (دانشجوی انقلاب) گفت:
    2015/06/27 در 19:23

    استاد عزیزم سلام

    واقعا دلم براتون تنگ شده . از اینکه به این سایتتون وارد می شوم و تمرینات و پروژه هاتون را می بینم واقعا حسرت روزایی رو می خورم که نتونستم خوب از درستون استفاده کنم.

    استاد ان شاالله روزی بشه ملاقاتتون کنم.جواد از آذربایجان غربی – شهرستان پلدشت

    پاسخ
  4. علی بهروز گفت:
    2015/09/10 در 21:31

    استاد بزرگوار همیشه اموزشایی که بهم دادین یادمن و ازشون استفاده می کنم ایشاله همیشه سلامت و موفق باشین دعای ما همیشه پشت شماست

    الانم هرجی می خوام مرور کنم یا یاد بگیرم میام سایتتون

    علی بهروز کار آموز دوره تابستان 93

    پاسخ
  5. امین امرائی گفت:
    2015/11/24 در 19:09

    واقعا دمت گرم خیلی مردی….

    پاسخ
  6. جاوید گفت:
    2015/12/30 در 10:10

    ذکات علم یاد دادن است.خسته نباشی و ممنون بابت آموزش هات

    پاسخ
  7. میلاد گفت:
    2016/01/07 در 19:56

    خیلی خیلی ممنون کارت درسته ان شاء…همیشه تو زندگیت موفق باشی

    پاسخ
  8. سید حسین زینتی گفت:
    2016/05/03 در 22:19

    کارتان بسیار قشنگ بود و جای تقدیر دارد

    ای کاش سورس برنامه را هم قرار می دادید

    پروژه 8 و 9 را می خواهم اما متسفانه باز نمیکند و با خظا مواجه می شود

    اگر سورس آن در بسکام را حتی اگر شده در فایل نوت پد (txt) بریزید ممنون می شود

    پاسخ
    1. محمد رضا بیگی گفت:
      2016/05/13 در 17:35

      برای دریافت سورس برنامه ها بر روی دانلود کلیک کنید

      پاسخ
  9. علی گفت:
    2016/05/16 در 11:47

    سلام ممنون از  این برنامه ها 

    فرمتش چیه؟

    ممنون میشم اگه جواب بدین

    پاسخ
    1. محمد رضا بیگی گفت:
      2016/05/30 در 06:54

      زبان C هست

      پاسخ
  10. محمد گفت:
    2016/12/27 در 00:52

    خیلی مردی خدا ازت راضی باشه

    پاسخ
  11. امیر گفت:
    2017/11/03 در 12:12

    سلا م .
    خیلی ممنون بخاطر پروژه های کاربردی ات و اینکه مجانی در اختیار ما قرار دادی

    پاسخ
  12. مجید گفت:
    2017/11/03 در 19:39

    مرسی داداش بابت این همه زحمت کشیدی بابت این برنامه ها و مجانی در اختیار ما قرار دادی خدا خیرت بده

    پاسخ
  13. فرهاد لامعی گفت:
    2018/04/03 در 23:48

    دستت درست داداش
    زکات علم ات رو تمام و کمال دادی

    پاسخ
  14. مایکل گفت:
    2018/07/18 در 12:32

    سلام به نظر من مطالبی که تو سایت گذاشتین تو صنعت اصلا به درد نمیخوره و به درد دوستانی میخوره که هیچی بلد نیستن

    پاسخ
    1. محمد رضا بیگی گفت:
      2018/07/26 در 19:14

      کار ما آموزش بیس مطالب هست. طبیعی هست که نمی توان در یک مدت سه ماهه کل مطالب را یاد داد. من همیشه به کارآموزانم میگویم هر پروژه یک تجربه و هر تجربه یک مهارت. کلاس زیر 10 درصد کار هست و 90 درصد خودشون باید کار کنند و برن جلو.
      مطالب سایت هم نکات پایه ای هست و برای افراد حرفه ای نیست.

      پاسخ
  15. محمدرضا گفت:
    2019/10/29 در 13:49

    سلام واقعا که خیلی بزرگواری امروزه کمتر کسی علم خودشو رایگان در اختیار دیگران قرار میده خدا انشااله تو همه مراحل زندگیت موفق باشی …

    پاسخ
  16. مجید سلطانیان گفت:
    2020/12/29 در 03:41

    دمت گرم کارت خیلی زیبا بود
    🙏🙏🙏👍👍👍

    پاسخ
  17. سارا گفت:
    2022/05/08 در 20:26

    برای درس آز ریز پردازنده پروژه زیر را انجام بدید:
    برنامه ای بنویسید که با اتصال به lcd و یک کلید (قطع/وصل) به میکرو در صورت وصل بودن کلید، جمله ای دلخواه را از راست به چپ روی سطر اول lcd نمایش داده و حرکت دهد و اگر کلید قطع شد جهت حرکت از راست به چپ شود.
    میشه برام حل کنید ممونم

    پاسخ
    1. محمد رضا بیگی گفت:
      2022/06/18 در 20:15

      برنامه مشابه در وب سایتم هست

      پاسخ
  18. شایگان گفت:
    2022/06/04 در 23:33

    بی نظیرید ….همتا ندارید …ادم باورش نمیشه تو این زمونه همچین ادمایی هم هستن

    پاسخ
    1. محمد رضا بیگی گفت:
      2022/06/18 در 19:56

      ممنونم

      پاسخ
  19. علیرضا گفت:
    2022/08/23 در 12:32

    سلام ؛
    چجوری میشه فقط با دو دستور for ، ال ای دی اول یک بار چشمک بزنه و ال ای دی سوم سه بار و در نهایت ال ای دی اول شش بار چشمک بزنه .

    پاسخ
    1. محمد رضا بیگی گفت:
      2022/09/22 در 08:58

      از شرط و یک متغیر کمکی باید استفاده کنید

      پاسخ

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

CAPTCHA
Refresh

خطا

جستجو در سایت

طبقه بندی مطالب سایت

  • FPGA-VHDL-Verilog
  • Labview
  • MATLAB
  • آموزش الکترونیک
  • پردازنده ی DSP
  • پروژه ها و مدارات کاربردی
  • تصاویر
  • دانشگاه انقلاب اسلامی
  • دانلود فایل های آموزشی
  • درباره ی سازمان فنی و حرفه ای
  • دسته‌بندی نشده
  • دوره های ویدیویی
  • رباتیک
  • شرح دوره های آموزشی
  • طراحی مدار چاپی با Allegro
  • طراحی مدار چاپی با Altium
  • فایل های ارسالی شما
  • محصــــــــــولات طراحی شده
  • محصولات و برد های آموزشی
  • میکروکنترلر ARM
  • میکروکنترلر AVR
  • میکروکنترلر PIC
  • نمونه برنامه های بیسیک

شبکه های اجتماعی

ما را در شبکه های اجتماعی دنبال کنید

Telegram تلگرام

Instagram اینستاگرام

سروش سروش

 

نمایش کانال تلگرام بدون نیاز به نصب

telegram

پیوند ها

  • وب سایت زبان اصلی ما
  • پورتال فنی و حرفه ای
  • کارت ورود به جلسه و نتایج
  • پرداخت هزینه آزمون و صدور گواهینامه
  • آخرین نظرات تایید شده

    • ایرج در MAX232 و اتصالات آن و راه اندازی آن
    • عیسی پور در برنامه نویسی زبان C
    • ناصر در آموزش میکروکنترلر با زبان ساده
    • محمد رضا بیگی در سازمان آموزش فنی و حرفه ای (TVTO)
    • Amir در سازمان آموزش فنی و حرفه ای (TVTO)

    کانال ما در تلگرام

    برای ورود به این کانال نسخه جدید تلگرام را نصب کنید

    در صورت عدم تمایل به نصب تلگرام در گوشی می توانید نسخه ی کامپیوتری این نرم افزار را دانلود کنید

    همچنین آدرس web.telegram.org نیز برای این کار طراحی شده است

    نمایش کانال تلگرام بدون نیاز به نصب

    آرم فنی حرفه ای

    lpcarm@

    نماد

    logo-samandehi
    ©2023 آموزش تخصصی و رایگان میکروکنترلر، FPGA و مدارچاپی | Powered by WordPress & Superb Themes