Thông báo

Collapse
No announcement yet.

At89c52 hay bị treo là do đâu

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

  • At89c52 hay bị treo là do đâu

    vẫn là cái code đơn giản dùng ngat time0, cpl p1.0 sau 1 giậy
    nhưng chạy có khi được 2-10 phút là treo led sáng chứ k nháy nữa
    vậy lỗi do chất lượng Vdk hay do mạch điện ạ,

    Mạch thì đơn giản gồm 2 tụ 33p+thạch anh 12M cấp dao động
    tụ 10uF+trở 220 reset
    vcc+ +trở 220+led+p1.0 mức 0 là tích cực
    5v lấy từ Lm317 nguồn acquy

    có khi nào do chất lương 2 tụ 33p không ạ, cái này e nhổ từ mạch đài từ thoi naponeong

    code
    $MOD51
    ORG 0
    LJMP MAIN
    ORG 000BH
    T0ISR:
    DJNZ R0,CHUAB0
    clr tr0
    MOV TH0,#03CH
    MOV TL0,#0AFH
    setb tr0
    CPL P1.0
    MOV R0,#20
    CHUAB0:
    RETI
    ORG 0030H
    MAIN:
    mov sp,5fh
    MOV TMOD,#01H
    MOV TH0,#03CH
    MOV TL0,#0AFH
    MOV R0,#20
    SETB TR0
    MOV IE,#82H
    SJMP $
    END

  • #2
    mô phỏng chạy ngon lành, chạy ngon đến nổi nhổ cả mạch reset+thạch anh ra mạch vẫn ok, thằng proteus này kiểu gì vậy các bác

    Giờ thì em hiểu giữa lý thuyết chay và thực tế là 1 trời 1 vực

    Comment


    • #3
      mô phỏng chạy ngon lành, chạy ngon đến nổi nhổ cả mạch reset+thạch anh ra mạch vẫn ok, thằng proteus này kiểu gì vậy các bác

      Giờ thì em hiểu giữa lý thuyết chay và thực tế là 1 trời 1 vực

      Comment


      • #4
        Code Asem thi mình chịu, nhưng trước kia có bị lỗi lập trình thế này, quên mất để một biến đếm tăng mãi i++ , đến lúc nó tràn thì treo chíp

        Comment


        • #5
          Đây lúc nó chạy lúc k mới điên chứ, có khi chạy phát đến 1h mới treo. E mua 4 con 89c52 ở chợ giời về chết 2 (mạch nạp k nhận) chẳng lẽ 2 con này cung sắp chết

          Comment


          • #6
            toi nghi ong nen moi thay Cúng về cúng xem sao, có khi do thiết kế mạch động chạm phải ông nào rùi!!!! ke ke ke
            Một ngày tươi đẹp
            ------------------------
            0975.636.131

            Comment


            • #7
              Nguyên văn bởi ngoctiensinh Xem bài viết
              toi nghi ong nen moi thay Cúng về cúng xem sao, có khi do thiết kế mạch động chạm phải ông nào rùi!!!! ke ke ke
              Nản lắm bác ợ, cái mạch đơn giản vậy k chạy nổi nghĩ gì tới quét led, tới serial

              Comment


              • #8
                Thiết kế của core 8051 đã open nên các anh Tung Của bắt chiếc rất nhanh. Đó là lý do 8051 xuống giá kinh khủng và cũng kèm theo chất lượng đi xuống thảm. Vì vậy dân tình thường chọn một nhà cung cấp uy tín hoặc chuyển qua PIC hay AVR với core được thiết kế tốt hơn, chất lượng ổn định hơn rất nhiều.
                Tuy nhiên vai trò của 8051 cũng không thể phủ nhận vì nó giúp các newbie tiếp cận nhanh hơn với MCU.
                Nói vậy để bạn thấy rằng chuyện 8051 treo cũng là chuyện cơm bữa. Bạn có thể dùng dòng 89Sxx để chống treo với watchdog.
                From MTA

                Comment


                • #9
                  các bác cho em hỏi mạch reset có con tụ 10uF nối Vcc và con trở bao nhiêu vậy
                  nhìn k rõ là 0.2k(200om) hay 8.2k vậy (già rồi nhìn k ra số 0 hay số 8 nữa)
                  Nói chung là em thử cả 2 loại cũng thấy mạch nó vẫn thế nhưng muốn biết rõ nó là bao nhiêu, tra datasheet có thấy cái đó đâu nhỉ
                  -------------------------------------------------------------------------

                  Bạn có thể dùng dòng 89Sxx để chống treo với watchdog.
                  dòng 89Cxx không được hả bác, bác giới thiệu qua về watchdog của dòng 89Sxx được không

                  cho em hỏi có lệnh mềm reset 89Cxx kh nhỉ
                  Last edited by coofhair; 07-03-2010, 21:19.

                  Comment


                  • #10
                    ai giải thích dùm em phát, học 8051 mà k thấy sách nào nói về cái này cả

                    http://dientuvietnam.net/forums/arch...php/t-100.html
                    BinhAnh
                    19-07-05, 17:28
                    Họ AT89C51 của Atmel thì có kiểu Watchdog mềm: có thể thay đổi khi đang chạy, được enable hoặc disble bằng phần mềm.
                    Trong khi đó một số họ vđk như PIC lại config cứng(khi nạp), trong quá trình chạy không thể enable hoặc disble được.
                    Theo tui, kiểu của PIC có vẻ an toàn hơn, bởi lẽ nếu vi điều bị nhiễu tác động đúng vào bit enable->disble thì khá nguy hiểm

                    Comment


                    • #11
                      Ý bác BA là 89S51 ấy mà. Lỗi typo thôi.
                      From MTA

                      Comment


                      • #12
                        Nguyên văn bởi coofhair Xem bài viết
                        vẫn là cái code đơn giản dùng ngat time0, cpl p1.0 sau 1 giậy
                        nhưng chạy có khi được 2-10 phút là treo led sáng chứ k nháy nữa
                        vậy lỗi do chất lượng Vdk hay do mạch điện ạ,

                        Mạch thì đơn giản gồm 2 tụ 33p+thạch anh 12M cấp dao động
                        tụ 10uF+trở 220 reset
                        vcc+ +trở 220+led+p1.0 mức 0 là tích cực
                        5v lấy từ Lm317 nguồn acquy

                        có khi nào do chất lương 2 tụ 33p không ạ, cái này e nhổ từ mạch đài từ thoi naponeong

                        code
                        $MOD51
                        ORG 0
                        LJMP MAIN
                        ORG 000BH
                        T0ISR:
                        DJNZ R0,CHUAB0
                        clr tr0
                        MOV TH0,#03CH
                        MOV TL0,#0AFH
                        setb tr0
                        CPL P1.0
                        MOV R0,#20
                        CHUAB0:
                        RETI
                        ORG 0030H
                        MAIN:
                        mov sp,5fh >>> mov sp,#5fh
                        MOV TMOD,#01H
                        MOV TH0,#03CH
                        MOV TL0,#0AFH
                        MOV R0,#20
                        SETB TR0
                        MOV IE,#82H
                        SJMP $
                        END
                        Không vững về cách cài ngăn xếp thì đừng chuyển vị trí mặc định của ngăn xếp bừa bãi vậy nhé! Lệnh của bạn không có dấu thăng # nên nó gán cho SP giá trị của byte RAM 5FH, mà khi cắm nguồn thì tất cả RAM bằng 0. Do đó SP = 0; Stack = 0, chính vậy nó chạy bậy là phải rồi!

                        @ Tất cả các chú phỏng đoán về chip, hàng TQ có thể dỏm nhưng không đến nổi chạy không nổi đâu nhé, hehe, chương trình sai rành rành vậy mà chưa xét đã lo nghi đến chip chiếc.

                        Comment


                        • #13
                          Thử code này xem:

                          $MOD51
                          ORG 000H
                          JMP MAIN
                          ORG 00BH
                          JMP T0ISR
                          MAIN:
                          MOV TMOD,#01H
                          MOV TH0,#03CH
                          MOV TL0,#0AFH
                          MOV R0,#20
                          CLR TF0
                          SETB TR0
                          MOV IE,#82H
                          JMP $
                          ;**************************
                          T0ISR:
                          DJNZ R0,CHUAB0
                          CPL P1.0
                          MOV R0,#20
                          CHUAB0:
                          CLR TF0
                          MOV TL0,#0AFH
                          MOV TH0,#03CH
                          RETI
                          END
                          Người nhỏ bé.

                          Comment


                          • #14
                            Nguyên văn bởi natra2k2 Xem bài viết

                            @ Tất cả các chú phỏng đoán về chip, hàng TQ có thể dỏm nhưng không đến nổi chạy không nổi đâu nhé, hehe, chương trình sai rành rành vậy mà chưa xét đã lo nghi đến chip chiếc.
                            Hí hí, bạn Natra đá miềng quả đau nhớ đời luôn.
                            Từ ngày code C cũng có cái giở, chả để ý ngăn xếp, ngăn xiếc gì.
                            Mà miềng cứ yên tâm code ngon, chả kiểm tra nữa. Thú thật giờ nhìn ASM là cứ hoa hết cả mắt
                            From MTA

                            Comment


                            • #15
                              Cảm ơn các bác. Thảo nào từ hôm qua thay đoạn code đó vào nó chẳng chịu chạy tý nào nữa. Em vẫn biết là mình k dùng băng thanh ghi 1,2,3 và cần ít ngăn xếp thì không nên thay đổi SP làm gì. Nhưng mạch nó chạy điên điên nên thử code nguyên bản trong tài liệu ai ngờ thiếu # . Thấy mạch tịt luôn mà k biết tại sao.
                              sửa lại code hay chạy code của bác thaielectric mạch nó lại lúc chạy lúc đơ rồi ạ

                              Mà sao code sai như vậy Proteus nó vẫn mô phỏng đúng là sao ạ
                              vậy dùng proteus mà làm gì, tưởng đâu nó ngon lành lắm mà

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X