اطلاعیه

Collapse
No announcement yet.

کار نکردن PIC16F877A

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

    #16
    پاسخ : کار نکردن PIC16F877A

    نوشته اصلی توسط SMART-CARD
    بفرمایید گذاشتم


    http://up.iranblog.com/images/v9ggjy0wzmua1xxgwjya.rar
    سلام
    بچه ها فکر میکنم مشکل از کامپایلر باشه. شما ورژنتون چنده؟ مثالتون توی کامپایلر من لود نمیشه.
    من تا چند روز پیش ccs 4.057 رو سیستمم نصب بود ، و با lcd هم باهاش کار کرده بودم . البته فقط سری 16 رو که توی کد ویزاردش میگفت میشه روی هر پورتی lcd رو تعریف کرد و حتی جای پینها رو هم انتخاب کرد. اما در عمل بجز portb , portd کار نمیکرد و جای پینهاش رو نمیشد جابجا کرد . اما همین نسخه ای که دوستان تو سایت گذاشتن رو نصب کردم و update ورژن 4.114 رو هم نصب کردم.ولی تا امروز باهاش کار نکرده بودم. امروز که اومدم باهاش مشکل دوستمونو چک کنم دیدم جواب نمیده. یعنی خودم اول براش یه مثال نوشتم دیدم کار نمیکنه. روی پورت معلوم بود اطلاعاتی نوشته میشه ولی lcd چیزی نشون نمیداد.

    قبلا هم که با ccs 4.057 کار میکردم یه سری مشکلات عجیب داشتم مثلا با جابجا کردن prototype توابع مشکل برطرف میشد.
    توی ccs 4.057 قسمت ویزاردش، فقط یه ویزارد داشتم اما توی ccs 4.114 2 تا ویزارد هست یکی PIC wizard و دیگری هم 24 bit wizard .

    حالا از دوستان اگه کسی با این مسائل برخورد داشته و تونسته مشکل رو حل کنه راهنمایی کنه.
    از کجا میشه فهمید ccs ما چه میکرو هایی رو ساپورت میکنه و قسمت ویزاردش واسه کدوم میکرو هاست(PCD _PCW_PCH_PCWHD ,...). ظاهرا PIC wizard باید واسه سری 12و16 باشه و 24 bit wizard باید واسه سری 18 , dspic ها. اما توی هر دوتاشم میشه تموم میکرو ها رو انتخاب کرد. اگه از دوستان با تجربه کسی کامپایلر جواب پس داده واسه همه سری های pic12,pic16, pic18, dspic رو داره توی پست زیر قرار بده و اگه ممکنه توضیحاتی هم در موردش بده.
    http://www.eca.ir/forum2/index.php?topic=50847.0
    ممنون از توجه شما.

    دیدگاه


      #17
      پاسخ : کار نکردن PIC16F877A

      ظاهرا همونطوری که فکر میکردم ورژن های 110و 111و 114 باگ دارن که توی سایت sonsivr بهش اشاره شده و مشکل LCD هم توی نسخه 4.114 ذکر شده:
      http://www.sonsivri.com/forum/index....ic=33138.0;all

      [move] نظر دوستان چیه؟[/move]

      دیدگاه


        #18
        پاسخ : کار نکردن PIC16F877A

        من صمیمانه از پیگیری همه دوستان تشکر می کنم
        ورژن من 4.084 هست
        لطفا یکی یه ورژن که ازش مطمعن هست رو بزاره تا همه استفاده کنیم

        دیدگاه


          #19
          پاسخ : کار نکردن PIC16F877A

          نوشته اصلی توسط SMART-CARD
          من صمیمانه از پیگیری همه دوستان تشکر می کنم
          ورژن من 4.084 هست
          لطفا یکی یه ورژن که ازش مطمعن هست رو بزاره تا همه استفاده کنیم
          من الان مثالی که واسه LCD نوشتم رو روی 4.084 تست کردم و درست کار میکنه. دارم تازه میفهمم چرا با pic کمتر کار میشه. 100 تا دستور داره که همش قراره یه کار کنن اما یکیش هم به زور اونم چند ورژن در میون کار میکنه!!! اگه اشتباه میکنیم یه استاد ما رو به راه مستقیم هدایت کنه

          دیدگاه


            #20
            پاسخ : کار نکردن PIC16F877A

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


            اگه میدونستم pic کار نمیکردم

            دیدگاه


              #21
              پاسخ : کار نکردن PIC16F877A

              نوشته اصلی توسط SMART-CARD
              لطفا فایل هگز به برنامه با شماتیک که ازش جواب گرفتید بزارید خیلی ممنون میشم


              اگه میدونستم pic کار نمیکردم
              روی شماتیک خودت تست کردم کار کرد
              این از کدش:

              #include <16F877A.h>

              #device adc=16

              #FUSES NOWDT //No Watch Dog Timer
              #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
              #FUSES PUT //Power Up Timer
              #FUSES NOBROWNOUT //No brownout reset
              #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
              #FUSES NOCPD //No EE protection
              #FUSES NOWRT //Program memory not write protected
              #FUSES NODEBUG //No Debug mode for ICD
              #FUSES NOPROTECT //Code not protected from reading

              #use delay(clock=20000000)

              #define use_portb_lcd true

              #include <lcd.c>

              unsigned char a;

              void main()
              {


              lcd_init();
              while(TRUE)
              {
              lcd_gotoxy(1,1);
              lcd_putc("allah"
              delay_ms(1000);

              lcd_gotoxy(1,1);
              lcd_putc(" "
              delay_ms(1000);

              a++;

              }

              }
              اینم هگزش:


              :1000000000308A00E22800000A108A100A118207D4
              :1000100028340C34013406340A108A100A1182077D
              :1000200061346C346C346134683400340A108A10E2
              :100030000A11820720342034203420342034003444
              :100040002330840083130008031933280630F80096
              :10005000F701F70B2928F80B28287B30F700F70B5E
              :100060002F28800B262800342A0EF039F7000F3095
              :10007000060577048600000006140330F700F70B2E
              :100080003F28061000348610F03083168600831255
              :1000900006150000061400000608060E0F39AA0017
              :1000A0000610000006145428552800000608060E05
              :1000B0000F39A900061000308316860083122A0E1D
              :1000C000F700F030F70577082904F8007808A90050
              :1000D000A91B4428271C8610271886140000061127
              :1000E00000000610280EA9000F30A9052908AA0053
              :1000F000342028080F39A900AA0034200034003029
              :100100008316860083128610061106100F30A30096
              :1001100020200130A1002108033C031C9728033054
              :10012000AA0034200530A3002020A10A8B28023029
              :10013000AA003420A1012108033C031CA82821089F
              :100140000420A200A7012208A8004320A10A9B289E
              :100150008A110A12EF28240BAE28B1284030A500DE
              :10016000B228A50101302302A50725088038A60082
              :10017000A7012608A8004320003422080C3A0319DE
              :10018000C828063A0319D028023A0319D628DB28D2
              :10019000A7010130A80043200230A3002020E1285D
              :1001A0000130A3000230A400AB20E128A7011030E9
              :1001B000A8004320E1280130A7002208A80043201E
              :1001C000E1280034840183131F30830583161F1434
              :1001D0009F141F159F1107309C0083127F28013048
              :1001E000A300A400AB20A10121080C2000380319B2
              :1001F000FD28A10AA200BD20F4280430A100FA3095
              :10020000A3002020A10BFF280130A300A400AB20F5
              :10021000A10121081620003803191229A10AA20001
              :10022000BD2009290430A100FA30A3002020A10B31
              :080230001429A00AEF28630065
              :02400E00323F3F
              :00000001FF
              ;PIC16F877A
              ;CRC=371A CREATED="16-مى-11 19:06"

              دیدگاه


                #22
                پاسخ : کار نکردن PIC16F877A

                دوستان کسی ccs که تست کرده باشه و برای 16f و 18f جواب گرفته باشه نداره بزاره

                مشکل من 100% از نرم افزار هست
                چون این فایل هگز که دوستان گداشتن جواب میده

                دیدگاه


                  #23
                  پاسخ : کار نکردن PIC16F877A

                  نوشته اصلی توسط SMART-CARD
                  دوستان کسی ccs که تست کرده باشه و برای 16f و 18f جواب گرفته باشه نداره بزاره

                  مشکل من 100% از نرم افزار هست
                  چون این فایل هگز که دوستان گداشتن جواب میده
                  من این مثالو با همین ccs 4.084 که تو سایت هم هست نوشتم. ولی ازش مطمئن نیستم. راستش به کامپایلرای pic شدیدا مشکوک شدم و دیگه اطمینان ندارم. اگه هم از این به بعد کار کنم خودم رجیستری باهاش کار میکنم. البته اگه به حرفم گوش کنه و باز هر کاری دلش خواست نکنه. :icon_razz:

                  ولی از شوخی گذشته اگه واقعا کسی تجربه روبرویی با این مسائلو داشته راهنمایی کنه. بلاخره مشکل از ماست یا کامپایلر؟؟؟

                  دیدگاه


                    #24
                    پاسخ : کار نکردن PIC16F877A

                    با سلام خدمت همه دوستان و اساتید محترم
                    دوستان بنده هم مدتیه با pic16f877a به مشکل خوردم و تمام کوششم هم برای راه انداختنش ظاهرا بی فایده بوده، لذا از دوستان تقاضا دارم در صورت امکان بنده رو کمک کنن.
                    کامپایلری که باهاش کار میکنم pic basic proهست و من قصد راه انداختن سروو موتور رو داشتم با همین میکرو، البته با pic16f84aاین کارو کردم یعنی تونستم برنامه زیرو ، رو اون اجرا کنم و سرووم هم چرخید منتها با ملاحظاتی که واسه 877a به شرح زیر انجام دادم و همین برنامه نتونستم سروو رو با این میکرو حرکت بدم.
                    واسه pic16f877a پایه MCLR یا همون پایه 1 رو یک بار با مقاومت تنهای 4.7K و یه بار دیگه با 10K به همراه یک دیود شیشه ای 4148 به +5 ولت دادم، پایه 11 و 32 رو هم به +5 وصل کردم.
                    بعد از اون RB3 رو هم زمین کردم.
                    از کریستال 4M استفاده کردم که بین پایه های 13 و 14 قرار دادم و از دو سرش هم با دو تا خازن 22p به زمین اومدم.
                    پایه های 12 و 31 رو هم زمین کردم.
                    کابل دیتای سروو هم به RB0 دادم.
                    زمین سروو و میکرو رو هم یکی کردم.
                    اما باز هم میکروم با برنامه زیر راه نمیفته، آیا ایراد از برنامم هست یا ایراد سخت افزلری دارم یا اینکه کاری رو باید میکردم و انجام ندادم؟
                    a var byte
                    b var byte
                    c var byte
                    i var byte
                    a = 80
                    b = 215
                    c = 145
                    portb = %00000000
                    trisb = %11111110
                    start:
                    for i = 1 to 40
                    pulsout portb.0, a
                    pause 19
                    next i
                    for i = 1 to 40
                    pulsout portb.0, c
                    pause 19
                    next i
                    for i = 1 to 40
                    pulsout portb.0, b
                    pause 19
                    next i
                    for i = 1 to 40
                    pulsout portb.0, c
                    pause 19
                    next i
                    goto start
                    end

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

                    دیدگاه


                      #25
                      پاسخ : کار نکردن PIC16F877A

                      موقع کامپایل کردن فیوزبیتهای مربوط به اسیلاتور رو چک کن
                      گل سرخ گل سرخ است و خار , خار . نه خار بد است و نه گل سرخ خوب . اگر انسان از روی زمین محو شود , گلها آنجا خواهند بود و خارها نیز آنجا . اما دیگر کسی نیست که بگوید گلهای سرخ خوبند و خارها بد !

                      دیدگاه


                        #26
                        پاسخ : کار نکردن PIC16F877A

                        با سلام و ممنون از پاسختون
                        جناب asgari منظورتون رو از فیوزبیتهای اسیلاتور دقیقا نمیدونم چیه و ممنون میشم اگه لطف کنید و طبق توضیحاتی که تو چند پست قبلی دادم بفرمائید که چه کار باید علاوه بر اونا باید انجام میدادم و ندادم؟ نرم افزار پروگرمرم pickit2 هستش و متاسفانه تو اون هم نمیدونم چجوری باید فیوزبیتها رو تنظیم کنم؟
                        باز هم ممنون میشم از شما یا سایر دوستانی که اطلاعی در این زمینه دارن به بنده کمک کنن :job:
                        زندگی برگ بودن در مسیر باد نیست
                        امتحان ریشه هاست
                        ریشه هم هرگز اسیر باد نیست
                        زندگی چون پیچک است
                        انتهایش میرسد پیش خدا!

                        دیدگاه


                          #27
                          پاسخ : کار نکردن PIC16F877A

                          دوستان نمیدونم کلا این pic16 ها چرا کار نمیکنن من از pic18 جواب میگیرم ولی با 16 نه فکر کنم به کامپایلر هم ربطی نداشته باشه
                          من که نمیدونم باید چی کار کنم
                          اگه کسی میدونه به ما هم بگه

                          دیدگاه


                            #28
                            پاسخ : کار نکردن PIC16F877A

                            سلام دوستان
                            من که همچنان گیر این f877a هستم لطفا اگه امکان داره و کسی قبلا تونسته این میکرو رو راه بندازه، یه لطفی کنه بگه دقیقا مدار راه اندازش چیه و به کدوم پایه هاش چیا باید وصل بشه؟ من که هر کاری کردم نشد oo:
                            قبلا هم گفته بودم بنده پایه MCLR یا همون پایه 1 رو یک بار با مقاومت تنهای 4.7K و یه بار دیگه با 10K به همراه یک دیود شیشه ای 4148 به +5 ولت دادم، پایه 11 و 32 رو هم به +5 وصل کردم.
                            بعد از اون RB3 رو هم زمین کردم.
                            از کریستال 4M استفاده کردم که بین پایه های 13 و 14 قرار دادم و از دو سرش هم با دو تا خازن 22p به زمین اومدم.
                            پایه های 12 و 31 رو هم زمین کردم.
                            اما نمیدونم این وسط با فیوزبیتها باید چه کار کرد و نحوه تنظیمشو نه نرم افزاری میدونم نه سخت افزاری! با pickit2 کار میکنم کامپایلرم هم pic basic pro هست، دوستان علاوه بر مواردی که گفتم کار دیگه ای هم باید بکنم؟
                            زندگی برگ بودن در مسیر باد نیست
                            امتحان ریشه هاست
                            ریشه هم هرگز اسیر باد نیست
                            زندگی چون پیچک است
                            انتهایش میرسد پیش خدا!

                            دیدگاه


                              #29
                              پاسخ : کار نکردن PIC16F877A

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

                              مشکل این هست که شما توی برنامه باید فیوز بیت ها رو تنظیم کنید
                              این خط رو به برنامه هاتون اضافه کنید مشکل حل میشه
                              #fuses HS,NOWDT, NOPROTECT,NOPUT,NOBROWNOUT

                              این برنامه رو تست کن حتما جواب میگیری
                              کل پین ها یک و صفر میشن


                              #include <16f877a.h>
                              #use delay (xtal=8,000,000)
                              #fuses HS,NOWDT, NOPROTECT,NOPUT,NOBROWNOUT

                              void main (void)
                              {
                              set_tris_A(0x00);

                              set_tris_B(0x00);

                              set_tris_C(0x00);

                              set_tris_D(0x00);



                              while (true)
                              {
                              output_A(0xff);

                              output_B(0xff);

                              output_C(0xff);

                              output_D(0xff);


                              delay_ms(500);
                              output_A(0x00);

                              output_B(0x00);

                              output_C(0x00);

                              output_D(0x00);

                              delay_ms(500);
                              }

                              }

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

                              دیدگاه


                                #30
                                پاسخ : کار نکردن PIC16F877A

                                سلام و ممنونم از لطفتون جناب SMART-CARD ولی متاسفانه بنده با کامپایلر شما کار نمکینم و با pic basic pro کار میکنم نرم افزار پروگرمرم هم pickit2 هستش
                                تا یه جاهایی بنده هم حدس میزدم که مشکل تنظیم فیوزبیت، watchdog timer , و ریست brownout باشه اما نمیدونم چجوری باید اونا رو به صورت نرم افزاری با کامپایلر خودم تنظیم کنم؟
                                ممنون میشم از شما و سایر دوستانی که اطلاعاتی در این زمینه دارن بنده رو راهنمائی کنن.
                                زندگی برگ بودن در مسیر باد نیست
                                امتحان ریشه هاست
                                ریشه هم هرگز اسیر باد نیست
                                زندگی چون پیچک است
                                انتهایش میرسد پیش خدا!

                                دیدگاه

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