Thông báo

Collapse
No announcement yet.

Dấu hiệu nhận biết MCU đã chết?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Dấu hiệu nhận biết MCU đã chết?

    Mình mua ít linh kiện về rap cái mạch nháy LED để thử nhưng chả hiểu sao nó ko chạy được. LED lúc nào cũng sáng.
    Có ai biết là tại sao ko? Đo điện áp mức 1 của MCU được khoảng 2.8V. Đo giữa 2 chân ở mức 1 ra điện áp xoay chiều 2.54V.
    Pó tay luôn
    123...

  • #2
    Với cách lắp mạch thường thấy (tối ưu nhất về mặt công suất LED) thì mặc định mức tín hiệu 0 thì đèn sáng. Bạn xem coi đã nạp chương trình vào con 8051 chưa, con 8051 mới mưa về chưa nạp chương trình thì thường tất cả các chân đều ở mức 0.
    Còn những hư hỏng khác, bạn phải post mạch lên mới biết được

    Comment


    • #3
      Chương trình thì mình đã nạp vào rồi( Ít ra thì phần mềm nạp nó báo vậy!).
      Mạch của vi điều khiển thì có 2 con tụ, 1 con thạch anh lắp vào mạch dao động. Thêm con LED với con trở hạn dòng lắp vào chân số 1.
      Đoạn chương trình của mình đây
      Code:
              ORG     0000H
              MOV     P1,#0FFH
      START:  CLR     P1.0
              ACALL   DELAY
              SETB    P1.0
              ACALL   DELAY
              SJMP    START
      DELAY:  MOV     R0,#250
              MOV     R1,#250
      LOOP:   NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              DJNZ    R1,LOOP
              DJNZ    R0,LOOP
              RET
              END
      Có bấy nhiêu thôi mà chả hiểu sao LED nó ko chịu nháy. Mô phỏng trên Proteus thì nháy ầm ầm. Đằng này cho vào mạch thì lúc nào cũng sáng. Cấp Vcc vào chân reset thì đèn tắt ngủm luôn.
      123...

      Comment


      • #4
        1. Chân số 31 (EA) phải được nối lên VCC để báo rằng dữ liệu chương trình được cất dữ trong chip, ngược lại thì có nghĩa là chương trình được cất dữ ở bộ nhớ ngoài, túm lại là chân này không được để trống.
        2. Chân RESET không nối trực tiếp với VCC mà qua qua khối reset (cái này bạn có thể coi trong sơ đồ mạch của nó) (nhưng mình nghĩ chắc bạn có lắp chứ?)

        Comment


        • #5
          bạn chụp lại fần cứng lên cho mọi nguoi xem thử.

          Comment


          • #6
            Nguyên văn bởi manuk Xem bài viết
            bạn chụp lại fần cứng lên cho mọi nguoi xem thử.
            Mình ko chụp được nhưng đại thể là như vậy.
            Nguyên văn bởi NgAnhTuan Xem bài viết
            1. Chân số 31 (EA) phải được nối lên VCC để báo rằng dữ liệu chương trình được cất dữ trong chip, ngược lại thì có nghĩa là chương trình được cất dữ ở bộ nhớ ngoài, túm lại là chân này không được để trống.
            2. Chân RESET không nối trực tiếp với VCC mà qua qua khối reset (cái này bạn có thể coi trong sơ đồ mạch của nó) (nhưng mình nghĩ chắc bạn có lắp chứ?)
            Nối chân EA vào Vcc rồi. Chân reset thì các anh bảo tớ là cứ kệ ko cần lắp(mạch test) khi cần reset thì cấp Vcc vào sau đó bỏ luôn.
            123...

            Comment


            • #7
              bạn xem lại 2 con tụ .nếu dùng thạch anh tinh thể (crystals ) 2 con tụ fải 30pF +/- 10pF

              Comment


              • #8
                Tụ mình dùng là tụ gốm 33pF. Đi mua trên Hàn thuyên nó bảo thế. Có cách nào kiểm tra ko nhỉ?
                123...

                Comment


                • #9
                  Nguyên văn bởi nbb3i Xem bài viết
                  Tụ mình dùng là tụ gốm 33pF. Đi mua trên Hàn thuyên nó bảo thế. Có cách nào kiểm tra ko nhỉ?
                  Nếu bạn đảm bảo chắc chắn là mạch bạn vẽ đúng và code cung dúng thì theo mình chỉ còn một cách , đó là nut reset của bạn mắc ngược cho nên VDK lúc nào cũng ở trạng thái reset dẫn dến mạch ko hoạt động dc ( dây là lỗi rất dễ mắc do mới làm mạch)

                  Comment


                  • #10
                    Vấn đề này là do bạn để thời gian trễ quá nhỏ,led không đáp ứng kịp.ví dụ bạn dùng thạch anh 12Mhz thì chu kì máy là 1us.suy ra hàm delay của bạn chỉ tạo trễ được 8*250
                    8*250 = 4ms -> led luôn sáng là đúng rồi.bạn thử dùng 2 vòng lặp lồng nhau để tạo thời gian trễ lâu hơn ( khoảng 1s ) xem thế nào.chúc thành công

                    Comment


                    • #11
                      bạn thử chương trình này nhé,mình đã tét thử thành công :
                      ORG 0
                      #include <sfr51.inc>
                      MAIN:
                      CLR P1.0
                      ACALL DELAY
                      SETB P1.0
                      ACALL DELAY
                      SJMP MAIN
                      ;-------------
                      ORG 300H
                      delay :
                      mov R1,#250
                      AGAIN : mov R2,#250
                      HERE : DJNZ R2,HERE
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      DJNZ R1,AGAIN
                      RET
                      END
                      good luck !

                      Comment


                      • #12
                        Nguyên văn bởi h_h_h Xem bài viết
                        Nếu bạn đảm bảo chắc chắn là mạch bạn vẽ đúng và code cung dúng thì theo mình chỉ còn một cách , đó là nut reset của bạn mắc ngược cho nên VDK lúc nào cũng ở trạng thái reset dẫn dến mạch ko hoạt động dc ( dây là lỗi rất dễ mắc do mới làm mạch)
                        Mình ko giám chắc tất cả đều ổn. Cứ nói hiện tượng nên xem có bạn nào đã gặp qua thì chỉ cho mình lý do tại sao thôi. Mình ko dùng nút Reset mà nối 1 dây từ Vcc ra. Lúc nào cần Reset thì chạm cái dây đó vào chân Reset rồi bỏ ra ngay. Ko biết cách này có vấn đề gì ko?
                        Nguyên văn bởi luc_ky_luke Xem bài viết
                        Vấn đề này là do bạn để thời gian trễ quá nhỏ,led không đáp ứng kịp.ví dụ bạn dùng thạch anh 12Mhz thì chu kì máy là 1us.suy ra hàm delay của bạn chỉ tạo trễ được 8*250
                        8*250 = 4ms -> led luôn sáng là đúng rồi.bạn thử dùng 2 vòng lặp lồng nhau để tạo thời gian trễ lâu hơn ( khoảng 1s ) xem thế nào.chúc thành công
                        Vòng lặp của mình là 8*250*250=500.000us=0.5s
                        123...

                        Comment


                        • #13
                          Nguyên văn bởi luc_ky_luke Xem bài viết
                          bạn thử chương trình này nhé,mình đã tét thử thành công :
                          ORG 0
                          #include <sfr51.inc>
                          MAIN:
                          CLR P1.0
                          ACALL DELAY
                          SETB P1.0
                          ACALL DELAY
                          SJMP MAIN
                          ;-------------
                          ORG 300H
                          delay :
                          mov R1,#250
                          AGAIN : mov R2,#250
                          HERE : DJNZ R2,HERE
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          nop
                          DJNZ R1,AGAIN
                          RET
                          END
                          good luck !
                          Hì! Chương trình của bạn nạp vào cũng y hiện tượng trước. Mình nghĩ lý do ko phải do phần mềm. Đang nghi cái mạch nạp bị lỗi
                          123...

                          Comment


                          • #14
                            tớ thấy mạch của bạn có mấy vấn đề quan trọng.tớ nghĩ bạn sửa như này chắc là chạy thôi,tớ mới làm cũng bị y như bạn:
                            1. bạn phải lắp mạch reset cẩn thận giống như trong sách hướng dẫn,mạch reset sẽ tạo thời gian để thanh ghi PC đc đặt vào vị trí đầu tiên trong bộ nhớ chương trình,kinh nghiệm làm tớ thấy không có mạch reset vi chạy ko ổn định
                            2. bạn cũng nên xem lại thời gian trễ,tớ thấy hơi ít(proteus ko đúng lắm đâu) bạn nên cho các vòng lặp lồng vào nhau
                            3.bạn nên để p1 hút dòng hơn là đẩy(vcc ->led -> p1),đẩy dòng không đủ sáng đèn hoặc có thì rất khó phát hiện nhất là khi nháy
                            4.nếu thấy vi có vấn đề thì bạn nên reset nó,hoặc tháo nó ra một lúc,không nóng vội với nó đc càng sửa càng hỏng
                            đấy là một ít kinh nghiệm của tớ hi vọng giúp đcj bạn
                            ''Thà một phút huy hoàng rồi chợt tắt
                            Còn hơn buồn le lói suốt trăm năm''

                            Comment


                            • #15
                              Cảm ơn mta. Mình sẽ thử mấy cách này.
                              123...

                              Comment

                              Về tác giả

                              Collapse

                              nbb3i Tìm hiểu thêm về nbb3i

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X