RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

[Help] vấn đề nút nhấn chuyển hiệu ứng cho led sd 8051 ?

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • ngocthaipro
    Thành viên mới
    • Nov 2014
    • 4

    #1

    [Help] vấn đề nút nhấn chuyển hiệu ứng cho led sd 8051 ?

    Lời đầu tiên xin chúc toàn thể ae trên diễn đàn 1 năm mới vui khỏe hp và gặp nhìu may mắn!!!
    Mình muốn hỏi là mình có 1 code có nhiều c trình con chạy hiệu ứng LED. Các hiệu ứng tự chuyển trong vòng lặp while(1)
    Giờ muốn tạo 1 nút nhấn để next hiệu ứng tiếp theo thì như nào ạ.
    Tại mình gà lập trình nên chưa có ý tưởng. Mong mn giúp ạ. Thanks
    Đây c trình vd--->

    Code:
    #include <REGX51.H>
    int x;
    sbit nut=P1^0;
    void delay(unsigned int t)
    {
    	int a,b;
    	for(a=0;a<t;a++)
    	{
    		for(b=0;b<123;b++)
    		{}
    	}	
    }
    char effect1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    //--------------------------
    void style1(int z)	//chuong trinh con 1
    {
    	for(x=0;x<8;x++)
    	{
    	P0 = effect1[x];
    	delay(200);
    	P0=0xff;
    	}
    }
    void style2(int s)	// chuong trinh con 2
    {
     	for(x=7;x>=0;x--)
    	{
    	P0 = effect1[x];
    	delay(200);
    	P0 =0xff;
    	
    	}
    }
    //--------------------------
    void main()	//chuong trinh chinh
    {
    	int nut=1;// giá sử nút ban đầu nút có mức logic 1 ---> làm sao tiếp ạ??
    	while(1)
    	{
    		style1();
                    style2();
            }
    }
  • ngocthaipro
    Thành viên mới
    • Nov 2014
    • 4

    #2
    không có ao thủ nào giúp mình à!!! Help..

    Comment

    • chanhvan08
      Thành viên chính thức
      • Jun 2010
      • 71

      #3
      Bạn dùng một biến Count, trong chương trình ngắt ngoài xử lí sự kiện nhấn nút nhấn thì tăng biến count lên 1, tăng quá số hiệu ứng thì reset biến count. Trong hàm while viết cấu trúc switch case theo các case của biến count này. Tương ứng với mỗi biến count thì thực hiện một hiệu ứng nào đó. Nếu áp dụng cách này thì phải chống dội phím cho nút nhấn tốt một tí.

      Comment

      • anhtuandv199
        Thành viên mới
        • May 2013
        • 7

        #4
        trong vòng lặp for của mỗi style bạn thêm đoạn code này thử xem
        if( nut==0 ){
        while(nut==0){;}
        break;
        }

        Comment

        • ngocthaipro
          Thành viên mới
          • Nov 2014
          • 4

          #5
          ok thanks các bạn để mình thử xem .!

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...