NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3996 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 21 به 27 از 27

موضوع: مشکل در راه اندازی lcd کارکتری

  1. #21
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    دوست عزیز کد شما مشکل نداره فقط چرا رجیستر های وقفه و.... را پاک کردید و یا اینجا نگذاشتید یه کدی شبیه به زیر بنویسید مشکلی نداره
    کد:
    #include <mega16.h>
    #include <stdio.h>
    #include <stdlib.h>
    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x18 ;PORTB
    #endasm
    #include <lcd.h>
    int i;
    float z;
    char str[32],str1[32];
    // External Interrupt 0 service routine
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {i++;
    }
    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=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 
    PORTD=0x00;
    DDRD=0x00;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    // 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
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=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: On
    // INT0 Mode: Low level
    // INT1: Off
    // INT2: Off
    GICR|=0x40;
    MCUCR=0x00;
    MCUCSR=0x00;
    GIFR=0x40;
    lcd_init(16);
    
    #asm("sei")
    
    while (1)
    {
    lcd_gotoxy(0,0);
    z=((i/3)*1.6);
    ftoa(z,5,str);
    sprintf(str1,"%6sm",str);
    lcd_puts(str1);
    };
    }

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #22
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2013
    نام
    مریم دشتی
    نوشته ها
    43
    تشکر
    24
    تشکر شده 1 بار در 1 پست

    پیش فرض

    من دقیقا برنامه شما رو نوشتم ولی متغیر ثابت m وقتی عدد به 100000 میرسه میره سطر دوم

  5. #23
    همکار علمی sarbaz13 آواتار ها
    تاریخ عضویت
    Mar 2011
    نام
    محمد قاسمی
    نوشته ها
    410
    تشکر
    995
    تشکر شده 425 بار در 230 پست

    پیش فرض

    نقل قول نوشته اصلی توسط maryam d نمایش پست ها
    من دقیقا برنامه شما رو نوشتم ولی متغیر ثابت m وقتی عدد به 100000 میرسه میره سطر دوم
    سلام
    این کد برنامه شما
    [PHP]
    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.04.4a Advanced
    Automatic Program Generator
    © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 4/29/2013
    Author : NeVaDa
    Company : Parsa
    Comments:


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

    #include <mega16.h>
    #include <delay.h>
    #include <stdio.h>
    #include <stdlib.h>
    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x18 ;PORTB
    #endasm
    #include <lcd.h>
    int i=0;
    float z;
    unsigned char str[15],str1[15];

    // External Interrupt 0 service routine
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    i++;

    }

    // Declare your global variables here

    void main(void)
    {
    PORTB=0x00;
    DDRB=0xFF;


    // Port D 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
    PORTD=0x00;
    DDRD=0x00;
    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Rising Edge
    // INT1: Off
    // INT2: Off
    GICR|=0x40;
    MCUCR=0x03;
    MCUCSR=0x00;
    GIFR=0x40;

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

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

    // LCD module initialization
    lcd_init(16);

    // Global enable interrupts
    #asm("sei")

    while (1)
    {
    lcd_gotoxy(0,0);
    z=((i/3)*1.6);
    ftoa(z,5,str);
    sprintf(str1,"%6sm",str);
    lcd_puts(str1);
    };
    }

    [/PHP]
    فایل شبیه سازی و کدویژن هم ضمیمه کردم.در هیچ یک از اعداد نمایشی به وسط صفحه نمیاد.
    وقفه خارجی هم روی INT0 Mode: Rising Edge تنظیم کردم.
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip 13.zip (111.7 کیلو بایت, 18 نمايش)
    شرکت Time Owner

  6. تشکرها از این نوشته :


  7. #24
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2013
    نام
    مریم دشتی
    نوشته ها
    43
    تشکر
    24
    تشکر شده 1 بار در 1 پست

    پیش فرض

    ممنون
    ولی بازم همون مشکل هس
    اگه شما تو پورتئوس هم چند بار دکمه رو بزنید وقتی عدد به 11 میرسه متغیر ثابت m میره سطر بعد

  8. #25
    همکار علمی sarbaz13 آواتار ها
    تاریخ عضویت
    Mar 2011
    نام
    محمد قاسمی
    نوشته ها
    410
    تشکر
    995
    تشکر شده 425 بار در 230 پست

    پیش فرض

    نقل قول نوشته اصلی توسط maryam d نمایش پست ها
    ممنون
    ولی بازم همون مشکل هس
    اگه شما تو پورتئوس هم چند بار دکمه رو بزنید وقتی عدد به 11 میرسه متغیر ثابت m میره سطر بعد
    سلام
    نه این اتفاق برای من نمی افته.شاید مشکل از پروتئوس خودتون باشه من تا 500.00000m رفتم و به سطر بعدی نرفت.
    یعنی شما خودت موقعیت کاراکتر رو مشخص کردی.
    lcd_gotoxy(0,0)
    پس در هیچ صورتی نباید به سطر بعدی بره.من خودم این برنامه ای که برای شما ارسال کردم توی پروتئوس شبیه سازی و تست کردم.
    شما این برنامه را اگر عملی دارید اجرا می کنید شاید مشکل از تنظیمات اشتباه میکروی خودتون باشه.
    اگر توی پروتئوس دارین اجرا می کنید شما یکبار دیگه پروتئوس خودتو نصب کن .ان شاء الله درست میشه
    چون برنامه و اتصالات درست هست و مشکل از این قسمت ها نیست.
    شرکت Time Owner

  9. تشکرها از این نوشته :


  10. #26
    تازه وارد
    تاریخ عضویت
    Apr 2013
    نوشته ها
    4
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام خسته نباشین من هم مشکل راه اندازی ال سی دی داشتم که ال سی دیم روشن نمی شد میکرو من سم 256 اس بود که با دیباگ کردن متوجه شدم طول تاخیر تو هیدرم خیلی خیلی زیاد بود که با کم کردنش ال سی دی م روشن شد اگه لازم داشتی هیدرش اینجاست
    فايل هاي پيوست شده فايل هاي پيوست شده

  11. #27
    عضو جدید
    تاریخ عضویت
    May 2013
    نام
    محمد محمد رضایی
    نوشته ها
    5
    تشکر
    0
    تشکر شده 3 بار در 2 پست

    پیش فرض

    سلام هدر فایلی که استفاده کردی برای at91sam7x256 می باشد داخل اون قسمت تعریف پورت b رو حذف کن مشکل حل می شود .

صفحه 2 از 2 نخستنخست 12

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

  1. ره اندازی smt160 با پورت موازی
    توسط M.ABDOLLAHI در انجمن AVR
    پاسخ: 3
    آخرين نوشته: 27-04-2009, 21:34

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

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