tthoát khỏi vòng delay khi nhấn button.

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hieunghiadkc
    Thành viên mới
    • Sep 2012
    • 3

    #1

    tthoát khỏi vòng delay khi nhấn button.

    #include <at89x52.h>
    unsigned int dem,dem1,t1,so,i,x;
    unsigned int dvi,chuc,tram,BDN;
    unsigned char M7D[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
    void delay(unsigned int i)
    { unsigned int j,k;
    for (j=0;j<i;j++)
    for(k=0;k<250;k++)
    {} }
    //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
    void timerngat0()interrupt 1
    { TH0=15535>>8;
    TL0=15535;
    BDN++;


    }
    void giaima()
    {
    dvi=dem%10;chuc=(dem/10)%10;tram=(dem/100)%10;
    }
    void hienthi()
    { do
    {P0=M7D[dvi];P2_0=1;delay(1);P2_0=0;
    P0=M7D[chuc];P2_1=1;delay(1);P2_1=0;
    P0=M7D[tram];P2_2=1;delay(1);P2_2=0;

    }
    while(BDN<=40);
    BDN=0;}
    void nutnhan()
    {
    if(P2_4==0)
    { t1=1;x=~x;;dem=dem+15;
    do
    {}
    while(P2_4==0);}
    if(P2_3==0)
    {dem=0;P3_0=0;
    do
    {}
    while(P2_3==0);
    }
    }


    void main()
    { TMOD=0X51;TH1=0;TL1=0;TR1=1; P1=0x00;IE=0x82;x=0;
    TH0=15535>>8;
    TL0=15535;TR0=1;

    while(1)
    {
    {if(TL1==1)
    P1=0x01;
    if(TL1==2)
    P1=0x02;
    if(TL1==3)
    P1=0x04;
    if(TL1==4)
    P1=0x08;
    if(TL1==5)
    {TL1=0;P1=0x00;}}

    nutnhan();
    if(t1==1)
    {if(dem>0)
    dem--;
    if(dem==0)
    {dem=dem;P3_0=0;}}


    giaima();
    hienthi();

    }

    }
  • diamond
    Banned
    • Jun 2013
    • 394

    #2
    bạn hỏi cái gì nói cho rõ

    Comment

    • hieunghiadkc
      Thành viên mới
      • Sep 2012
      • 3

      #3
      khi nhấn nút button mà phải chờ delay(hiển thị) đếm >=40.nghĩa là mình cần khi nhấn button thì nó phải tác động liền.nhưng sửa mãi mà không được...các bác giúp e xíu.

      Comment

      • queduong
        Moderator
        • Jul 2005
        • 6781

        #4
        Nguyên văn bởi hieunghiadkc Xem bài viết
        khi nhấn nút button mà phải chờ delay(hiển thị) đếm >=40.nghĩa là mình cần khi nhấn button thì nó phải tác động liền.nhưng sửa mãi mà không được...các bác giúp e xíu.
        thì cho cái button nó lồng vào trong ruột chỗ delay . Khi delay đếm liên tục thì nó kiểm tra button liên tục , bấm cái là button có tác dụng liền , hoặc kiểm tra button bằng ngắt timer ... mỗi lần timer ngắt thì lại kiểm tra button, chu kỳ timer ngắt càng ngắn thì button tác động nhanh và ngược lại chu kỳ càng dài thì button cần giữ lâu mới có tác dụng.
        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

        Comment

        • hieunghiadkc
          Thành viên mới
          • Sep 2012
          • 3

          #5
          Nguyên văn bởi queduong Xem bài viết
          thì cho cái button nó lồng vào trong ruột chỗ delay . Khi delay đếm liên tục thì nó kiểm tra button liên tục , bấm cái là button có tác dụng liền , hoặc kiểm tra button bằng ngắt timer ... mỗi lần timer ngắt thì lại kiểm tra button, chu kỳ timer ngắt càng ngắn thì button tác động nhanh và ngược lại chu kỳ càng dài thì button cần giữ lâu mới có tác dụng.
          em thử hết rồi.nếu lồng vào và dùng lệnh break để thoát timer thì nhấn button đếm nó =0 luôn.em lặp tới 1200chuky tương ứng với 1phut thời gian thực lặn.
          trình độ em có hạn mong bác copy về máy fix cho nó chạy ro ro giùm em cái.thanks bác nhiều.!

          Comment

          • queduong
            Moderator
            • Jul 2005
            • 6781

            #6
            void delay(unsigned int i)
            { unsigned int j,k;
            for (j=0;j<i;j++)
            for(k=0;k<250;k++)
            { nutnhan();} }
            Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...