اطلاعیه

Collapse
No announcement yet.

درخواست کمک فوری(مشکل با LCD)

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

    درخواست کمک فوری(مشکل با LCD)

    سلام.من می خواهم دو عدد میکروی 89C51 را از طریق پورت سریال به هم وصل کنم.به این صورت که میکرو اولی نوشته ای را از طریق پورت سریال بفرستد و میکرو دوم ان را دریافت کند و روی LCD نمایش دهد و برنامه ای هم برای این کار نوشتم.اما نمی دانم که مشکل این برنامه از کجاست که وقتی مدار را توی پروتئوس بستم روی LCD چند تا حرف را پشت سرهم نشان می دهد و جمله را همانطور که بصورت DB ذخیره کرده ام نشان نمی دهد.اگر ممکن است برنامه را چک کنید و اشکالاتش را بگویید و مهمتر از همه شکل درست برنامه را بنویسید چون یه مقدار عجله دارم.ممنون.
    این برنامه میکرو اولی که اطلاعات را می فرستد:
    ORG 00H
    MOV SCON,#53H
    MOV TMOD,#20H
    MOV TL1,#-13
    MOV TH1,#-13
    SETB TR1
    MOV R0,#00H
    MOV DPTR,#MYDATA
    LOOP1: JNB TI,LOOP1
    CLR TI
    LOOP2: CLR A
    MOVC A,@A+DPTR
    JZ LOOP2
    MOV SBUF,A
    INC R0
    INC DPTR
    CJNE R0,#21,LOOP1
    MYDATA: DB 'ALI REZA BABAEI 9557',0
    END
    اینم برنامه میکرو دوم که اطلاعات را می گیرد:
    ORG 00H
    MOV SCON,#53H
    MOV TMOD,#20H
    MOV TL1,#-13
    MOV TH1,#-13
    SETB TR1
    MOV A,#38H
    ACALL FARMAN
    ACALL DELAY
    MOV A,#0EH
    ACALL FARMAN
    ACALL DELAY
    MOV A,#01
    ACALL FARMAN
    ACALL DELAY
    MOV A,#06H
    ACALL FARMAN
    ACALL DELAY
    MOV A,#84H
    ACALL FARMAN
    ACALL DELAY
    MOV R0,#00H
    LOOP1: JNB RI,LOOP1
    CLR RI
    LOOP: MOV A,SBUF
    ACALL DATA1
    ACALL DELAY
    INC R0
    CJNE R0,#21,LOOP1
    MOV R0,#00H
    FARMAN:
    ACALL AZADILCD
    MOV P2,A
    CLR P1.0
    CLR P1.1
    SETB P1.2
    CLR P1.2
    RET
    DATA1:
    ACALL AZADILCD
    MOV P2,A
    CLR P1.0
    SETB P1.1
    SETB P1.2
    CLR P1.2
    RET
    AZADILCD:
    SETB P2.7
    CLR P1.1
    SETB P1.0
    CLR P1.2
    SETB P1.2
    LOOP: JB P2.7,LOOP
    RET
    DELAY: MOV 7FH,#200
    M0: MOV 7EH,#200
    M1: DJNZ 7EH,M1
    DJNZ 7FH,M0
    RET
    END
    البته همانطور که می دانید وقتی این کدها را کپی کنید و تو نت پد PASTE کنید درست می شوند.










    #2
    پاسخ : درخواست کمک فوری(مشکل با LCD)

    خیلی وقته دیگه با 8051 کار نکردم
    شما توی این سیستم برای اینکه یکی از میکرو از ارسال اطلاعات به اون یکی میکرو اطلاع پیدا بکنه چی کار کردی؟؟
    منظورم اینکه از وقفه استفاده کردی؟؟
    ضمنا سرعت ارسال یعنی بادریت اونا حتما یکیه؟؟
    البته وقتی که کریستال اونا دوتا فرکانسشون یکی باشه

    اینا به ذهنم رسید آقای نحوی خیلی بهتر می تونند کمکتون بکنند

    موفق باشی

    دیدگاه


      #3
      پاسخ : درخواست کمک فوری(مشکل با LCD)

      سلام.همه اون مسائلی که شما گفتید رعایت شده.در کل میکرو اولی اطلاعات را درست می فرستد(اینو با LCD سریال در پروتئوس امتحان کردم)و مشکل اصلی در میکرو دوم است که اطلاعات را می گیرد ولی به درستی روی LCD نمایش نمی دهد.احتمالا اشکال از این قسمت است:
      LOOP1: JNB RI,LOOP1
      CLR RI
      LOOP: MOV A,SBUF
      ACALL DATA1
      ACALL DELAY
      INC R0
      CJNE R0,#21,LOOP1
      MOV R0,#00H
      من که هر چی فکر کردم به نتیجه ای نرسیدم.اگه ممکن است زودتر کار ما را راه بیندازید.عجله دارم.بازم ممنون.

      دیدگاه


        #4
        پاسخ : درخواست کمک فوری(مشکل با LCD)

        دوست عزیز در محیط شبیه سازی ممکنه همه مدارات کار کنند ولی در مجیط واقعی اینطور نیست . علل زیادی ممکنه داشته باشه . مثلا عدم نوسان کریستال . عدم ریست صحیح . اتصال کوتاه و ... . توصیه این حقیر اینه که بدنبال عیبهای سخت افزاری و اسمبل کردن هم باشد . من همیشه به دوستانم توصیه میکنم یک ذره از محیط های شبیه ساز بیان بیرون و با یک برد برد و مقداری سیم کار رو عملی انجام بدهند .
        نوفن پردازش هوشمند

        دیدگاه


          #5
          پاسخ : درخواست کمک فوری(مشکل با LCD)

          ممنون.اما مشکل از خود برنامه است و در رابطه با صحبت شما در بالا هم گفتم که این مدار متاسفانه در پروتئوس هم کار نکرد چه برسه به محیط عملی!درکل مشکل از برنامه من است.کسی می تونه کمک کنه؟

          دیدگاه


            #6
            پاسخ : درخواست کمک فوری(مشکل با LCD)

            نوشته اصلی توسط kasper
            ممنون.اما مشکل از خود برنامه است و در رابطه با صحبت شما در بالا هم گفتم که این مدار متاسفانه در پروتئوس هم کار نکرد چه برسه به محیط عملی!درکل مشکل از برنامه من است.کسی می تونه کمک کنه؟
            سلام دوست عزیز
            من هنوز کد شما رو نخوندم ولی برای راه انداختن یه پروژه بهتره اول از عملکرد صحیح قسمتهای مجزای اون مطمئن بشید.
            پیشنهاد میکنم اول یه برنامه ساده برای راه اندازی Lcd و یه برنامه ساده هم برای ارتباط سریال بنویسید و بعد اونا رو با هم تلفیق کنید.

            این یه مجموعه کوچولو و ساده از پروژه های ارتباط سریال و راه اندازی LCD و غیره هستش: http://www.4shared.com/file/21184247/386a0546/5xasm51.html
            اگه مشکلت بازم حل نشد سوالتو دقیق تر بپرس البته با گذاشتن فایل سورس و پروتیوس.

            موفق باشی

            دیدگاه

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