Logo 150Logo 150Logo 150Logo 150
  • صفحه اصلی
  • میکروکنترلرها
    • میکروکنترلرهای AVR
      • آموزش AVR در CodeVision
      • آموزش Atmel Studio
      • AVR بیسیک
    • میکروکنترلرهای PIC
    • میکروکنترلرهای ARM
      • خانواده STM32
    • میکروکنترلر 8051
    • برنامه نویسی گرافیکی
      • LabView
  • مقالات
    • قطعات و نکات فنی
    • خواندنی ها
    • کتاب-جزوه-مجله
  • نرم افزار
    • کتابخانه آلتیوم
      • Microchip
  • پروژه های آماده
  • خرید پروژه
  • حل تمرینات
  • تماس با ما
  • کانال ها
    • کانال تلگرام
    • اینستاگرام
    • آپارات
    • یوتیوب

شمارنده دو رقمی با سون سگمنت Atmel Studio

  • صفحه نخست
  • مطالب سایت میکروکنترلرها میکروکنترلرهای AVR آموزش Atmel Studio
  • شمارنده دو رقمی با سون سگمنت Atmel Studio
شمارنده تک رقمی با سون سگمنت Atmel Studio
29 آذر, 1393
کتابخانه lcd کاراکتری برای Atmel Studio
29 آذر, 1393
منتشر شده توسط مدیر در 29 آذر, 1393
موضوعات
  • آموزش Atmel Studio
  • میکروکنترلرهای AVR
برچسب ها
  • Atmel Studio
  • avr
  • زبان C
  • سون سگمنت
  • شمارنده دو رقمی

بازدیدها: 1338

در این مثال می خواهیم یک شمارنده دو رقمی بالا شمار طراحی کنیم. متغییر counter به عنوان شمارنده در حلقه تکرار به صورت افزایشی مقدار آن تغییر می­کند. در تابع main دو پورت D و C به صورت خروجی تعریف می­شوند و در حلقه تکرار مقدار متغییر counter به دو رقم کم ارزش و با ارزش شکسته شده و سپس در اشاره گر آرایه قرار می­گیرد و کد متناظر با آن عدد از آرایه استخراج و روی پورت قرار می­گیرد.

همانطور که می­دانیم اگر یک عدد دو رقمی را بر 10 تقسیم کنیم در خارج قسمت مقدار با ارزش عدد را خواهیم داشت و در باقیماند مقدار کم ارزش را داریم، که در اینجا با کمک دستور / تقسیم و % باقیمانده این کار را انجام می­دهیم. شرطی هم برای جلوگیری از سرریز برقرار می­کنیم تا اگر شمارنده بزرگتر از 99 شد ریست شود. تاخیر هم سرعت شمارش را تعیین می­کند که در اینجا 100 میلی ثانیه می باشد.

#include 
#define F_CPU 1000000
#include 

unsigned char counter,cathode_seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    
int main(void)
{
     PORTD=0x00;
    DDRD=0xFF;
    PORTC=0x00;
    DDRC=0xFF;
    
    while(1)
    {
        PORTC=cathode_seg
;         PORTD=cathode_seg
;         counter++;         if(counter>99) counter=0;         _delay_ms(100);     } }
Share
58
مدیر
مدیر

مطالب مرتبط

حل تمرین

حل تمرین

6 شهریور, 1399

حل تمرینات میکروکنترلر


اطلاعات بیشتر
22 مرداد, 1395

آموزش گام به گام برنامه نویسی AVR به زبان C


اطلاعات بیشتر
4 دی, 1393

آموزش گام به گام برنامه نویسی AVR به زبان C در کامپایلر Atmel Studio


اطلاعات بیشتر

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

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

تمامی حقوق مادی و معنوی برای PicPars.com محفوظ است. شماره همراه 09335751032 جهت ارتباط با خرید پروژها در تلگرام و واتساپ