ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2007/04/21
    30
    4

    اينم يه ساعت دقيق با CodeVisionAVR C Compiler

    /*********************************************
    This program was produced by the
    CodeWizardAVR V1.23.8c Standard
    Automatic Program Generator
    © Copyright 1998-2003 HP InfoTech s.r.l.
    http://www.hpinfotech.ro
    e-mailffice@hpinfotech.ro

    Project :
    Version :
    Date : 2005/04/14
    Author : SH.Yahyavi
    Company :
    Comments:


    Chip type : ATmega16
    Program type : Application
    Clock frequency : 1.000000 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 256
    *********************************************/

    #include <mega16.h>

    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x15
    #endasm
    #include <lcd.h>
    #include <delay.h>
    #include <stdlib.h>


    // Timer 0 output compare interrupt service routine
    struct {
    unsigned char h,m,s,ms;
    } Time;

    interrupt [TIM0_COMP] void timer0_comp_isr(void)
    {
    if (++Time.ms == 125 )
    {
    Time.ms = 0;
    if (++Time.s == 60 )
    {
    Time.s = 0;
    if(++Time.m == 60 )
    {
    Time.m = 0;
    if(++Time.h == 24 )Time.h=0;
    }
    }
    }
    }

    void ShowNumberTime(int Number)
    {
    char st[10];
    itoa (Number,st);
    if (Number <10) {st[1] = ' ';st[2] = 0;}
    lcd_puts(st);

    }
    // بيت 0 براي نمايش ثانيه بيت 1 براي دقيقه وبيت 2براي ساعت

    void ShowTimeLcd(char Show)
    {
    if ( Show & 4)
    ShowNumberTime(Time.h);
    else
    lcd_putsf(" "

    lcd_putsf(":"
    if ( Show & 2)
    ShowNumberTime(Time.m);
    else
    lcd_putsf(" "
    lcd_putsf(":"
    if ( Show & 1)
    ShowNumberTime(Time.s);
    else
    lcd_putsf(" "

    }
    //------------------------------------------------------------------------
    #define Key_Ok PIND.5
    #define Key_Cansel PIND.4
    #define Key_Up PIND.3
    #define Key_Down PIND.2
    char GetKey()
    {
    static char OldIfKeyDwon;

    if ((Key_Ok == 0)||(Key_Up == 0)||(Key_Down == 0)||(Key_Cansel == 0))
    {
    if (OldIfKeyDwon==1)
    return 0xFF;
    OldIfKeyDwon=1;
    if (Key_Ok == 0) return 1;
    if (Key_Cansel == 0) return 2;
    if (Key_Up == 0) return 3;
    if (Key_Down == 0) return 4;
    }
    else
    OldIfKeyDwon=0;

    return 0xFF;
    }


    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here
    char Mode = 0,Key,ShowTimeCode = 7,delay;
    // Input/Output Ports initialization
    // Port A initialization
    // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
    // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
    PORTA=0x00;
    DDRA=0x00;

    // Port B initialization
    // Func0=Out Func1=Out Func2=Out Func3=Out Func4=Out Func5=Out Func6=Out Func7=Out
    // State0=0 State1=1 State2=1 State3=0 State4=0 State5=1 State6=1 State7=0
    PORTB=0x66;
    DDRB=0xFF;

    // Port C initialization
    // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
    // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In
    // State0=T State1=T State2=P State3=P State4=P State5=P State6=T State7=T
    PORTD=0x3C;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 15.625 kHz
    // Mode: CTC top=OCR0
    // OC0 output: Disconnected
    TCCR0=0x0B;
    TCNT0=0x00;
    OCR0=0x7C;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    GICR|=0x00;
    MCUCR=0x00;
    MCUCSR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x02;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    // Analog Comparator Output: Off
    ACSR=0x80;
    SFIOR=0x00;

    // LCD module initialization
    lcd_init(16);

    // Global enable interrupts
    #asm("sei&quot

    while (1)
    {
    lcd_gotoxy(5,0);
    if (delay ++ >40)delay =0;
    if (delay >20)
    ShowTimeLcd(0b111);
    else
    ShowTimeLcd(ShowTimeCode);
    delay_ms(10);

    Key = GetKey();
    if (Key == 1) // OK
    {
    Mode ++;
    if (Mode > 3) Mode = 0;
    switch( Mode)
    {
    case 0: // نمايش ساعت
    ShowTimeCode = 0b0111;
    break;
    case 1: // نمايش ساعت با چشمک زدن ساعت براي تغغير
    ShowTimeCode = 0b0011;
    break;
    case 2: // نمايش ساعت با چشمک زدن دقيقه براي تغغير
    ShowTimeCode = 0b0101;
    break;
    case 3: // نمايش ساعت با چشمک زدن ثانيه براي تغغير//
    ShowTimeCode = 0b0110;
    break;
    }// Switch
    } //end If Key 1 {Ok}

    if (Key == 3) // Up
    {
    switch( Mode)
    {
    case 0: // نمايش ساعت
    break;
    case 1: // نمايش ساعت با چشمک زدن ساعت براي تغغير
    if (++Time.h >23)Time.h=23 ;
    break;
    case 2: // نمايش ساعت با چشمک زدن دقيقه براي تغغير
    if (++Time.m >59)Time.m=59 ;
    break;
    case 3: // نمايش ساعت با چشمک زدن ثانيه براي تغغير//
    Time.s=0;
    break;
    }// Switch
    } //end If Key 3 {Up}
    if (Key == 4) // down
    {
    switch( Mode)
    {
    case 0: // نمايش ساعت
    break;
    case 1: // نمايش ساعت با چشمک زدن ساعت براي تغغير
    if (Time.h >0)Time.h-- ;
    break;
    case 2: // نمايش ساعت با چشمک زدن دقيقه براي تغغير
    if (Time.m >0)Time.m-- ;
    break;
    case 3: // نمايش ساعت با چشمک زدن ثانيه براي تغغير//
    Time.s=0;
    break;
    }// Switch
    } //end If Key 4 {Down}
    };
    }
  2. #2
    2005/12/24
    استان فارس لارستان
    564
    0

    پاسخ : اینم یه ساعت دقیق با CodeVisionAVR C Compiler

    سلام:
    ممنون
    اگر ممکنه فایل پروتئوس رو قرار بدید
نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. اینم تبدیل تاریخ میلادی به شمسی در ds1307 با CodeVisionAVR C Compiler
    توسط iranieee در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2019/08/04, 15:22
  2. راه اندازي lcd گرافيكي به وسيله CodeVisionAVR C Compiler
    توسط pcb در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2012/11/24, 11:51
  3. پاسخ: 4
    آخرين نوشته: 2011/11/28, 23:11
  4. یک مشکل در کد (CodeVisionAVR C Compiler)
    توسط h.afgahi در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2011/08/21, 15:03
  5. اینم یه پروژه برای تازه کارا test lcr& Led با CodeVisionAVR C Compiler
    توسط iranieee در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2007/05/31, 11:14

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •