Xin code chỉnh tốc độ nháy của mạch LED dùng 8051

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • kidteam
    Thành viên tích cực
    • Nov 2010
    • 1633

    #16
    ví dụ bạn đưa vào chân ngắt ngoài số 0 đi
    bạn dùng 1 biến nào đó làm biến đếm
    trong hàm ngắt bạn đếm tăng 1 cho biến đếm
    kiểm tra khi biến đếm đạt 1 giá trị nào đó thì thay đổi trạng thái led
    sau đó nhớ reset cho biến đếm về 0

    Comment

    • chung1608
      Thành viên tích cực
      • Sep 2009
      • 4160

      #17
      thiệt là mệt các chú, cần gì biến với ngắt, điều khiển led chạy thì ko cần sài ngắt, chủ yếu là delay

      Code:
      	ORG	0000H
      MAIN:
      	MOV	A,#0EFH
      LOOP:	MOV	P2,A
      	CALL	DELAY
      	RR	A
      	JMP	LOOP
      DELAY:
      	JNB	P1.0,$
      	JB	P1.0,$
      RET	
      END

      Comment

      • kidteam
        Thành viên tích cực
        • Nov 2010
        • 1633

        #18
        thì cũng thế mà
        nói chung có cái gì đó bên ngoài thay đổi và đưa vào 1 chân MCU là xong

        Comment

        • kidteam
          Thành viên tích cực
          • Nov 2010
          • 1633

          #19
          của chú chung thời gian delay là 1 chu kỳ còn nếu làm kiểu đếm kia thì muốn đếm bao nhiêu chu kỳ là tùy mình mà

          Comment

          • lenhoc91
            Thành viên tích cực
            • Oct 2011
            • 208

            #20
            thế vậy code c thì viết thế nào ạ

            Comment

            • chung1608
              Thành viên tích cực
              • Sep 2009
              • 4160

              #21
              void delay()
              {while(!p1_0);while(p1_0);}

              Comment

              • lenhoc91
                Thành viên tích cực
                • Oct 2011
                • 208

                #22
                ngắn vậy a a giải thích vòng lập này dum e với

                Comment

                • chung1608
                  Thành viên tích cực
                  • Sep 2009
                  • 4160

                  #23
                  Nguyên văn bởi lenhoc91 Xem bài viết
                  ngắn vậy a a giải thích vòng lập này dum e với
                  chú bảo ngắn mà cũng cần giải thích à, sao ko động não vậy, chỉ có 2 dòng thôi mà.
                  1 lệnh chờ tín hiệu lên, 1 lệnh chờ tín hiệu xuống, 1 lần gọi delay, thời gian tương ứng 1 chu kì của clock 555

                  Comment

                  • lenhoc91
                    Thành viên tích cực
                    • Oct 2011
                    • 208

                    #24
                    e động não mà có ra đâu. vậy xung 555 đua vào P1.0

                    Comment

                    • kidteam
                      Thành viên tích cực
                      • Nov 2010
                      • 1633

                      #25
                      thì đúng rồi đó
                      trời
                      tất nhiên thế rồi chứ gì nữa
                      hê hê

                      Comment

                      • lenhoc91
                        Thành viên tích cực
                        • Oct 2011
                        • 208

                        #26
                        hê! hê! mò mấy cái này đầu e nó quay quay

                        Comment

                        • lenhoc91
                          Thành viên tích cực
                          • Oct 2011
                          • 208

                          #27
                          mà a ơi làm thế thì nếu mất xung 555 thì led ko chạy.có cách nào tiện đôi đường ko a. vừa delay bằng 555 vừa delay trong 89

                          Comment

                          • kidteam
                            Thành viên tích cực
                            • Nov 2010
                            • 1633

                            #28
                            thì chú làm cái nút
                            mỗi lần ấn thì thay đổi chọn xung
                            có thể dùng delay trong và delay ngoài
                            sbit bXung;
                            if(ấn nút) bXung=!bXung;
                            if(bXung) {hàm delay trong}
                            else {hàm delay ngoài}

                            Comment

                            • thanhtoanshs
                              Thành viên mới
                              • Sep 2011
                              • 243

                              #29
                              Nguyên văn bởi kidteam Xem bài viết
                              thì chú làm cái nút
                              mỗi lần ấn thì thay đổi chọn xung
                              có thể dùng delay trong và delay ngoài
                              sbit bXung;
                              if(ấn nút) bXung=!bXung;
                              if(bXung) {hàm delay trong}
                              else {hàm delay ngoài}
                              có code thì đưa lên luôn đi, vòng vo miết
                              0979.316.957
                              0905.028.957

                              Comment

                              • kidteam
                                Thành viên tích cực
                                • Nov 2010
                                • 1633

                                #30
                                Code:
                                #include <regx51.h>
                                void delay555(void);
                                void delay_mcu(void);
                                void delay(void);
                                unsigned char bSelect;
                                void main(void)
                                {
                                	//kiem tra xem phim co duoc nhan hay khong
                                	NgoHungCuong:
                                	if(!P1_0)
                                	{
                                		if(bSelect)
                                			bSelect=0;
                                		else
                                			bSelect=1;
                                	}
                                	P3_0=!P3_0;
                                	delay();
                                	goto NgoHungCuong;
                                }
                                void delay555(void)
                                {
                                	//lam gi do
                                }
                                void delay_mcu(void)
                                {
                                	//lam gi do
                                }
                                void delay(void)
                                {
                                	if(bSelect)	
                                		delay555();
                                	else
                                		delay_mcu();
                                }
                                hiểu chưa chú
                                đại ý là thế

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...