Thông báo

Collapse
No announcement yet.

Hỏi chương trình C này (AT89C52)

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

  • Hỏi chương trình C này (AT89C52)

    Em có một đoạn code nhỏ thế này thôi.

    void main()
    {
    P1=0xFF;
    }

    nhưng sao khi dùng đồng hồ đo dòng tại các chân so với GND thì kết quả như sau:
    P1.0 = 5v
    P1.1-7 = 2,2V => lẽ ra phải là phải là 5v chứ
    Các pác giải thích giúp em nha.


    Em còn một câu hỏi nữa:
    em dung mạch nạp sp200(phiên bản miễn phí, tự làm) thời gian trước thì nạp rất ngon, nhưng gần đây có một hiện tượng lạ là: khi nạp bị lỗi, nếu cố nạp lại lần nữa thì sẽ bị reset lại máy tính??

    Thank
    Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

  • #2
    - Bạn thử khai báo ban đầu cho port1=0 thử xem kết quả thế nào.
    - Mạch nap sp200s hay bị kén chíp, có con thì nạp dc, có con thì ko nạp dc(bạn thử với các con có ít chân địa chỉ nạp thử xem -vd: 89c2051),và nhớ kiểm tra lại cáp USB
    - Download WLPRO V2.20 bản mới về xài
    Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
    Pic 18F2550 PDIP Thailand bao test 60K/1c


    Comment


    • #3
      [quote=tnt288;235257]Em có một đoạn code nhỏ thế này thôi.

      void main()
      {
      P1=0xFF;
      while(1) continue;
      }
      Không có dòng màu đỏ chương trình sẽ chạy luôn ra phần bộ nhớ ROM phía sau gây ra những hiện tượng không thể đoán được.

      Comment


      • #4
        Nguyên văn bởi vidieukhien1 Xem bài viết
        - Bạn thử khai báo ban đầu cho port1=0 thử xem kết quả thế nào.
        - Mạch nap sp200s hay bị kén chíp, có con thì nạp dc, có con thì ko nạp dc(bạn thử với các con có ít chân địa chỉ nạp thử xem -vd: 89c2051),và nhớ kiểm tra lại cáp USB
        - Download WLPRO V2.20 bản mới về xài
        Minh đã thử với c2051 và c52, lâu lâu vẫn bị
        Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

        Comment


        • #5
          [QUOTE=natra2k2;235271]
          Nguyên văn bởi tnt288 Xem bài viết
          Em có một đoạn code nhỏ thế này thôi.

          void main()
          {
          P1=0xFF;
          while(1) continue;
          }
          Không có dòng màu đỏ chương trình sẽ chạy luôn ra phần bộ nhớ ROM phía sau gây ra những hiện tượng không thể đoán được.
          Minh nhầm
          code chính xác của mình là
          void main()
          {
          P1=0xff;
          while(1)
          {
          }
          }

          nhưng vẫn bị
          Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

          Comment


          • #6
            Kiểm tra kĩ lại xem chân P1.1 - P1.7 có nối đi đâu không?
            Nếu không nối đi đâu thì khả năng Chip chết các chân đó, thay con khác xem hiện tượng sao.
            Chương trình nên viết thêm vài hoạt động nữa để kiểm tra dễ hơn.
            ví dụ:
            void main (){
            while(1){
            P1 = 0x00;
            delay(1000);
            P1 = 0xFF;
            }
            }

            Chỉ đơn thuần cho P1 = 0xFF; thì chưa biết được Chip đã chạy hay chưa.
            Mạch nạp SP200 gây Reset máy tính thường do lỗi giao tiếp PL2303

            Comment


            • #7
              Nguyên văn bởi tnt288 Xem bài viết
              Em có một đoạn code nhỏ thế này thôi.

              void main()
              {
              P1=0xFF;
              }

              nhưng sao khi dùng đồng hồ đo dòng tại các chân so với GND thì kết quả như sau:
              P1.0 = 5v
              P1.1-7 = 2,2V => lẽ ra phải là phải là 5v chứ
              Các pác giải thích giúp em nha.


              Em còn một câu hỏi nữa:
              em dung mạch nạp sp200(phiên bản miễn phí, tự làm) thời gian trước thì nạp rất ngon, nhưng gần đây có một hiện tượng lạ là: khi nạp bị lỗi, nếu cố nạp lại lần nữa thì sẽ bị reset lại máy tính??

              Thank
              Trước khi trả lời thì bạn cho mình hỏi nhé...
              Tại tại port 1 bạn đang có mắc những phần cứng gì? như là trans, led.. hay là điện trở..
              hay là không mắc gì, kể cả điện trở nối lên 5V.
              Thứ 2 là bạn dùng đồng hồ gì để đo, loại Kim hay loại số.

              Comment


              • #8
                Ko mắc với tải nào cả.
                Dùng đồng hồ số
                Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

                Comment


                • #9
                  Nguyên văn bởi tnt288 Xem bài viết
                  Em có một đoạn code nhỏ thế này thôi.

                  void main()
                  {
                  P1=0xFF;
                  }

                  nhưng sao khi dùng đồng hồ đo dòng tại các chân so với GND thì kết quả như sau:
                  P1.0 = 5v
                  P1.1-7 = 2,2V => lẽ ra phải là phải là 5v chứ
                  Các pác giải thích giúp em nha.


                  Em còn một câu hỏi nữa:
                  em dung mạch nạp sp200(phiên bản miễn phí, tự làm) thời gian trước thì nạp rất ngon, nhưng gần đây có một hiện tượng lạ là: khi nạp bị lỗi, nếu cố nạp lại lần nữa thì sẽ bị reset lại máy tính??

                  Thank
                  bạn có thể post cả sơ độ lên anh em mới dễ nhìn và giúp bạn được chứ.

                  Comment


                  • #10
                    Về trường hợp P1 = 0xFF nhưng kết quả ra không mong muốn có thể từ 2 lý do sau:
                    1> port P1.x đã bị chết, bạn có thể dùng đồng hồ kiểm tra diot bảo vệ của port xem thế nào. Thường thì diot này sẽ chết trước khi port chết.
                    2> Mình không nhớ rõ nhưng có một số io ports của 89 khi chạy ở chế độ output cần phải có điện trở mắc lên nguồn nó mới hoạt động được. Bạn xem lại datasheet của nhà sản xuất về phần io ports của P1 xem thế nào.

                    Comment


                    • #11
                      Nguyên văn bởi tnt288 Xem bài viết
                      Ko mắc với tải nào cả.
                      Dùng đồng hồ số
                      vậy khả năng là Vdk ko hoạt động hoặc port bị hỏng rồi.
                      (vì P1 thì nó có R khoảng 50k kéo lên bên trong rồi.)

                      Comment


                      • #12
                        theo mình thì bạn nên làm như thế này xem sao

                        Code:
                        void main(void)
                        {
                           while(1)
                          {
                               P1 = 0xFF;
                          }
                        }
                        mình nghĩ thì nếu phép gán P1 = 0xFF nằm ngoài vòng lặp thì có thể chương trình đã bị kết thúc rồi nên giá trị của thanh ghi P0 bị reset. Mình hỏi một câu ngu ngốc nhé bạn có lắp thạch anh không đấy.

                        Comment


                        • #13
                          Nguyên văn bởi matdennoigi Xem bài viết
                          theo mình thì bạn nên làm như thế này xem sao

                          Code:
                          void main(void)
                          {
                             while(1)
                            {
                                 P1 = 0xFF;
                            }
                          }
                          mình nghĩ thì nếu phép gán P1 = 0xFF nằm ngoài vòng lặp thì có thể chương trình đã bị kết thúc rồi nên giá trị của thanh ghi P0 bị reset. Mình hỏi một câu ngu ngốc nhé bạn có lắp thạch anh không đấy.
                          hhihi, có chứ sao ko u
                          hic, thử 2 còn rùi mà vẫn bị. sáng mua con S52 dùng thử thôi
                          Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

                          Comment


                          • #14
                            Lí thuyết và thực tế thì set P1 trước hay sau thì P1 cũng lên logic 1 hết. Đem sang mạch khác nạp coi. Mình làm cái này chạy ngon.


                            Add: 97 Quán Nam - Lê Chân - Hải Phòng.
                            Tel: 031 518648 Phone: 0904 283 505

                            Comment


                            • #15
                              các bác ơi cho em hỏi:điện áp ra từ vdk at89c51 co đu để sáng và nuôi led đơn k?em nghe nói dong của no rất thấp k đu để nuôi phải làm nhu thế nào giúp em với!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X