اطلاعیه

Collapse
No announcement yet.

مشکل در راه اندازی lcd بوسیله atmega 64a

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

    مشکل در راه اندازی lcd بوسیله atmega 64a

    یک lcd کاراکتری 16*4 رو با ترتیب زیر به یک atmega 64a وصل کردم ولی هیچ چیز روی lcd نمایش داده نمی شه :angry:
    RS----->PORTB.7
    RD----->PORTG.3
    EN----->PORTG.4
    D4----->PORTD.0
    D5----->PORTD.1
    D6----->PORTD.2
    D7----->PORTD.3
    از codevision v3.0.5 استفاده می کنم. اینم کدیه که براش نوشتم :
    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 3/17/2012
    Author : Ami
    Company :
    Comments:


    Chip type : ATmega64A
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 1024
    ************************************************** ***/

    #include <mega64a.h>
    #include <delay.h>

    // Alphanumeric LCD functions
    #include <alcd.h>

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTA=0x00;
    DDRA=0x00;

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

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

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

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

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

    // Port G initialization
    // Func4=In Func3=In Func2=In Func1=In Func0=In
    // State4=T State3=T State2=T State1=T State0=T
    PORTG=0x00;
    DDRG=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=0xFF
    // OC0 output: Disconnected
    ASSR=0x00;
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // OC1C output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    // Compare C Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    OCR1CH=0x00;
    OCR1CL=0x00;

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

    // Timer/Counter 3 initialization
    // Clock source: System Clock
    // Clock value: Timer3 Stopped
    // Mode: Normal top=0xFFFF
    // OC3A output: Discon.
    // OC3B output: Discon.
    // OC3C output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer3 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    // Compare C Match Interrupt: Off
    TCCR3A=0x00;
    TCCR3B=0x00;
    TCNT3H=0x00;
    TCNT3L=0x00;
    ICR3H=0x00;
    ICR3L=0x00;
    OCR3AH=0x00;
    OCR3AL=0x00;
    OCR3BH=0x00;
    OCR3BL=0x00;
    OCR3CH=0x00;
    OCR3CL=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    // INT3: Off
    // INT4: Off
    // INT5: Off
    // INT6: Off
    // INT7: Off
    EICRA=0x00;
    EICRB=0x00;
    EIMSK=0x00;

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

    ETIMSK=0x00;

    // USART0 initialization
    // USART0 disabled
    UCSR0B=0x00;

    // USART1 initialization
    // USART1 disabled
    UCSR1B=0x00;

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

    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;

    // SPI initialization
    // SPI disabled
    SPCR=0x00;

    // TWI initialization
    // TWI disabled
    TWCR=0x00;

    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTB Bit 7
    // RD - PORTG Bit 3
    // EN - PORTG Bit 4
    // D4 - PORTD Bit 0
    // D5 - PORTD Bit 1
    // D6 - PORTD Bit 2
    // D7 - PORTD Bit 3
    // Characters/line: 16
    lcd_init(16);

    while (1)
    {
    // Place your code here
    lcd_clear();
    lcd_gotoxy(0,0);
    lcd_putsf("salam"
    delay_ms(1000);
    }
    }

    مجبورم lcd رو به همین پایه ها وصل کنم. اگه باید فیوز بیتها رو طور خاصی پروگرام کنم بگید.
    لطفا کمک کنید. خیلی فورس ماژوریه

    #2
    پاسخ : مشکل در راه اندازی lcd بوسیله atmega 64a

    دوستان عزیز اگه منبعی چیزی بگینم راضیم والا. فقط یکی یه کمکی بکنه. سر در نمیارم. کمککککککک :angry: :angry: :confused

    دیدگاه


      #3
      پاسخ : مشکل در راه اندازی lcd بوسیله atmega 64a

      مشکل من حل شد. اشکال از اونجا بود که پایه های 2 و 3 lcd به Vcc وصل بود. بخاطر همین lcd چیزی نشون نمیداد. پایه 3 باید زمین بشه یا با یه مقاومت زمین بشه. در هر صورت شما اشتباه منو نکنین :wow: :wow: :wow:

      دیدگاه

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