Thông báo

Collapse
No announcement yet.

[Thắc mắc] Lỗi lập trình Keil C

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

  • #16
    Nguyên văn bởi viboyth.haui Xem bài viết
    Có thể thay đổi,xem tại đây : http://www.dientuvietnam.net/forums/...den-led-78519/
    à không anh !
    ý em là mình có thể lập trình cho 1 LED nó sáng từ từ không á?

    Comment


    • #17
      cái đấy là PWM..cứ từ từ mà học..mới học mà hỏi nhiều thế cũng k làm gì đâu...học đến đâu rồi bàn đến đấy.Ok.?

      Comment


      • #18
        Nguyên văn bởi tan0710 Xem bài viết
        cái đấy là PWM..cứ từ từ mà học..mới học mà hỏi nhiều thế cũng k làm gì đâu...học đến đâu rồi bàn đến đấy.Ok.?
        vâng ! em cứ tưởng nó là vi điều khiển chứ ! cảm ơn anh !

        Code:
        void nhicduoi()
        {	P0=P1=P2=P3=0xff;
        	for(j=0;j<8;j++)
        	{
        	P2=~nhicthuan(j);
        	P3=~nhicnguoc(j);
        	delay(2000);
        	}
        	P2=P3=0xff;
        		for(j=0;j<8;j++)
        	{
        	P0=P1=~nhicnguoc(j);
        
        	delay(2000);
        	}
        	P3=0xff;
        }
        anh cho em hỏi trong đoạn code trên "P2=~nhicthuan(j);" có nghĩa là P2 có giá trị đảo ngược của hàm nhicthuan(j) hả anh ???

        Comment


        • #19
          nó cũng làm bằng vi điều khiển thôi..nhưng cứ từ từ mà học...còn nhiều cái hay mà

          Comment


          • #20
            các anh cho em hỏi cái, em viết code như thế này :
            Code:
            #include<at89x51.h>	
            //ham delay
            void delay(int time)
            {    
               while(time--)
                    { 
                int temp = 121;   
                while(temp--);   
                    }
            }  	  
            unsigned int i,j;
            void hieuung();
            
            void hieuung(){
            while(1){
            P1=P2=P3=1; //cho cac port nay o muc cao
            P0=0xAA;   delay(500);
            P0=0x55;     delay(500);
            
             }
             }
            void main(){
            hieuung();
            }
            có một chỗ mà em không hiểu là:
            "P1=P2=P3=1;"
            em đã cho 3 port này lên mức cao hết
            vậy mà chẳng hiểu sao ở các chân P1.0, P2.0 , P3.0 vẫn ở mức 0 như thế này ???
            Click image for larger version

Name:	code.PNG
Views:	1
Size:	17.1 KB
ID:	1368120

            Comment


            • #21
              Muốn gán cho cả Port của nó bằng 1 thì phải viết P0=11111111 (thường ko dùng cách này) hoặc P0=0xff chứ gán với số 1 thì chỉ là 1 bit,ko hợp lệ,qua đây đọc lại nè:
              http://www.dientuvietnam.net/forums/...11/#post610346
              vanduc0211@gmail.com

              Comment


              • #22
                Anh cho em hỏi sao em viết code này:
                Code:
                #include <at89x52.h>
                
                	void delay(int time) 
                	{
                		while(time--) 
                		{
                		int temp=125;
                		while(temp--);
                		}
                	}	
                		  
                		void chay()
                		{	
                		
                			int i;
                			int a[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
                			{ 
                			P1=P2=P3=0xFF;
                			for(i==1;i<=8;i++)
                				{
                				P0=a[i];
                				delay(100);	
                				}
                			}
                		}					
                		void main ()
                		{
                		chay();
                		}
                mục đích của em là cho các Port 1,2,3 ở mức cao. rồi để Port 0 chạy từ P0.0->P0.7 ;
                nhưng sao nó chạy từ P0.0->P0.7 rồi mà không dừng lại??? (nó cứ chạy hoài à ) em chỉ dùng 1 vòng lặp thôi mà????

                Comment


                • #23
                  bạn thêm while(1); ngay sau chay(); trong hàm main()

                  Comment


                  • #24
                    Nguyên văn bởi kidteam Xem bài viết
                    bạn thêm while(1); ngay sau chay(); trong hàm main()
                    ủa?? sao thêm lênh này nó lại chạy đúng vậy anh ??
                    giải thích giúp em nha !

                    Comment


                    • #25
                      cái này là C căn bản mà...
                      while(1); là vòng lặp vô hạn ( Điều kiện = 1 luôn true )
                      vòng lặp vô hạn nhưng nó k làm gì cả. vì k có lệnh nào trong vong lặp while cả

                      Comment


                      • #26
                        Nguyên văn bởi tan0710 Xem bài viết
                        cái này là C căn bản mà...
                        while(1); là vòng lặp vô hạn ( Điều kiện = 1 luôn true )
                        vòng lặp vô hạn nhưng nó k làm gì cả. vì k có lệnh nào trong vong lặp while cả
                        Em hiểu While(1) là lặp vô hạn rồi, nhưng không hiểu chỗ "không làm gì ấy" giờ thì hiểu rồi, cảm ơn anh nha !

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X