اطلاعیه

Collapse
No announcement yet.

من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

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

    من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

    ای بزرگان ای البالو ها ای پامادورها ای .......(پاچه خوری)

    من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم :angry:
    1 : به ازای کلید 1 روی صفحه کلید تلفن عدد 113 رو نشون میده و به ازای 2 عدد 114 و همین جور یک رقم یک رقم میره بالا ایا باید تبدیل کنم به یک عدد دیگه منظورم ده ده ای به دودوی یا یک چیز دیگه

    2: گاهی اوقات به ازای 1 عدد 84 رو نشون میده و با سربه سر گذاشتنش حروف بی معنی رو روی lcd نشون میده و میکرو قفل میکنه باید چکار کنم
    :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO: :NO:
    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7 = _
    Pinc.5 , E = Pinc.1 , Rs = Pinc.0
    Config Lcd = 16 * 2
    Config Int0 = Rising
    Enable Interrupts
    Enable Int0
    On Int0 Hgh
    Dim A As Integer
    Config Portb = Input
    Cursor Off
    Cls
    Do
    Locate 1 , 1
    Lcd "wait for pres key"
    Loop
    Hgh:
    Cls
    Home
    Lcd "int0 ook"
    A = Pinb
    Locate 2 , 9
    Lcd A
    Waitms 100
    Cls
    Return
    End
    انجام پروژه هاي برنامه نويسي اندرويد
    [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
    http://cafebazaar.ir/app/?id=com.atxdroid

    #2
    پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

    مقدار متغیر A رو با عدد 15 اند کن و یا بقیه پینهای پورتت رو که استفاده نمیکنی زمین کن.
    الهم عجل لولیک الفرج

    دیدگاه


      #3
      پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

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

      دیدگاه


        #4
        پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

        با سلام
        1- سخت افزار قسمت دیکدر رو اول خروجی اون رو با led تست بکن
        یادت باش سر پایه 15 وقفه مقاومت نذار

        2- شما این 4 تا بیت رو به lsb پورت بزن همونطورئیکه دوستان گفتند مقدار دریافتی رو با 0x0f یا همون 00001111 ماسک بکن تا اون یکی پایه ها که اطلاعاتشون برات مهم نیست وارد نشه بعد از این مقدار اون رو توی یه متغییر 1 بایتی نسبت بده و اون متغییر رو بعد روی ال سی دی نمایش بده

        3- اگه می خوای شماره تلفن رو بگیری بهتره تمام شماره ها رو وارد یه آرایه 11 تائی ( بیشتر طول شماره تلفن های ایران ) بکنی بعد اون ارایه رو خونه به خونه بخونی و روی ال سی دی نمایش بدی

        موفق باش

        دیدگاه


          #5
          پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

          از همه دوستان متشکرم
          پین های اضافی رو زمین کردم درست شد(Iran-PC)
          هالا میخام یادم بدین چطوری میتونم ماسک کنم و اعداد رو چطوری پشت سر هم بزارم و نمایش بدم(hamed_online62)
          انجام پروژه هاي برنامه نويسي اندرويد
          [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
          http://cafebazaar.ir/app/?id=com.atxdroid

          دیدگاه


            #6
            پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

            دقیقا متوجه نشدم. ولی اگه منظورت اینه که دریافت مثلا چهار عدد 3 و 5 و 6 و 1 به صورت عدد 3561 در بیاد ، می تونی این کار رو بکنی.
            اولا از یه متغیر با نوع مناسب استفاده کن. بعد هر بار عدد رو در 10 ضرب کن و با عدد جدید دریافت شده جمع کن:
            Total=Total + A

            دیدگاه


              #7
              پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

              نوشته اصلی توسط mohsen.hex
              از همه دوستان متشکرم
              پین های اضافی رو زمین کردم درست شد(Iran-PC)
              هالا میخام یادم بدین چطوری میتونم ماسک کنم و اعداد رو چطوری پشت سر هم بزارم و نمایش بدم(hamed_online62)
              برای عمل جداسازی یا به اصطلاح عمل ماسک کردن شما می تونی کل پورت رو با عدد جدا کننده and بکنید تا عددهای مورد نظر از هم جدا بشند

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

              دیدگاه


                #8
                پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                میشه یک مثال برنامه ای برام بزنین oo:
                انجام پروژه هاي برنامه نويسي اندرويد
                [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                http://cafebazaar.ir/app/?id=com.atxdroid

                دیدگاه


                  #9
                  پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                  :angry: :angry: :angry:
                  انجام پروژه هاي برنامه نويسي اندرويد
                  [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                  http://cafebazaar.ir/app/?id=com.atxdroid

                  دیدگاه


                    #10
                    پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                    اگه یادم نره تا شب یه مثال میذارم.(اما تستش با خودت). :icon_razz:
                    الهم عجل لولیک الفرج

                    دیدگاه


                      #11
                      پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                      دوست عزیز اقای mohsen.hex شما مدار mt8870 رو جداگانه ازش جواب گرفتی؟؟ خروجی اون رو با led تست کردی؟؟؟

                      مدار مینیمم میکرو رو درست راه اندازی کردی؟؟ :redface:

                      برنامه اتون رو با بسکام می نویسی یا کدویژن یا .....

                      برنامه اش خیلی ساده است
                      یه ال سی ببند مثلا به پورت a
                      اول روی اون یه پیغام خوش امد گوئی

                      بعد وقفه رو فعال بکن وقفه 0 چون وقفه mt8870 یه وقفه Rising یعنی 0 به 1 یا همون لبه بالا رونده توی برنامه باید حساسیت وقفه رو روی این لبه تنظیم بکنی

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

                      اولین قدم باید این کار رو بکنی

                      حتی برای تست بدون mt8870 می تونی خودت روی اون پایه وقفه یه کلید با یه مدار rc برای گرفتن بانچ کلید بذاری اون رو فشار بدی میکرو وقفه رو ببینه بعد به جای 4 تا پایه mt8870 چهارتا پایه رو دلخواده به 1 یا 0 وصل بکنی تا ببینی می تونی مقدار پورت رو بخونی

                      درسسته همه این کارا رو میشه ساده توی پروتیوس انجام داد ولی بهتره این کار رو عملی انجام بدی

                      موفق باشی

                      دیدگاه


                        #12
                        پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                        نوشته اصلی توسط رضا حاجی زاده
                        دوست عزیز اقای mohsen.hex شما مدار mt8870 رو جداگانه ازش جواب گرفتی؟؟ خروجی اون رو با led تست کردی؟؟؟

                        مدار مینیمم میکرو رو درست راه اندازی کردی؟؟ :redface:

                        برنامه اتون رو با بسکام می نویسی یا کدویژن یا .....

                        برنامه اش خیلی ساده است
                        یه ال سی ببند مثلا به پورت a
                        اول روی اون یه پیغام خوش امد گوئی

                        بعد وقفه رو فعال بکن وقفه 0 چون وقفه mt8870 یه وقفه Rising یعنی 0 به 1 یا همون لبه بالا رونده توی برنامه باید حساسیت وقفه رو روی این لبه تنظیم بکنی

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

                        اولین قدم باید این کار رو بکنی

                        حتی برای تست بدون mt8870 می تونی خودت روی اون پایه وقفه یه کلید با یه مدار rc برای گرفتن بانچ کلید بذاری اون رو فشار بدی میکرو وقفه رو ببینه بعد به جای 4 تا پایه mt8870 چهارتا پایه رو دلخواده به 1 یا 0 وصل بکنی تا ببینی می تونی مقدار پورت رو بخونی

                        درسسته همه این کارا رو میشه ساده توی پروتیوس انجام داد ولی بهتره این کار رو عملی انجام بدی

                        موفق باشی

                        عزیزم به لطف شما ودیگر دوستان از اون قسمت های که شما گفتین جواب گرفتم :wow: :wow: :wow:
                        اما
                        روی این قسمت که گفتین پایه های اضافی روی اون پورت که به mt8870هست رو ماسک کن متوجه نشدم :cry2:
                        :cry2: :cry2: :cry2:
                        انجام پروژه هاي برنامه نويسي اندرويد
                        [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                        http://cafebazaar.ir/app/?id=com.atxdroid

                        دیدگاه


                          #13
                          پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                          دوست عزیز
                          به طور خلاصه شما 4 تا پایه این ای سی رو به lsb و یا msb یکی از پورت های میکرو وصل می کنی حالا شما وقتی با دستور pib داده رو از روی پایه های میکرو می خونی ( البته با استفاده از روتین وقفه ........ ) شما یه داده 8 بیتی داری که 4 تا بیت اون برات ارزشی نداره و باید اونا رو صفر بکنی
                          این کار به سادگی با عمل and بولی انجام میشه
                          مثلا من می خوام 4 تا بیت پورت d اونم lsb رو بخونم توی سی
                          unsigned char a;
                          a= PIND;
                          a&=0x0f;

                          خیلی ساده اون 4 تا بیت حفط شد و اون یکی ها صفر شد
                          unsigned char a;
                          a= PIND;
                          a&=0x0f;
                          a=a>>4;

                          البته اگه می خواستم این کار رو برای msb انجام بدم باید یه عمل شیفت هم انجام می دادم
                          تا داده ها رو از msb بیارم بکنم lsb


                          یه چند تا مشکل دارم
                          کاش می تونستم پروژه کامل مدار کالر ای دی رو اینجا بذارم


                          باز اگه نشد بفرما خدمت می کنم
                          موفق باشی

                          دیدگاه


                            #14
                            پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                            ممنون :applause:
                            ولی :sad:
                            من :angry:
                            با بسکام کار میکنم :nice:
                            انجام پروژه هاي برنامه نويسي اندرويد
                            [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
                            http://cafebazaar.ir/app/?id=com.atxdroid

                            دیدگاه


                              #15
                              پاسخ : من مدار mt8870 رو با مگا 8 بستم جواب گرفتم ولی دوتا مشکل دارم

                              از همین برنامه ای که رضا حاجی زاده انجام داد می تونی برای بیسکام هم استفاده کنی.
                              ولی خب یه کار ساده تر می تونی انجام بدی:
                              فرض کن بیت های MT8870 رو این طوری به پورت B وصل کردی:

                              B.4====>LSB
                              .
                              .
                              B.7=====>MSB
                              حالا خیلی راحت میتونی این کار رو بکنی:(متغیر Info برای دریافت عدد تعریف میشه)
                              Info=0
                              Info.0=pinb.4
                              Info.1=pinb.5
                              Info.2=pinb.6
                              Info.3=pinb.7


                              دیدگاه

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