Thông báo

Collapse
No announcement yet.

Xem giúp mình đoạn code đếm này mình làm sai chỗ nào mà nó chớp tắt liên tục !

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

  • Xem giúp mình đoạn code đếm này mình làm sai chỗ nào mà nó chớp tắt liên tục !

    Mọi người xem giúp mình đoạn code quét led 7seg từ 0=>99 này với , sao nó cứ chớp tắt liên tục .
    Code và file mô phỏng đây : Sua_lai.rar . Mình đang cần gấp mọi người giúp với .
    ................. Pleiku .................... GIA LAI ...................

  • #2
    Nguyên văn bởi thi tran Xem bài viết
    Mọi người xem giúp mình đoạn code quét led 7seg từ 0=>99 này với , sao nó cứ chớp tắt liên tục .
    Code và file mô phỏng đây : Sua_lai.rar . Mình đang cần gấp mọi người giúp với .
    +nếu nó hiện từng số 1 thì bạn giảm delay đi
    +nếu nó đã hiện 2 số và 2 số đó nháy liên tục thì bạn tăng delay lên
    mình ko có proteus lên ko mở được file của bạn

    Comment


    • #3
      Nguyên văn bởi kiemkhach10 Xem bài viết
      +nếu nó hiện từng số 1 thì bạn giảm delay đi
      +nếu nó đã hiện 2 số và 2 số đó nháy liên tục thì bạn tăng delay lên
      mình ko có proteus lên ko mở được file của bạn
      mình đã thử làm như bạn nói nhưng vẫn không cải thiện đc j ! giúp với mọi ng ơi
      ................. Pleiku .................... GIA LAI ...................

      Comment


      • #4
        Cái này do bạn tính toán thời gian quét chưa hợp lý thôi. chỉnh lại như này là ok
        Code:
        #include"reg52.h"
        sbit    Led_dv  =  P3^0;
        sbit    Led_chuc  =  P3^1;
        unsigned char Ma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
        int a,b,c,d,k;
        void delay(unsigned int ms)  
        {
        unsigned int i,j;    
        for(i=0;i<ms;i++)
          for(j=0;j<125;j++);   
        }
        void main()
        { int i;
        while(1)
        {
        for(k=0;k<=99;k++)
        {
        
        a=k/10;
        b=k%10;
        for(i=0;i<20;i++)
        {
        {
        Led_dv=1;  //led dv
        P2=Ma[a];
        delay(20);
        Led_dv=0;  
        P2=0xff;//xoa data
        Led_chuc=1;  //led chuc
        P2=Ma[b];
        delay(20);  
        Led_chuc=0;
        P2=0xff; 
        }
        }
        }
        
        }
        }

        Comment


        • #5
          Nếu vẫn lỗi hãy thay led 7 thanh đơn là led đôi là ngon ngay. Vì trong proteus hay lỗi như vậy mà

          Comment


          • #6
            Vừa tăng số đếm vừa cho hiển thị trong main thế kia thì không nhấp nháy sao được.
            Code thêm 1 cái ngắt rồi quăng đại 1 trong 2 cái đó vào là hết nháy liền thôi mà.
            Con nhà có điều kiện hay sao mà khai báo biến hoành tráng thế ?

            Comment


            • #7
              À đây liên quan đến hiện tượng lưu ảnh của mắt 24 hình/1s
              Hay tuơng đương là 41ms
              Bạn cấp < hơn 41ms là được
              Nếu là 2 LED 7 thanh thì là 41ms/2=20.5ms
              Vì Proteus k phải là mắt người nên mới có hiện tượng lưu ảnh
              Làm mạch thật sẽ thấy rõ.

              Comment

              Về tác giả

              Collapse

              thi tran Tìm hiểu thêm về thi tran

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

              Collapse

              Đang tải...
              X