Thông báo

Collapse
No announcement yet.

ccs - 1 nút nhấn điều khiển 2 led - cần giúp ah

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

  • ccs - 1 nút nhấn điều khiển 2 led - cần giúp ah

    #include <16F877a.h>
    #include <def_877a.h>
    #FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
    #use Delay(Clock=4000000)

    #define led RC0
    #define led1 RC1

    #int_TIMER1

    unsigned int8 dem;

    void main()
    {
    set_tris_c(0x00);
    setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
    set_timer1(59286);
    enable_interrupts(INT_TIMER1);
    enable_interrupts(GlOBAL);

    while(true)
    {
    if(input(PIN_A0)==0)
    {
    dem=0;
    do
    {
    set_timer1(59286);
    dem++;
    }
    while((dem<5)&&(input(PIN_A0)==0));

    if (dem==5)
    {
    led=!led;
    while(input(PIN_A0)==0);
    }
    else led1=!led1;
    }

    }
    }

    Ai đi qua giúp e với ah

  • #2
    https://drive.google.com/file/d/1jIr...ew?usp=sharing

    Comment


    • #3
      Ta hiểu thầm ku muốn đếm timer đến một giá trị, lại kết hợp phím bấm.

      Nếu vậy đừng dùng #define mà dùng #bit

      Ví dụ: Muốn chân B6 là chân data 1 thì khai báo

      #bit DATA1=6.6

      Điều này có lợi khi ta muốn chân đó là vào hay ra theo ý ta. Thêm nữa có thể "dịch cổng vào ra" theo ý mình.

      Lúc đó ta có quyền quyết định in/out theo bản vẽ chứ không theo nhà sản xuất.
      Đêm nay tớ không ngủ - ngày mai tớ ngủ bù

      Comment


      • #4
        Cám ơn nhiều! Code này đẫ chạy : #include <REGX51.H>
        sbit button=P2^7;
        sbit led_xanh=P2^1
        sbit led_do=P2^0

        void delay(unsigned int count, unsigned int timer)
        {
        unsingned char i;
        TMOD=0X10; // timer 1, mode 1
        for(i=0;i<count;i++
        {
        TH1=-timer/256 nạp giá trị cho timer
        TL1=-timer%256 //nạp giá trị cho TH0
        TR1=1; // cho nó chạy timer ( không chạy thì không biết đến khi nào tràn )
        while(!TF1); //vòng lặp kiểm tra cờ TF1
        TR1=TF1=0 // dừng TIME 1 TF1 xóa cờ tràn
        }
        }

        void main()
        {
        unsingned char count
        p2=255;
        //
        while(1)
        {
        if (!button)
        {
        count=0;
        do
        {
        delay(20,10000);
        count++;
        }
        while((count<5)&&(!button));
        //
        if (count==5)
        {
        led_do=!led_do;
        while(!button);
        }
        else led_xanh=!led_xanh;
        }
        }
        }

        Giờ đưa sang CCS (Pic C) đang bí,bác nào chỉ em với

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X