اطلاعیه

Collapse
No announcement yet.

با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

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

    با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

    سلام به همه ی دوستان.
    بیکار بودم گفتم بشینم یه ماشین حساب درست کنم در عمل اصلی رو نوشتم و حالا توی sin موندم.
    من حالا تصمیم گرفتم که فقط sin رو درست کنم.و میخوام ببینم کسی هست منو راهنمایی کنه.من یه کیبورد 4*4 و یک Lcd 2*16 دارم و حالا میخوام که برنامه ای بنویسم که هر دکمه ای بر روی کیبورد زده شد بر روی LCD سینوس آن عدد را نمایش دهد.
    برا ی مثال اگر کلید 9 زده شد بر روی LCD بنویسه:Sin 9 = 0.1564344 و عددی که نشان میده کلا 10 کارکتر باشه.
    کمکم کنید.
    در ضمن فقط سینوس 0 تا 90 درجه رو می خوام درست کنم و بقیش مهم نیست.و این کار نیاز به شیفت کیبورد میباشد.که من یک سون سگمنت وصل کردم که با هر بار زدن شیفت یک عدد بهش اضافه بشه.
    برای مثال اگه ما بخوایم عدد 45 رو بزنیم 4 بار شیفت را فشار بدیم و بر روی سون سگمنت عدد 4 نامیش داده شود و بعد عدد 5 را بزنیم.

    اگه کسی بلده خواهش میکنم کمکم کنه ..حداقل تا سینوس 10 را بنویسه و به من بگه تا خودم ادامشو دنبال کنم.
    خیلی ممنون میشم.
    :wow:
    www.icesi.ir

    #2
    پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

    کسی نیست جواب مارو بده
    www.icesi.ir

    دیدگاه


      #3
      پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

      سلام.
      خوبی میلاد جان؟
      حتما میخواهی اسمبلی بنویسی که برات سواله چطوری بنویسی درسته؟
      در کل توصیه نمیکنم برای محاسبات اعشاری اونم در حد 5 یا 6 رقم اعشار از اسمبلی استفاده کنی. شما اگه این برنامه رو به زبان C بنویسی خیلی راحتر و سریع تر و با قابلی های بیشتری میتونی این کار رو انجام بدی.

      مثلا طرف میتونه هر زاویه ای رو وارد کنه فقط باید بعدش کلید # رو فشار بده. مثلا وارد میکنه #9 یا مثلا #360 دیگه محدودیتی در ارقام ورودی نخواهی داشت. یه متغیر int هم تعریف میکنید و ارقام عددی که در کیبرد فشار داده شده رو تبدیل به یه عدد ده دهی میکنید. یعنی مثلا برای 360 داریم 0 و 6 و 3 که باید 3 رو در 100 ضرب کنید بعد با 6*10 جمع کنید بعد با 0 . همه اینها رو توی یه متغییر intآ‌ قرار میدید. بعد هم با دستور sin در C از کتابخونه math.h به راحتی سینوس هر زاویه ای محاسبه میشه میتونید بقیه رو هم اضافه کنید مثلا c.o.s یا مثلا tan و ... .
      برای نمایش روی LCD هم باید عدد اعشاری رو در 10000 مثلا ضرب کنید (این دقتش46 رقم اعشار میشه) بعد این عدد رو توی یه متغییر int بذارید. بعد شروع کنید به تقسیم کردن اولین رقمی که باید روی ال سی دی نشون داده بشه .0 که یعنی اعشار، بعد خارج قسمت تقسیم به 10000 ، رقم بعدی از خارج قسمتِ تقسیمِ باقیمانده مرحله قبل به عدد 1000 و ... . (آخرش رو خیلی بد گفتم اگه متوجه نشدی بگو بیشتر توضیح بدم)
      موفق باشید.
      شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
      هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
      چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

      دیدگاه


        #4
        پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

        سلامی دوباره.
        ممنونم ولی مهم اینه که من هنوز اسمبلی رو به صورت حرفه ای بلد نیستم چه برسه به زبان C اگه ممکنه این را برای اسمبلی توضیح بدید.خیلی خیلی ممنون از اینکه وقتتون رو بمن دادید
        راستی کد این برنامه با زبان C حدودا چند خطه؟

        اگه ممکنه استارت را برای من بزنید من خودم تا آخرش ادامه میدم..اگهش ده چند خط از برنامه هم بهم بگید ولی خودم ادامش میدم
        --------------------------------
        www.icesi.ir

        دیدگاه


          #5
          پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

          سلام.
          اگه بخواهید سینوس رو خودتون با اسمبلی محاسبه کنید که فکر کنم باید برید سراغ روش های محاسبات عددی.
          ولی اگه می خواهی خودت قبلا اینها رو محاسبه کنی و ذخیره کنی فقط برای اعداد خاصی نشون بدی میشه یه کارهایی کرد.
          سینوس زوایایی که میخواهی رو با محاسبه کن و ذخیره. به این صورت که میدونی برای هر عدد 3 بایت نیاز داری. مثلا برای ذخیره عدد 0.123456 باید اینطوری بنویسی:
          DB 12H 34H 56H
          بعد زمانی که میخواهی روی LCD نشون بدی یه .0 هم قبلش بذار و اینها رو دونه دونه رقم به رقم بذار روی LCD .
          موفق باشید.
          شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
          هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
          چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

          دیدگاه


            #6
            پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

            نمیدونم سوال منو خوندید یا نه ولی من قصد دارم فقط از 0 تا 90 را محاسبه کنم و چون من آشنایی ندار میشه شما بگید که من از چه روشی استفاده کنم.
            از روش محاسبات عددی که خودتون گفتید یا اینکه روش دوم و نوشتن عدد در رام db 22H, 33H, 01H و در آخر هم یک 0. بهش اضافه کنم/

            اگه میشه بیشتر منو راهنمایی کنید زیاد وارد نیستم
            ----------------------------------
            www.icesi.ir

            دیدگاه


              #7
              پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

              راستش اگه مثل بقیه توو ذوقم نمی زین،باید بگم به نظرم اینکه میگین اسمبلی کار نکردم که c کار کنم اصولا برعکسه :mrgreen: یعنی معمولا میگن c و بیسیک کار نکردم که حالا بخوام اسمبلی کار کنم!!!

              بیسیک این خیلی راحتتره،یعنی یک چیز مثل اینه:
              s1=...
              S2 = Deg2rad(s1)
              Vcos = Cos(s2)
              Vsin = Sin(s2)
              Vtan = Tan(s2)
              LCD Vcos;" " ;Vsin;" ";Vtan

              پیشنهاد می کنم اگر برای پروژه خاصی نیست و فقط محض یاد گیریه،با زبانهای سطح بالا شروع کنین تا به اسمبلی هم برسین :smile:

              دیدگاه


                #8
                پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

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

                .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
                www.icesi.ir

                دیدگاه


                  #9
                  پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

                  نوشته اصلی توسط milad2546
                  بیکار بودم گفتم بشینم یه ماشین حساب درست کنم ...
                  من فکر کردم برای خودتون می خواین بسازین!!آ‌ برای همین گفتم!!آ‌ ...


                  معمولا سینوس کسینوس رو با بست اونها بدست میارن،اما اگه فقط این زاویه هارو می خواین،همون جدول از همه بهتره!! اصلا من اگه جای شما باشم،به جای هر کدوم از اعداد 0 الی 90 یک تابع می نوسیم که شامل نوشتن حاصلش روو lcd هم باشه!!! این ساده ترین کاره!!آ‌

                  نوشته اصلی توسط milad2546
                  .... یه ماشین حساب ....
                  تا الان چقدر از برنامه رو نوشتین،روتین ها به چه شکلن ؟ جا داره این سینوس کسینوس هم بهش اضافه بشه ؟ یعنی در کنار جمع و تفریق و ...

                  نوشته اصلی توسط milad2546
                  ...من یه کیبورد 4*4 و یک Lcd 2*16 دارم ....
                  راستی،اگه کیبورد 16 تاییه یکی از دکمه های اضافی رو برای نمایش سینوس بزارین :smile:

                  دیدگاه


                    #10
                    پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

                    من برای نمونه تا سینوس 10 نوشتم ولی جواب نداد بعدش فکر کردم شاید به خاطر تست کلیدم بوده و از تست کلید همین سایت استفاده کردم ولی بازم جواب نداد اگه ممکنه شما برنامه رو نگاه کنید ببینید مشکلش کجاست:
                    ---------------------------------
                    EN EQU P2.1
                    RS EQU P2.0


                    LCD:CLR RS
                    MOV P2,#38H
                    SETB EN
                    CLR EN
                    CALL DELAY
                    MOV P2,#01H
                    SETB EN
                    CLR EN
                    CALL DELAY
                    MOV P2,#0FH
                    SETB EN
                    CLR EN
                    CALL DELAY
                    MOV P2,#01H
                    SETB EN
                    CLR EN
                    CALL DELAY
                    SETB RS

                    GETKEY: MOV P3,#0FFH
                    CLR P3.3
                    CLR P3.4
                    CLR P3.5
                    CLR P3.6
                    WAIT: JNB P3.0,HIT
                    JNB P3.1,HIT
                    JNB P3.2,HIT
                    LJMP WAIT
                    HIT: MOV P3,#0FFH
                    CLR P3.3
                    JNB P3.0,G1
                    JNB P3.1,G2
                    JNB P3.2,G3
                    MOV P3,#0FFH
                    CLR P3.4
                    JNB P3.0,G4
                    JNB P3.1,G5
                    JNB P3.2,G6
                    MOV P3,#0FFH
                    CLR P3.5
                    JNB P3.0,G7
                    JNB P3.1,G8
                    JNB P3.2,G9
                    MOV P3,#0FFH
                    CLR P3.6
                    JNB P3.0,G10
                    JNB P3.1,G0
                    JNB P3.2,G11
                    G1: MOV A,#1
                    LJMP FIN
                    G2: MOV A,#2
                    LJMP FIN
                    G3: MOV A,#3
                    LJMP FIN
                    G4: MOV A,#4
                    LJMP FIN
                    G5: MOV A,#5
                    LJMP FIN
                    G6: MOV A,#6
                    LJMP FIN
                    G7: MOV A,#7
                    LJMP FIN
                    G8: MOV A,#8
                    LJMP FIN
                    G9: MOV A,#9
                    LJMP FIN
                    G10: MOV A,#10
                    LJMP FIN
                    G0: MOV A,#0
                    LJMP FIN
                    G11: MOV A,#11
                    FIN:movc A,@A+DPTR
                    MOV P0,A
                    SETB EN
                    CLR EN
                    LJMP GETKEY

                    ORG 600H
                    DB 00h,1h,2h,3h,4h,5h,6h,7h,8h,9h,10d,11d

                    DELAY:
                    MOV R2,#5
                    LOOP2:MOV R1,#100
                    LOOP1:MOV R0,#50
                    LOOPJNZ R0,LOOP
                    DJNZ R1,LOOP1
                    DJNZ R2,LOOP2
                    RET
                    END
                    -----------------------
                    این برنامه رو با پروتئوس میبندم اصلا بر روی LCD هیچی نمایش نمیده.

                    اگه ممکنه مشکلشو بگید کجاست.
                    www.icesi.ir

                    دیدگاه


                      #11
                      پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

                      سلام خسته نباشید..
                      من یه سوال داشتم که با اسمبلی میشود تابع های ریاضی رو بدست آورد.

                      مثلا من تو آکومولاتور عدد 25 را دارم و چطوری میشه با اسمبلی سینوس یا کسینوس عدد 25 را بدست آورد.اگه میشه کدشو به من بگید اگه هم نمیشه راه حل رو بگید.
                      www.icesi.ir

                      دیدگاه


                        #12
                        پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

                        سلام.
                        میلاد جان همونطوری که مرتضی جان گفت باید از بسط استفاده کنی ولی باز مشکلی که هست اینه که شما نیاز به تقسیم های متولی و اعشاری خواهی داشت که این باز کار رو سخت می کنه.
                        به نظرم شما برای زوایای مشخصی که داری سینوس ها رو دستی حساب کن و فقط اونها رو بده به حافظه و متناسب با کلید فشرده شده یکی رو فراخونی کن.
                        موفق باشید.
                        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                        دیدگاه


                          #13
                          سورس همه چیز،lcd کرافیکی،ریاضی،Adc ،ساعت و ...

                          شاید مال mcs51 باشه اما،خیلی کمک میکنه
                          http://www.8052.com/codelib.phtml

                          توجه توجه
                          سورس lcd گرافیکی...
                          ریاضی ...
                          همه چیز
                          حتما نگاه کنین

                          دیدگاه


                            #14
                            پاسخ : با زدن هر کلید کیبورد بر روی LCD سینوس آن عدد نمایش دهد.

                            نوشته اصلی توسط milad2546
                            سلام به همه ی دوستان.
                            بیکار بودم گفتم بشینم یه ماشین حساب درست کنم در عمل اصلی رو نوشتم و حالا توی sin موندم.
                            من حالا تصمیم گرفتم که فقط sin رو درست کنم.و میخوام ببینم کسی هست منو راهنمایی کنه.من یه کیبورد 4*4 و یک Lcd 2*16 دارم و حالا میخوام که برنامه ای بنویسم که هر دکمه ای بر روی کیبورد زده شد بر روی LCD سینوس آن عدد را نمایش دهد.
                            برا ی مثال اگر کلید 9 زده شد بر روی LCD بنویسه:Sin 9 = 0.1564344 و عددی که نشان میده کلا 10 کارکتر باشه.
                            کمکم کنید.
                            در ضمن فقط سینوس 0 تا 90 درجه رو می خوام درست کنم و بقیش مهم نیست.و این کار نیاز به شیفت کیبورد میباشد.که من یک سون سگمنت وصل کردم که با هر بار زدن شیفت یک عدد بهش اضافه بشه.
                            برای مثال اگه ما بخوایم عدد 45 رو بزنیم 4 بار شیفت را فشار بدیم و بر روی سون سگمنت عدد 4 نامیش داده شود و بعد عدد 5 را بزنیم.

                            اگه کسی بلده خواهش میکنم کمکم کنه ..حداقل تا سینوس 10 را بنویسه و به من بگه تا خودم ادامشو دنبال کنم.
                            خیلی ممنون میشم.
                            :wow:
                            پروژه را ساختید بذارید ببینیمش
                            مفید میتونه باشه :agree:

                            دیدگاه

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