Thông báo

Collapse
No announcement yet.

LED 7 thanh

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

  • LED 7 thanh

    các pro ơi giúp mình chữa code ngắt ngoài hiện thị trên led 7 thanh( dếm sản phẩm ) với
    mình đang làm đồ án với nó sao mà khi mình bấm ngắt mà các số trong led 7 thanh chạy loạn hết cả lên
    ko theo quy tắc mình viết j cả
    theo quy nguyên tắc thì mình bấm và giữ 1 nút thì nó chỉ nhẩy 1 số mà bây jo mình mà bấm giữ thì nó chạy lung tung mà chả theo quy tắc từ 1 đến 9 j cả;
    đây là code

    #include<regx52.h>
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    sbit l1=P3^2;
    void tre(unsigned int ms)
    {unsigned int i;
    unsigned int j;
    for(i=0;i<ms;++i);
    for(j=0;j<150;++j);
    }
    unsigned int donvi;
    unsigned int chuc;
    unsigned int tram;
    unsigned int nghin;
    unsigned int k;
    unsigned int num;
    code unsigned char dulieu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 9};
    void hienthi()
    {
    nghin = num/1000; //chia lay phan nguyen
    tram = (num%1000)/100; //chia lay phan du
    chuc = ((num%1000)%100)/10; //chia lay nguyen
    donvi = ((num%1000)%100)%10; //chia lay phan du
    {P1=0x01;
    P2=dulieu[donvi];tre(10);
    P1=0x02;
    P2=dulieu[chuc]; ;tre(10);
    P1=0x04;
    P2=dulieu[tram];tre(10);
    P1=0x08;
    P2=dulieu[nghin];tre(10);
    tre(10);
    P1=0xff; tre(10);}
    }
    void main(void)
    {IE = 0x81; //cho phep ngat noai 0
    num=0;
    while(1)
    {

    hienthi();
    }}
    void ngatngoai(void) interrupt 0
    {if(l1==0);
    tre(50);
    ++num;//tang bien len 1 gia tri
    }
    mình ko up dc fire lên
    mạch như thế này
    port 2 nối với 7 thanh led 7 thanh chung nhau
    por1 nối với 4 chân cấp nguồn cho led
    ngat mình dùng tạm nút bấm ,
    ai giúp mình với
    mình mới tham gia diễn đàn
    thank nhiều!

  • #2
    b thử cho nó hiện 1234 xem có hiện đc ko đã, hiện đc thì do đoan code ngắt roài

    Comment


    • #3
      Bạn kiểm tra lại chỗ khai báo ngắt đi. Xem qua thấy thiếu mất lệnh EA = 1; cho phép các vector ngắt được thực hiện.
      n
      ĐT: 0986 492 489

      Tham khảo:

      Comment


      • #4
        void ngatngoai(void) interrupt 0
        {if(l1==0);
        tre(50);

        ++num;//tang bien len 1 gia tri
        }
        chỗ màu đỏ này đâu có ý nghĩa.
        n
        ĐT: 0986 492 489

        Tham khảo:

        Comment


        • #5
          Nguyên văn bởi minhhieu Xem bài viết
          void ngatngoai(void) interrupt 0
          {if(l1==0);
          tre(50);

          ++num;//tang bien len 1 gia tri
          }
          chỗ màu đỏ này đâu có ý nghĩa.
          đoạn đó là để giữ ngắt dc lâu đấy mà ko quan trọng

          Comment

          Về tác giả

          Collapse

          DCN 105 Tìm hiểu thêm về DCN 105

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

          Collapse

          Đang tải...
          X