Thông báo

Collapse
No announcement yet.

Mong cao thủ chỉ dẫn !!!

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

  • Mong cao thủ chỉ dẫn !!!

    Bài này mình trích 1 đoạn để mô phỏng. Song muốn hiển thị số 1 thì nó lại hiển thị số 9, không hiểu nên mong các bạn chỉ giáo:
    //chip 89C2051
    //P1.0-P1.6 noi voi a,b,...,f
    //P3.0 noi voi Katot
    #include <REG2051.H>
    char num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6 7};
    void delay(unsigned char time)
    {
    while(time--)
    {
    unsigned char temp=121;
    while(temp--);
    };
    }
    void display_4digit(unsigned int n)
    {
    int fourth;
    fourth=n%10;
    while(1)
    {
    P3=~1;
    P1=num[fourth];
    delay(20);
    P1=0;P3=0;
    }
    }
    void main(void)
    {
    display_4digit(0011);
    }

    Mọi người đọc rồi chỉ giúp mình. Cũng hiểu là hệ cơ số 8 gì đó mà chưa hiểu lắm. Các bạn giúp mình tích cực nha.

  • #2
    cách dễ nhất là bạn cứ chạy hết các số
    nếu chạy 1 ra 9 thì trong bảng look-up bạn đổi chỗ của 1 và 9
    cứ thế ...
    bạn sẽ fix xong
    goodluck
    Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

    Comment


    • #3
      Xin lỗi bạn là nếu nói như bạn là sai. Vì mình mô phỏng rất nhiều số thì đúng ví dụ nếu mô phỏng như trên mà chọn là 5671 hay 7821... thì kết kết quả vẫn đúng. Mà chán thật, nói ra thì trên này cũng ít cao thủ quá. Mình nêu ra lâu vậy mà ko ai trả lời cả à.

      Comment


      • #4
        Nguyên văn bởi thanhlam1911 Xem bài viết
        Xin lỗi bạn là nếu nói như bạn là sai. Vì mình mô phỏng rất nhiều số thì đúng ví dụ nếu mô phỏng như trên mà chọn là 5671 hay 7821... thì kết kết quả vẫn đúng. Mà chán thật, nói ra thì trên này cũng ít cao thủ quá. Mình nêu ra lâu vậy mà ko ai trả lời cả à.
        hì chắc các cao thủ nghĩ tụi mình gè we' nên hok trả lời

        thực ra có thể vài chân của bạn bị chạm thì sao?
        với lại mô phỏng bạn giải mã bằng con gì
        có thể cùng con nhưng giải mã ngược mức thì sao...

        nếu bạn sure thiết kế chạy tốt trên mô phỏng thì vấn đề nằm ở hw rồi
        kiểm tra kỹ xem có chân nào bị chạm hoặc NC ko
        Last edited by team.hatlife; 11-12-2008, 22:25.
        Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

        Comment


        • #5
          à rảnh bạn post cái schematic của bạn lên đi
          code kia bạn post lên nhìn khó wa' (nó bị đẩy lên cùng hàng hết rồi)
          Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

          Comment


          • #6
            Mình chạy mô phỏng bằng Keil uVision3 nên ko có chuyện chân rối hay là chậm đâu. Mô phỏng trực tiếp luôn. Thấy thế mới hỏi chứ. Tất nhiên là mình cũng mô phỏng qua proteus nữa thấy cũng thế.

            Comment


            • #7
              Nguyên văn bởi thanhlam1911 Xem bài viết
              Mình chạy mô phỏng bằng Keil uVision3 nên ko có chuyện chân rối hay là chậm đâu. Mô phỏng trực tiếp luôn. Thấy thế mới hỏi chứ. Tất nhiên là mình cũng mô phỏng qua proteus nữa thấy cũng thế.
              hi mới edit chạm chứ hok phải chậm
              ví dụ trên board của bạn chân a bị dính chân d

              thì nếu chân d on chân a cũng on theo thế là có thêm 1 vạch ko mong mún
              Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

              Comment


              • #8
                Mình muốn hiển thị 1 số abcd có 4 chữ số (kể cả dấu phẩy động VD: 44,56) được viết bằng C và hiển thị lên 4led7 thanh như mạch. Mình đã viết code và test chỉ được 1 số thì đúng 1 số thì sai (VD: cần hiển thị 0011 thì lại hiển thị là 0009).
                Bạn nào có gì chỉ giáo mình nha. Cảm ơn nhiều!!!
                Attached Files

                Comment


                • #9
                  Nguyên văn bởi thanhlam1911 Xem bài viết
                  Mình muốn hiển thị 1 số abcd có 4 chữ số (kể cả dấu phẩy động VD: 44,56) được viết bằng C và hiển thị lên 4led7 thanh như mạch. Mình đã viết code và test chỉ được 1 số thì đúng 1 số thì sai (VD: cần hiển thị 0011 thì lại hiển thị là 0009).
                  Bạn nào có gì chỉ giáo mình nha. Cảm ơn nhiều!!!
                  ok hỉu cái schematic rồi, nhưng có điều sao chân P3.0 lái được led nhỉ
                  Bạn nhìn led thấy nó sáng ko hay chỉ hơi sáng thôi

                  à sau khi xem schematic thì thấy code của bạn bị sai rồi
                  ví dụ bạn hiển thị số 1 thì theo cái code của bạn :
                  P1 = 0x06;
                  => p1.1 = 1; p1.2 = 1; còn lại bằng 0
                  tức là bạn mong muốn b,c on (số 1)

                  tuy nhiên
                  theo schematic của bạn thì : p3.0 |>| p1.x => p1.x phải là 0 thì led mới sáng (on) => nếu bạn cho P1 giá trị 0x06 thì b,c off còn lại là on

                  nếu bạn có đồng hồ đo thì cũng đo các chân xem nó có bị chạm lên nguồn hay xuống đất hay chạm với nhau gì ko nhé. vì nếu theo như trên nó cũng ko ra số 9 đc

                  Best Regards,
                  Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

                  Comment


                  • #10
                    Bạn hiểu sai rồi. Trong mạch nếu test trên Proteus thì có thể xóa mấy điện trở đi mà, led dùng là anod chung nên không phải so sánh điện áp như bạn đâu. Vả lại code tớ kiểm tra trên keilC rồi, vẫn sai. Nếu bạn ok thì viết 1 code xem nào. Cảm ơn bạn đã thảo luận.

                    Comment


                    • #11
                      Nguyên văn bởi thanhlam1911 Xem bài viết
                      Bạn hiểu sai rồi. Trong mạch nếu test trên Proteus thì có thể xóa mấy điện trở đi mà, led dùng là anod chung nên không phải so sánh điện áp như bạn đâu. Vả lại code tớ kiểm tra trên keilC rồi, vẫn sai. Nếu bạn ok thì viết 1 code xem nào. Cảm ơn bạn đã thảo luận.
                      Mình nhầm là led katot chung.

                      Comment


                      • #12
                        Nguyên văn bởi thanhlam1911 Xem bài viết
                        Bạn hiểu sai rồi. Trong mạch nếu test trên Proteus thì có thể xóa mấy điện trở đi mà, led dùng là anod chung nên không phải so sánh điện áp như bạn đâu. Vả lại code tớ kiểm tra trên keilC rồi, vẫn sai. Nếu bạn ok thì viết 1 code xem nào. Cảm ơn bạn đã thảo luận.
                        nếu led dùng anod chung thì sao p3.0 lại nối vào katod (phía trên bạn ghi vậy mà)
                        Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

                        Comment


                        • #13
                          dưới đây là một mạch đơn giản cho con led7seg, (trong hình viết nhầm anod thành catod)
                          cái nài vẽ bằng tay quên thêm điện trở vào, bạn có thể thêm 1 con hạn dòng cũng đc


                          nhìn theo sơ đồ thì để 1 seg (1con led on) thì điện phải chạy từ 5V wa led xuống đất (mức 0)

                          như vậy đầu tiên p3.0 phải bằng 0 để a1015 dẫn
                          rồi để led a on thì p1.0 thì là mức 0 (đất) như vậy sẽ tạo đc đk như trên

                          tức là nếu bạn muốn xuất số 1 thì thay vì
                          p1 = 0x06 thì p1 = ~0x06

                          best regards,
                          Last edited by team.hatlife; 12-12-2008, 11:23.
                          Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

                          Comment


                          • #14
                            Theo tớ thì Led 7 thanh K chung thì sẽ không sáng đâu như bạn viết. Bạn test thì rõ. K chung là phải mức 0 và anod là mức 1 thì led mới sáng. Bạn thì ngược lại thì làm sao led sáng. Mà không quan trọng chỗ này. Nếu bạn lỗi chỗ này thì chỉ cần thay led k chung sang a chung là ok. Song tớ muốn hỏi về phần mềm, mà bạn thì toàn lạc đề thôi à. Mong bạn hiểu !!!

                            Comment


                            • #15
                              Nguyên văn bởi thanhlam1911 Xem bài viết
                              Theo tớ thì Led 7 thanh K chung thì sẽ không sáng đâu như bạn viết. Bạn test thì rõ. K chung là phải mức 0 và anod là mức 1 thì led mới sáng. Bạn thì ngược lại thì làm sao led sáng. Mà không quan trọng chỗ này. Nếu bạn lỗi chỗ này thì chỉ cần thay led k chung sang a chung là ok. Song tớ muốn hỏi về phần mềm, mà bạn thì toàn lạc đề thôi à. Mong bạn hiểu !!!
                              èo hình như mình nhầm,
                              sw bạn bỏ giải thuật quét xem
                              vì mới xài 1 con led7seg thì chưa cần quét, vì vậy xuất direct ra xem nó ntn
                              Last edited by team.hatlife; 12-12-2008, 11:21.
                              Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X