Thông báo

Collapse
No announcement yet.

Counter không chính xác trên thực tế,help!!!

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

  • Counter không chính xác trên thực tế,help!!!

    Chào mọi người! Mình đang dự định làm đồng hồ đo tốc độ hiển thị bằng số cho con xe của mình,hiện mình vẫn đang kẹt ở cái đo tần số,k hiểu sao khi mình chạy mô phỏng thì rất ok nhưng thực tế ở ngoài khi đo thì đồng hồ hiển thị loạn xạ k chính xác,mình lấy tín hiệu từ máy phát tần số đàng hoàng nhưng counter cứ đếm 1 xung thành 1 hay 2,4,5 xung j đó nên k chính xác .Nguyên tắc đo mình sử dụng counter0 và timer 1,khi timer 1 ở 200us thì ngắt và counter 0 trả về giá trị đếm được,lặp lại 5000 lần như vậy thì giá trị đếm được trong 1s sẽ là tần số cần đo.
    Đây là code của mình:

    #include <regx51.h>
    #include <math.h>
    unsigned char
    M[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
    unsigned char dv,chuc,tram;
    unsigned short f,x,j,V,dem=0;

    void delay(unsigned int t)
    {
    unsigned int i;
    for (i=1;i<=t;i++);
    }

    void hienthi()
    {
    tram=V/100;
    chuc=(V%100)/10;
    dv=(V%100)%10;

    P1_0=0;
    P2=M[tram];
    delay(100);
    P1_0=1;
    P1_1=0;
    P2=M[chuc];
    delay(100);
    P1_1=1;
    P1_2=0;
    P2=M[dv];
    delay(100);
    P1_2=1;
    }

    /*************/
    void main()
    {
    IE=0x88; //Cho fep ngat timer 1
    TMOD=0x25 ;//Timer 1 mode 2. Timer 0 mode 1 + dem su kien
    IP=0x08; //Uu tien ngat timer 1

    dem=0;
    TH1=TL1=-200;
    TH0=TL0=0;
    TR1=TR0=1;

    //*********Hien thi tan so tren led 7 thanh*********
    while(1)
    {
    hienthi();
    }
    }

    void ngatT1() interrupt 3
    {
    dem++;
    if (dem==5000)
    {
    f=(TH0*256+TL0);
    V=f;
    dem=0;
    TH1=TL1=-200;
    TH0=TL0=0;
    TF1=0;
    TR1=TR0=1;}

    TF1=0;
    TR1=1;
    }

    Link đầy đủ về design và code để mọi ng tiện theo dõi.Mong mọi ng chỉ giáo giúp.Cám ơn vì đã quan tâm!!!
    MACH DO TAN SO.rar

  • #2
    Mọi ng giúp mình với vì giải quyết dc vấn đề này xong là mình đã hoàn thành dc 90% rồi

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X