Thông báo

Collapse
No announcement yet.

Code C, 3 nút nhấn START, STOP và PAUSE?

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

  • Code C, 3 nút nhấn START, STOP và PAUSE?

    Em muốn viết 1 chương trình bằng code C gồm 3 nút nhấn: START, STOP và PAUSE:
    1/ Khi nhấn START thì chạy hiệu ứng led sáng dần từ p2.0 đến p2.7.
    2/ Khi led đang chạy hiệu ứng, nếu nhấn STOP thì tắt hiệu ứng, nhấn START sẽ chạy lại từ đầu.
    3/ Khi led đang chạy hiệu ứng, nếu nhấn PAUSE thì ngưng hiệu ứng lập tức ( ví dụ, led đang sáng dần đến p2.5 mà nhấn PAUSE thì dừng hiệu ứng led tạm thời chỉ có 6 con led từ p2.0 đến p2.5 sáng). Nếu nhấn START lại thì led tiếp tục chạy hiệu ứng ở vị trí mình nhấn PAUSE.
    Bước 1 em đã làm được, nhưng 2 bước sau làm hoài vẫn chưa được.
    Mong các bác giúp đỡ em ah!

  • #2
    Em đã làm được rồi ah. Code hơi dài. Bác nào có cách khác xin chỉ dùm em ah ...!
    Code:
    #include <REGX52.H>
    
    // khai bao led va nut nhan
    sfr led=0xa0;
    sbit nutSTART=P1^0;
    sbit nutSTOP=P1^1;
    sbit nutPAUSE=P1^2;
    sbit bell=P3^1;      // chuong, moi lan nhan 1 nut thi chuong se keu
    
    // chuong trinh tao delay
    void delay(long time)
        {
         while(time--);
        }
    
    // ma led
    unsigned char hieuung[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
    
    // chuong trinh chinh
    void main()
        {
         unsigned char x,y=0,z;
         if(nutSTART==0)
             {
             delay(200);
             if(nutSTART==0)              // nut START
                 {
                 while(nutSTART==0);
                 bell=0;delay(3000); bell=1;
                 while(1)
                     {
                     for(x=y;x<9;x++)
                         {
                         led=hieuung[x];
                         delay(3000);
                         y++;
                         if(y==9) y=0;
                         if(nutSTOP==0)    // nut STOP
                             {
                             delay(200);
                             if(nutSTOP==0)
                                 {
                                 while(nutSTOP==0);       bell=0;delay(3000);    bell=1;
                                 while(1)
                                     {
                                     led=hieuung[0];
                                     x=y=0;
                                     if(nutSTART==0)
                                         {
                                         delay(200);
                                         if(nutSTART==0)
                                             {
                                             while(nutSTART==0);      bell=0;delay(3000);       bell=1;
                                             break;
                                            }
                                        }
                                    }                                
                                }
                            }
                          if(nutPAUSE==0)    // nut PAUSE
                              {
                             delay(200);
                             if(nutPAUSE==0)
                                 {
                                 while(nutPAUSE==0);       bell=0;delay(3000);     bell=1;
                                 while(1)
                                     {
                                     led=hieuung[x];
                                     if(nutSTART==0)
                                         {
                                         delay(200);
                                         if(nutSTART==0)
                                             {
                                             while(nutSTART==0);        bell=0;delay(3000);     bell=1;
                                             break;
                                            }
                                         }
                                     if(nutSTOP==0)
                                         {
                                         delay(200);
                                         if(nutSTOP==0)
                                             {
                                             while(nutSTOP==0);      bell=0;delay(3000);      bell=1;
                                             while(1)
                                                 {
                                                 led=hieuung[0];
                                                 x=y=0;
                                                 if(nutSTART==0)
                                                     {
                                                     delay(200);
                                                     if(nutSTART==0)
                                                         {
                                                         while(nutSTART==0);           bell=0;delay(3000); bell=1;
                                                         break;
                                                        }
                                                    }
                                                }
                                             break;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

    Comment


    • #3
      Cho mình xin code trên về nghiên cứu với nhé !
      Cám ơn bạn trước !

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X