#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
    // تنظیم پایه‌های مورد نظر به عنوان خروجی
    DDRB |= (1 << 2) | (1 << 5);   // PB.2 و PB.5
    DDRC |= (1 << 3);              // PC.3
    DDRD |= (1 << 5);              // PD.5

    while (1) 
    {
        // -----------------------------------------
        // الف) پایه PB.2: یک ثانیه خاموش، یک ثانیه روشن
        // -----------------------------------------
        PORTB &= ~(1 << 2);  // خاموش
        _delay_ms(1000);     // ۱ ثانیه
        PORTB |= (1 << 2);   // روشن
        _delay_ms(1000);     // ۱ ثانیه

        // -----------------------------------------
        // ب) پایه PB.5: یک ثانیه خاموش، پنج ثانیه روشن
        // -----------------------------------------
        PORTB &= ~(1 << 5);  // خاموش
        _delay_ms(1000);     // ۱ ثانیه
        PORTB |= (1 << 5);   // روشن
        _delay_ms(5000);     // ۵ ثانیه

        // -----------------------------------------
        // پ) پایه PC.3: سه ثانیه خاموش، سه ثانیه روشن
        // -----------------------------------------
        PORTC &= ~(1 << 3);  // خاموش
        _delay_ms(3000);     // ۳ ثانیه
        PORTC |= (1 << 3);   // روشن
        _delay_ms(3000);     // ۳ ثانیه

        // -----------------------------------------
        // ت) پایه PD.5: چهار ثانیه خاموش، دو ثانیه روشن
        // -----------------------------------------
        PORTD &= ~(1 << 5);  // خاموش
        _delay_ms(4000);     // ۴ ثانیه
        PORTD |= (1 << 5);   // روشن
        _delay_ms(2000);     // ۲ ثانیه
    }
    
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: