Thông báo

Collapse
No announcement yet.

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

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

  • #16
    Nguyên văn bởi thanhlam1911 Xem bài viết
    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,0x67 };
    .
    Bạn bị sai chỗ màu đỏ, bạn xuất 0x3f ra port bị ngược so với code mã led.
    Chỉ cần đảo lại thứ tự a .. f là ok. thử nhé.

    Comment


    • #17
      Nguyên văn bởi core T Xem bài viết
      Bạn bị sai chỗ màu đỏ, bạn xuất 0x3f ra port bị ngược so với code mã led.
      Chỉ cần đảo lại thứ tự a .. f là ok. thử nhé.
      hình hok phải đâu, vì vấn đề bạn ấy xuất ra số 1 (2seg) mà lại ra số 9 (6seg)
      Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

      Comment


      • #18
        thấy bác có vẻ rất tự tin vào hw của mình
        tôi lại hok có con led7seg nào ở đây

        thôi thì tôi viết thử test code này rồi bác chạy trên proteus và mạch thực lun nhé
        lười wa' nên tui hardcode lun nhe
        giả sử chỉ có 1led7seg và nối dây như bro nói
        #include <reg2051.h>

        int main(void)
        {
        /*
        just dump out the value of "1"
        caused we have only 1led7seg so no need to scan */
        P1 = 0x6; //"1" value
        P3 = 0; //assume that led : anod |>| katod
        while(1); //loop forever to see the result
        }
        Bạn chạy thử trên proteus và mạch thực xem
        Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

        Comment


        • #19
          Nguyên văn bởi thanhlam1911 Xem bài viết
          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.
          Lỗi là ở chỗ fourth=n%10; đáng lẽ là 0011 chia lấy dư cho 10 thì bắng đằng này nó lại bằng 9 đó, đoạn này mình đang nghĩ nó không phải là cơ số 10. Không hiểu nên mới mong mọi người giải thích hộ. Bây giờ thì bạn hiểu chỗ đó chưa. Còn đoạn code nhỏ bạn viết trên thì quá đơn giản ko cần test đâu.

          Comment


          • #20
            Nguyên văn bởi thanhlam1911 Xem bài viết
            Lỗi là ở chỗ fourth=n%10; đáng lẽ là 0011 chia lấy dư cho 10 thì bắng đằng này nó lại bằng 9 đó, đoạn này mình đang nghĩ nó không phải là cơ số 10. Không hiểu nên mới mong mọi người giải thích hộ. Bây giờ thì bạn hiểu chỗ đó chưa. Còn đoạn code nhỏ bạn viết trên thì quá đơn giản ko cần test đâu.
            huh, 11%10 = 1 là chuyện hiển nhiên
            ừm sorry ko xem kỹ code bạn viết 0011 thì theo Keil nó là số cơ số 8
            tức là 0011 = 9, sửa lại 0011 thành 11 là nó quay lại cơ số 10 là xong

            Cũng nói thêm trong keil
            a = 0011; //cơ số 8 a sẽ bằng 9
            a = 11; //cơ số 10 a sẽ bằng 11
            a = 0x11; //cơ số 16 a sẽ bằng 17


            sry bạn nói là test ok ct trên proteus nên mình tin tưởng chứ ai dè
            chứ code đó lắp vào proteus chạy được chắc xỉu wa'

            hình bên dước mình simulate
            Last edited by team.hatlife; 12-12-2008, 22:21.
            Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

            Comment


            • #21
              Làm sao bạn khẳng định là 0011 là cơ số 8, sao mình hiển thị số 6789 thì vẫn được. Nếu là cơ số 8 thì làm sao có thể cho phép viết như thế được. Mình đang nghĩ là có cách nào để định nghĩa là 1 dãy số là cơ số 8 hay 10... thì đúng hơn. Mà theo trên thì bạn bảo là không test trên proteus được là sai đó. Mình vẫn test trên đó suốt mà. Hi vọng bạn đừng có xỉu khi mình vẫn test được nha!!!

              Comment


              • #22
                Nguyên văn bởi thanhlam1911 Xem bài viết
                Làm sao bạn khẳng định là 0011 là cơ số 8, sao mình hiển thị số 6789 thì vẫn được. Nếu là cơ số 8 thì làm sao có thể cho phép viết như thế được. Mình đang nghĩ là có cách nào để định nghĩa là 1 dãy số là cơ số 8 hay 10... thì đúng hơn. Mà theo trên thì bạn bảo là không test trên proteus được là sai đó. Mình vẫn test trên đó suốt mà. Hi vọng bạn đừng có xỉu khi mình vẫn test được nha!!!
                à nếu bạn viết 0 ở đầu của số thì theo Keil (và hình như Ansi-C cũng vậy) đó là cơ số 8
                ví dụ a = 011 (a = 9)
                cơ số 10 thì ko có số 0 ở đầu ví dụ a = 10 (a = 10)
                còn có 0x ở đầu thì là cơ số 16 ví dụ a = 0x10; (a = 16)

                sry có thể proteus mới của bạn có trình biên dịch C rồi
                và nó hiểu 0011 là cơ số 10
                còn keil hiểu là cơ số 8 nên có sự khác biệt

                ý mình nói dùng code keil là bạn biên dịch cái code của bạn trong Keil sau đó lấy file hex ra rồi múc vào proteus

                tốt nhất bạn nên debug bằng Keil (trong hình vdu là mình debug sim đó)
                bạn đọc thêm luồng hướng dẫn debug bằng keil đó

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

                Comment


                • #23
                  thôi nói chung coi như bạn solve được vấn đề của bạn rồi nhe
                  chả giúp gì đc cho bạn nhưng cũng góp ý chút về phần cơ số

                  chúc hoàn thành sớm dự án nhá
                  Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

                  Comment


                  • #24
                    Cảm ơn bạn đã thảo luận. Giờ thì tớ hiểu vấn đề rồi. Bạn trả lời về cơ số thế có phải nhanh hơn không. Hic hic. The end./.

                    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