Mạch mô phỏng chạy loạn, bác nào giúp em

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • lonelyboy26
    Thành viên chính thức
    • Apr 2011
    • 48

    #1

    Mạch mô phỏng chạy loạn, bác nào giúp em

    #include <REGX51.H>
    sbit Aled1=P1^0;
    sbit Aled2=P1^1;
    sbit Aled3=P1^2;
    unsigned char maled7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
    unsigned long x;
    void delay(long time)
    {long n;
    for(n=0;n<time;n++)
    {
    ;
    }
    }
    void quetled()
    {/////////////////////////led hang tram///////////
    Aled1=1;
    P2=maled7[x/100];
    delay(100);
    Aled1=0;
    P2=0xff;
    ////////////////////////led hang chuc/////////////
    Aled2=1;
    P2=maled7[(x/10)%10];
    delay(100);
    Aled2=0;
    P2=0xff;
    //////////////////////////led hang don vi//////////////
    Aled3=1;
    P2=maled7[x%10];
    delay(100);
    Aled3=0;
    P2=0xff;
    }
    void ngatngoai0(void) interrupt 0
    {
    x++;
    }
    void main()
    {
    x=0;
    EA=1;
    EX0=1;
    IT0=1;
    while(1)
    {
    quetled();
    if(x>999)
    x=0;
    }
    }
    Code như trên sao nạp vô mô phỏng bằng pzotues no chạy loạn cả lên là sao các bác, giúp hộ em, mạch đếm các bác ợ
  • hung_cdk7
    Thành viên mới
    • Jun 2012
    • 2

    #2
    bạn không đưa mạch nguyên lý lên,nhưng mình đoán bạn dùng một phím nhấn nối vào chân INT0,mỗi lần ngắt ngoài xảy ra
    (ấn phím x tăng lên 1 đơn vị)nhưng bạn không chống dội phím khi có ngắt xảy ra biến x sẽ tăng lên rất nhanh,vì vậy bạn cần phải chỉnh lại code trong hàm ngắt.

    Comment

    • lonelyboy26
      Thành viên chính thức
      • Apr 2011
      • 48

      #3
      em mới tìm dc cái code thôi bác gắn vào chạy thử, nếu chỉnh thì chỉnh làm sao hả bác, em mới tìm hiểu nên mới bik tàm tạm thôi. Mạch nguyên lý này cần transistor đóng mở từng led 7 đoạn phải k bác, chắc em vẽ mạch bị sai hay sao ý

      Comment

      • mast090
        Thành viên tích cực
        • Oct 2010
        • 1018

        #4
        tự vẽ loạn 1 cái mạch rồi kiếm 1 cái code ở đâu cho vào nó chạy loạn là còn may, có mà nó ko chạy j thì đúng hơn. mới học cũng ko ai học mò thế này
        Website chính thức đổi địa chỉ website thành
        Mời các bạn ghé thăm !!!

        Comment

        • lonelyboy26
          Thành viên chính thức
          • Apr 2011
          • 48

          #5
          Bác nói thế nào là vẽ loạn, bác đừng cmt linh tinh vào topic của mình, mạch này mình tìm trên mạng công thêm kiến thức mình tìm hiểu mình vẽ, bác k tư vấn thì thoy đi ra topic khác đi bác

          Comment

          • dtcn_112
            Thành viên tích cực
            • Apr 2012
            • 267

            #6
            code bạn mình chỉnh lại một chút làm thật thì cần chỗng nhiễu cho phím nhấn
            Attached Files

            Comment

            • bienhou
              Thành viên tích cực
              • Dec 2011
              • 971

              #7
              Nguyên văn bởi lonelyboy26 Xem bài viết
              #include <REGX51.H>
              sbit Aled1=P1^0;
              sbit Aled2=P1^1;
              sbit Aled3=P1^2;
              unsigned char maled7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
              unsigned long x;
              void delay(long time)
              {long n;
              for(n=0;n<time;n++)
              {
              ;
              }
              }
              void quetled()
              {/////////////////////////led hang tram///////////
              Aled1=1;
              P2=maled7[x/100];
              delay(100);
              Aled1=0;
              P2=0xff;
              ////////////////////////led hang chuc/////////////
              Aled2=1;
              P2=maled7[(x/10)%10];
              delay(100);
              Aled2=0;
              P2=0xff;
              //////////////////////////led hang don vi//////////////
              Aled3=1;
              P2=maled7[x%10];
              delay(100);
              Aled3=0;
              P2=0xff;
              }
              void ngatngoai0(void) interrupt 0
              {
              x++;
              }
              void main()
              {
              x=0;
              EA=1;
              EX0=1;
              IT0=1;
              while(1)
              {
              quetled();
              if(x>999)
              x=0;
              }
              }
              Code như trên sao nạp vô mô phỏng bằng pzotues no chạy loạn cả lên là sao các bác, giúp hộ em, mạch đếm các bác ợ
              code này là của e mà. bác gửi mô phỏng lên xem sao. e fomat ổ cứng nên mất hết rồi
              Nguyễn Huy Biên - 01649 802 694
              gmail :

              Comment

              • bienhou
                Thành viên tích cực
                • Dec 2011
                • 971

                #8
                Nguyên văn bởi dtcn_112 Xem bài viết
                code bạn mình chỉnh lại một chút làm thật thì cần chỗng nhiễu cho phím nhấn
                vs việc dùng ngắt e nghĩ ko cần chống nhiễu. chỉ cần 1 điện trở kéo duơng để phân biệt mức logic là ok thôi bác
                Nguyễn Huy Biên - 01649 802 694
                gmail :

                Comment

                • chung1608
                  Thành viên tích cực
                  • Sep 2009
                  • 4160

                  #9
                  Nguyên văn bởi bienhou Xem bài viết
                  vs việc dùng ngắt e nghĩ ko cần chống nhiễu. chỉ cần 1 điện trở kéo duơng để phân biệt mức logic là ok thôi bác
                  ko phải chống nhiễu mà là chống nảy debounce đó. Trình phục vụ ngắt làm có mỗi một dòng thì bảo đảm nhấn 1 phát nó nhảy chục phát

                  Comment

                  • bienhou
                    Thành viên tích cực
                    • Dec 2011
                    • 971

                    #10
                    Nguyên văn bởi chung1608 Xem bài viết
                    ko phải chống nhiễu mà là chống nảy debounce đó. Trình phục vụ ngắt làm có mỗi một dòng thì bảo đảm nhấn 1 phát nó nhảy chục phát
                    e cũng đã làm thực tế qua rồi, chưa thấy hiện tượng gì
                    Nguyễn Huy Biên - 01649 802 694
                    gmail :

                    Comment

                    • mast090
                      Thành viên tích cực
                      • Oct 2010
                      • 1018

                      #11
                      có thể do 1 lý do nào đó chú chưa gặp trường hợp đấy thôi, vs code ngắt thế kia nó nhảy vài chục số là binh thường. vẫn phải chống nhiễu.
                      chân ngắt vs các chân bình thường làm button nó chỉ khác cái kia là có ngắt thì nhảy ngay tới chương trình phục vụ ngắt thôi chứ đều nhiễu như nhau nếu ko chống
                      Website chính thức đổi địa chỉ website thành
                      Mời các bạn ghé thăm !!!

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...