اطلاعیه

Collapse
No announcement yet.

کمک در مورد یه پروژه با 892051

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

    کمک در مورد یه پروژه با 892051

    سلام

    من یه دو مشکل داشتم در رایطه با یک پروژه
    ای پروژه با 2051 یا 4051 البته 89c
    هستش که برروی ال سی دی یه چند پیغام چاپ میکنه و 8 عدد ال ای دی رو کنترل میکنه
    حالا میخواستم بدونم چطور میتونم:

    1.در خط اول lcd تاریخ و روز رو چاپ کنم
    2.led ها با تاخیر یک ثانیه جابجا بشن و lcd متن خودش رو تایپ کنه(با متنی که من نوشتم نمیشه اول متن رو ال سی دی کامل میشه بعد میاد یه پالس به ال ای دی میده) چکار کنم

    متشکر

    لینک پروتوس هم میزارم نگاه کنید

    http://n3400.persiangig.com/other/Myproj.rar
    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

    تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

    #2
    پاسخ : کمک در مورد یه پروژه با 892051

    لینک خرابه
    اگه می تونی متن برنامه رو همین جا بذار
    اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

    دیدگاه


      #3
      پاسخ : کمک در مورد یه پروژه با 892051

      سلام
      این طریقه نوشتن برنامه و نمایش روی LCD است:

      org 00h
      jmp main
      org 030h
      main:
      mov a,#38h
      call command
      mov a,#01h
      call command
      mov a,#80h
      call command
      mov a,#'C'
      call data1
      jmp $
      command:
      mov p1,a
      setb p2.0 ;Rs=p2.0
      setb p2.1 ;E=p2.1
      clr p2.1
      ret
      data1:
      mov p1,a
      clr p2.0
      setb p2.1
      clr p2.1
      ret
      end

      دیدگاه


        #4
        پاسخ : کمک در مورد یه پروژه با 892051

        خیلی ممنون از جواب ولی c هستش نه بیسیک
        اینم برنامه

        #include <AT892051.h>
        #include <lcd.h>

        void wait_a_second()
        {
        unsigned int x;
        for(x=0;x<33000;x++);
        }


        int main()
        {
        int b;


        for(;{

        P1=~b;
        b=b>>1;

        wait_a_second();
        if(b==0){b=128;

        LCD_init();
        LCD_row1(); puts("\t\t\t\t\t\tHello "
        LCD_row2(); puts("My Name Is n340."


        LCD_clear();

        LCD_row1(); puts("I'm A Robot."
        LCD_row2(); puts("I'm Programer By"
        LCD_clear();

        LCD_row1(); puts("C langauge.C Is "
        LCD_row2(); puts("Best langauge"
        LCD_clear();
        LCD_row1(); puts("for me.I Love C."
        LCD_row2(); puts("What Are U Doing?"
        LCD_clear();
        LCD_row1(); puts("You're Look Me."
        LCD_row2(); puts("Good BYe..."

        LCD_clear();
        LCD_row1(); puts("Please Wait For"
        LCD_row2(); puts(" 1 2 3 4 5 6 7 8"
        }
        }

        }

        اینم هیدر ال سی دی


        #define LCD_en P3_5
        #define LCD_rs P3_4
        #define LCD_DELAY 1535 /* Delay for 1 ms */
        #define LCD_clear() LCD_command(0x1) /* Clear display LCD */
        #define LCD_origin() LCD_command(0x2) /* Set to origin LCD */
        #define LCD_row1() LCD_command(0x80) /* Begin at Line 1 */
        #define LCD_row2() LCD_command(0xC0) /* Begin at Line 2 */

        /************************************************** *
        * Prototype(s) *
        ************************************************** */
        void LCD_delay(unsigned char ms);
        void LCD_enable();
        void LCD_command(unsigned char command);
        void LCD_putc(unsigned char ascii);
        void puts(unsigned char *lcd_string);
        void LCD_init();

        /************************************************** *
        * Sources *
        ************************************************** */
        void LCD_delay(unsigned char ms)
        {
        unsigned char n;
        unsigned int i;
        for (n=0; n<ms; n++)
        {
        for (i=0; i<LCD_DELAY; i++); /* For 1 ms */
        }

        }

        void LCD_enable()
        {
        LCD_en = 0; /* Clear bit P2.4 */
        LCD_delay(1);
        LCD_en = 1; /* Set bit P2.4 */
        }

        void LCD_command(unsigned char command)
        {
        LCD_rs = 0; /* Clear bit P2.5 */
        P3 = (P3 & 0xF0)|((command>>4) & 0x0F);
        LCD_enable();
        P3 = (P3 & 0xF0)|(command & 0x0F);
        LCD_enable();
        LCD_delay(1);
        }

        void LCD_putc(unsigned char ascii)
        {
        LCD_rs = 1; /* Set bit P2.5 */
        P3 = (P3 & 0xF0)|((ascii>>4) & 0x0F);
        LCD_enable();
        P3 = (P3 & 0xF0)|(ascii & 0x0F);
        LCD_enable();
        LCD_delay(1);
        }

        void puts(unsigned char *lcd_string)
        {
        while (*lcd_string)
        {
        LCD_putc(*lcd_string++);
        }
        }

        void LCD_init()
        {
        LCD_en = 1; /* Set bit P2.4 */
        LCD_rs = 0; /* Clear bit P2.5 */
        LCD_command(0x33);
        LCD_command(0x32);
        LCD_command(0x28);
        LCD_command(0x0C);
        LCD_command(0x06);
        LCD_command(0x01); /* Clear */
        LCD_delay(256);
        }



        اینم لینک جدید

        http://www.4shared.com/file/94670827/7cc224d9/Myproj.html
        هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
        بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
        میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

        تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

        دیدگاه


          #5
          پاسخ : کمک در مورد یه پروژه با 892051

          سلام
          این برنامه ای که من براتون نوشتم به زبان اسمبلی است نه بیسیک.
          من خیلی وقته که با C برنامه ننوشتم چیز زیادی یادم نیست ولی برنامه ات رو یک نگاه می ندازم اگه مشکلش رو فهمیدم بهت می گم.

          موفق باشی

          دیدگاه

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