اطلاعیه

Collapse
No announcement yet.

کمک در توضیح برنامه C

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک در توضیح برنامه C

    include <mega16.h>#include <delay.h>
    void main(void)
    {
    unsigned char i,j,tekrar;
    unsigned char cathode_seg[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
    DDRA=0xff;
    DDRB=0xff;
    while(1)
    {
    for(i=0; i<=9; i++)
    {
    for(j=0; j<10; j++)
    {
    for(tekrar=0; tekrar<25; tekrar++)
    {
    PORTA.0=0; PORTA.1=1;
    PORTB=cathode_seg[i];
    delay_ms(10);
    PORTA.0=1; PORTA.1=1;
    PORTA.0=1; PORTA.1=0;
    PORTB=cathode_seg[j];
    delay_ms(10);
    PORTA.0=1; PORTA.1=1;
    }
    }
    }
    }
    }
    سلام مهندسین
    این برنامه شمارنده 0تا99 با سون سگمنت هستش ولی من نمیدونم چطوری دقیق کار میکنه کسی هست یه توضیح مختصر بده؟

    #2
    پاسخ : کمک در توضیح برنامه C

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


    سه تا حلقه داره این برنامه
    حلقه مربوط به متغیر i عدد دهگان رو تنظیم میکنه
    و حلقه متغیر j عدد مربوط به یکان
    و چون سون سگمنت باید مدام روشن و خاموش بشه تا دو عدد رو بشه دید حلقه بعدی رو ایجاد کرده و داخلش 25 بار نمایش رو انجام داده
    عمل نمایش هم به این صورته که ابتدا عدد دهگان نمایش داده میشه و ده میلی ثانیه صبر میکنه
    و بعد دهگان خاموش میشه و یکان نمایش داده میشه
    و این کار 25 بار تکرار میشه تا از حلقه tekrar بیاد بیرون
    و مجدد به متغیر j یه واحد اضافه میشه و باز میره داخل حلقه تکرار
    و هروقت متغیر j به مقدار 9 رسید و نمایشش داد ا حلقه خارج میشه و دهگان رو یه واحد افزایش میده

    دیدگاه


      #3
      پاسخ : کمک در توضیح برنامه C

      نوشته اصلی توسط mashroti نمایش پست ها
      سلام
      متغیر cathode_seg مقداری که داخلش نوشته میشه بستگی داره به مدلی که پایه های سون سگمنت به میکرو متصل میشن
      یعنی اگر پین هایی که از سون سگمنت به میکرو وصل میشه تغییر کنه باید این مقادیر هم بسته به اون تغییر کنه


      سه تا حلقه داره این برنامه
      حلقه مربوط به متغیر i عدد دهگان رو تنظیم میکنه
      و حلقه متغیر j عدد مربوط به یکان
      و چون سون سگمنت باید مدام روشن و خاموش بشه تا دو عدد رو بشه دید حلقه بعدی رو ایجاد کرده و داخلش 25 بار نمایش رو انجام داده
      عمل نمایش هم به این صورته که ابتدا عدد دهگان نمایش داده میشه و ده میلی ثانیه صبر میکنه
      و بعد دهگان خاموش میشه و یکان نمایش داده میشه
      و این کار 25 بار تکرار میشه تا از حلقه tekrar بیاد بیرون
      و مجدد به متغیر j یه واحد اضافه میشه و باز میره داخل حلقه تکرار
      و هروقت متغیر j به مقدار 9 رسید و نمایشش داد ا حلقه خارج میشه و دهگان رو یه واحد افزایش میده
      سلام مهندس
      دمت گرم
      فقط اون خطی که هر دو پورت رو 1 میکنه نقشش چیه؟
      PORTA.0=1; PORTA.1=0;

      دیدگاه

      لطفا صبر کنید...
      X