Thông báo

Collapse
No announcement yet.

giúp em bài đếm xung này với

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

  • giúp em bài đếm xung này với

    #include <REG52.H>
    #include <stdio.H>
    #include <math.H>
    #include <string.H>
    unsigned char M[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
    unsigned char s1, s2;
    unsigned int f, dem;
    void delay (void)
    {
    unsigned int i;
    for (i=1; i<=500; ++i);
    }
    void hienthi (void)
    {
    s1=f/10;
    s2=f%10;
    while(1)
    {
    P1=0xF2;
    P0=M[s1];
    delay();
    P1=0xF1;
    P2=M[s2];
    delay();
    }
    }
    void main (void)
    {
    TMOD = 0x25;
    IE = 0x88;
    IP = 0x08;
    TH0 = TL0 = 0;
    TH1 = TL1 = 5;
    dem = 0; f = 0;
    while (1)
    {
    TR1 = TR0 =1;
    while (dem == 4000)
    {
    f = TH0 + TL0;
    hienthi();
    }
    }
    }
    void ngatT1 (void) interrupt 3
    {
    ++dem;
    TF1 = 0;
    TR1 =1;
    }
    Last edited by stwilight; 03-06-2012, 15:11.

  • #2
    http://www.mediafire.com/?kdp5g7iq311459k
    Last edited by stwilight; 03-06-2012, 15:12.

    Comment


    • #3
      Code:
      #include <REGX51.H>
      sbit Led1 = P1^1;
      sbit Led2 = P1^0;
      sbit Led3 = P1^2;
      sbit Led4 =P1^3;
      //=================
      unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
      int x=0;
      void delay(unsigned int t)
      {
      unsigned int i;
      for(i=0;i<=t;i++);
      }
      //=================
      void main()
      {
      IE=0x81;
      IT0=1;
      while(1)
      {
      Led1=1; //led dau tien sang
      P2=M[x/1000];
      delay(50);
      Led1=0;
      P2=0xff;//xoa du lieu
      Led2=1; //led 2 sang
      P2=M[(x/100)%10];
      delay(50);
      Led2=0;
      P2=0xff;//xoa du lieu
      Led3=1;
      P2=M[(x/10)%10];
      delay(50);
      Led3=0;
      P2=0xff;
      Led4=1;
      P2=M[x%10];
      delay(50);
      Led4=0;
      P2=0xff;
      }
      }
      void ngat0(void) interrupt 0
      {
      EA=0;
      x++;
      if(x==9999)x=0;
      delay(1000);
      EA=1;
      }
      hơi khó nhìn, bạn thông cảm. đây là code đếm sp. nó cũng tương tự thôi bạn
      Nguyễn Huy Biên - 01649 802 694
      gmail :

      Comment


      • #4
        cảm ơ anh nha^^
        nhưng đây là bài đếm xung trong 1s
        Last edited by stwilight; 03-06-2012, 15:09.

        Comment


        • #5
          các anh xem dùm em tại sao nối vào bộ tạo xung thì đếm đúng
          còn nối vào encoder thì đếm sai

          Comment


          • #6
            Nguyên văn bởi stwilight Xem bài viết
            cảm ơ anh nha^^
            nhưng đây là bài đếm xung trong 1s
            ok. chúc bạn học tốt @ @
            Nguyễn Huy Biên - 01649 802 694
            gmail :

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X