اطلاعیه

Collapse
No announcement yet.

lcd

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

    lcd

    با سلام.
    میخوام یه عدد اعشاری رو روی lcd نشون بدم اما نشد
    اون عدد نتیجه این فرموله l=1/(w^2*c)
    برنامه ای که نوشتم اینه


    #define C 1e-6
    float f,result,w,s,L;
    char strt[32],str[16;
    w=2*3.1415*f;
    s=w*w;
    L=1/(s*C;
    lcd_clear();
    ftoe(L,2,str(;
    sprintf(strt,"L=%s H",str);
    lcd_puts(strt);
    نمی دونم چه مشکلی داره. کسی میدونه؟
    باتشکر.

    #2
    پاسخ : lcd

    سلام.
    دوست عزیز برنامت هیچ مشکلی نداره. من الان همین برنامه رو تو پروتئوس شبیه سازی کردم و درست جواب داد. اینم برنامه و شماتیک:






    کد:
    #include <mega32.h>
    #include <delay.h>
    #include <stdlib.h>
    #include <stdio.h>
    // Alphanumeric LCD Module functions
    #asm
     .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include <lcd.h> 
    #define C 1e-6
    float f,w,s,L;
    char strt[32],str[16];
    void main(void)
    {
    // Declare your local variables here
    lcd_init(16);
    while (1)
       { 
       w=2*3.1415*f;
       s=w*w;
       L=1/(s*C);
       lcd_clear();
       ftoe(L,2,str);
       sprintf(strt,"L=%s H",str);
       lcd_puts(strt);
       delay_ms(300);
       };
    }

    دیدگاه


      #3
      پاسخ : lcd

      عجیبه پس چرا برای من جواب نمی ده؟ oo:
      به ورژن پروتئوس و کد ویژن ربطی داره؟ :eek:
      راستی مقدار f رو چی گذاشتی ؟تو برنامه من فرکانسه، که از یه منبع سینوسی یک سو شده باید بخونه.

      دیدگاه


        #4
        پاسخ : lcd

        به F مقدار ندادم.(یعنی صفره)

        شما وقتی میخواستید بر روی LCD نمایش بدید از deay استفاده میکردید یا نه؟؟

        تو حلقه بینهایت مینداختید یا اینکه فقط یکبار نمایشش می دادید؟؟؟

        دیدگاه


          #5
          پاسخ : lcd

          نه فقط یه بارنمایش میدم
          برنامه شما رو هم اجرا کردم جواب نگرفتم :angry:

          دیدگاه


            #6
            پاسخ : lcd

            نوشته اصلی توسط mtn520
            نه فقط یه بارنمایش میدم
            برنامه شما رو هم اجرا کردم جواب نگرفتم :angry:

            نکنه که داری از پروتئوس 7 به پایین استفاده میکنی؟؟

            اگر از این پروتئوس استفاده میکنی LCD رو رو یک پورت دیگه به جز پورت C بذار

            دیدگاه


              #7
              پاسخ : lcd

              نه از 7.1 استفاده میکنم. پورتشو هم عوض کردم جواب نداد

              دیدگاه


                #8
                پاسخ : lcd

                برنامه و شماتیک رو دانلود کن ببین مشکلت حل میشه یا نه.

                پروتئوسش 7.2 ولی به احتمال خیلی زیاد با 7.1 هم جواب بده.
                فایل های پیوست شده

                دیدگاه


                  #9
                  پاسخ : lcd

                  سلام
                  امروز رفتم دانشگاه پروگرم کردم جواب داد.
                  اما یه مشکل دیگه! oo:
                  برنامه یه فرکانس متر رو نوشتم اما فقط تا 65KHZ رو اندازه گرفت
                  این برنامشه:


                  while (1)
                  {
                  // Place your code here
                  TCNT1=0;
                  delay_ms(500);
                  f=TCNT1*2;
                  lcd_clear();
                  ftoa(f,2,str);
                  sprintf(strt,"f=%s Hz",str);
                  lcd_gotoxy(2,0);
                  lcd_puts(strt);
                  delay_ms(300);
                  };

                  اگه مشکلشو بگید ممنون میشم :nice:

                  دیدگاه


                    #10
                    پاسخ : lcd

                    سلام .................

                    برای فرکانس متر از یه تایمر استفاده کردید؟ ممکنه توضیح بدیدچطور؟ تا اونجاییکه من میدونم برای فرکانس متر باید از دو واحد تایمر استفاده کرد یکی به عنوان زمان سنج و دیگری به عنوان شمارنده .
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه


                      #11
                      پاسخ : lcd

                      در یک ثانیه مقدار پیک ها رو میآ‌شماره که میشه فرکانس
                      مگه تایمر دوم که استفاده میشه برای محاسبه زمان نیست؟ اینجا من از دیلی استفاده کردم. جواب هم داده فقط تا 65KHz رو شمرد
                      راستش من تازه کارم اگه اشتباهی هست بفرمایید.

                      دیدگاه

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