Thông báo

Collapse
No announcement yet.

dòng while có tác dụng gì trong đoạn code chỉnh giờ này

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

  • dòng while có tác dụng gì trong đoạn code chỉnh giờ này

    Code:
    ghilenhLCD(0xC5);
    while(menu==0);
    caidatgio:while(tang!=0  &&  giam!=0   &&  menu!=0);
            if(tang==0)
    	{
    	        gio++;
    		if(gio==24)	gio=0;
    		ghilenhLCD(0xC4);
    		ghiso(gio);
    	        ghilenhLCD(0xC5);
    	        delay(300);
    	        goto caidatgio;
             }
             if(giam==0)
    	 {
    		gio--;
    		if(gio==0xff)
                    gio=23;
    		ghilenhLCD(0xC4);
    		ghiso(gio);
    		ghilenhLCD(0xC5);
    		delay(300);
    		goto caidatgio;
             }
    	////////////////////////////////////////////
    while(menu==0);
    ghilenhLCD(0xC8);
    caidatphut:	while(tang!=0  &&  giam!=0   &&  menu!=0);
             if(tang==0)
              {
    	         phut++;
    	         if(phut==60) phut=0;
    		 ghilenhLCD(0xC7);
    	         ghiso(phut);
    		 ghilenhLCD(0x10);
    	         delay(300);
    	         goto caidatphut;}
    	        if(giam==0)
                  	{
    	            	phut--;
    	            	if(phut==0xff)
                            phut=59;
    	            	ghilenhLCD(0xC7);
    	             	ghiso(phut);
    	             	ghilenhLCD(0x10);
    	            	delay(300);
    	            	goto caidatphut;
    		}
    các vòng while em tô màu đỏ đó có ý nghĩa như thế nào, bác nào biết chỉ em với. em dở code c lắm.

  • #2
    while(menu==0);

    khi menu có giá trị =0 thì chương trình đứng ( dừng tại đó - con trỏ dừng tại vị trí đó ) mà chẳng làm cái gì cả ... khi nào menu # 0 ( khác 0 ) thì nó lại chạy tiếp .
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #3
      cú pháp : while ( biểu thức điều kiện đúng );


      while(tang!=0 && giam!=0 && menu!=0);

      // MCu sẽ kiểm tra

      tang!=0 && giam!=0 && menu!=0

      Nếu cụm biểu thức này đúng ... thì dừng ( nằm chờ ) tại đây , nếu sai ... bỏ qua và xử lý lệnh tiếp theo bên dưới
      Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

      Comment


      • #4
        tiện thể đây cho em hỏi bác queduong là chân D7 trong lcd 16x2 còn có tác dụng gì. vì trong vài đoạn code em thấy có cho chân này bằng 0 hoặc 1.

        Comment


        • #5
          từ D0-D7 tác dụng là như nhau với chế độ 8 bit, chế độ 4 bit thì nó bẻ đôi byte ra thành ra thì bỏ D0-D3 chỉ xài D4-D7 các chân này chỉ mang giá trị data bình thường ko có gì đặc biệt
          Website chính thức đổi địa chỉ website thành
          Mời các bạn ghé thăm !!!

          Comment


          • #6
            Nguyên văn bởi vdanhp Xem bài viết
            tiện thể đây cho em hỏi bác queduong là chân D7 trong lcd 16x2 còn có tác dụng gì. vì trong vài đoạn code em thấy có cho chân này bằng 0 hoặc 1.
            mình không biết người nào đó viết code cho nó = 0, =1 ... ??? D0 - D7 trong LCD 16x2 để người ta đưa dữ liệu vào đó ... nhằm điều khiển, hiển thị cái LCD đó là các chân data ( 8 bits ) D0 - D7 .

            Trong 1 số trường hợp, mode ... người ta lại chỉ dùng có D4 - D7 ( 4 bits ) ... nhằm tiết kiệm chân cẳng giao tiếp cho MCU (đương nhiên tốc độ sẽ chậm hơn so với 8 bits ( tuy chậm nhưng mắt người không thấy được ), và phải phân chia dữ liệu ra làm 2 lần truyền ( cao, thấp )
            Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

            Comment


            • #7
              Nguyên văn bởi vdanhp Xem bài viết
              Code:
              ghilenhLCD(0xC5);
              while(menu==0);
              caidatgio:while(tang!=0  &&  giam!=0   &&  menu!=0);
                      if(tang==0)
              	{
              	        gio++;
              		if(gio==24)	gio=0;
              		ghilenhLCD(0xC4);
              		ghiso(gio);
              	        ghilenhLCD(0xC5);
              	        delay(300);
              	        goto caidatgio;
                       }
                       if(giam==0)
              	 {
              		gio--;
              		if(gio==0xff)
                              gio=23;
              		ghilenhLCD(0xC4);
              		ghiso(gio);
              		ghilenhLCD(0xC5);
              		delay(300);
              		goto caidatgio;
                       }
              	////////////////////////////////////////////
              while(menu==0);
              ghilenhLCD(0xC8);
              caidatphut:	while(tang!=0  &&  giam!=0   &&  menu!=0);
                       if(tang==0)
                        {
              	         phut++;
              	         if(phut==60) phut=0;
              		 ghilenhLCD(0xC7);
              	         ghiso(phut);
              		 ghilenhLCD(0x10);
              	         delay(300);
              	         goto caidatphut;}
              	        if(giam==0)
                            	{
              	            	phut--;
              	            	if(phut==0xff)
                                      phut=59;
              	            	ghilenhLCD(0xC7);
              	             	ghiso(phut);
              	             	ghilenhLCD(0x10);
              	            	delay(300);
              	            	goto caidatphut;
              		}
              các vòng while em tô màu đỏ đó có ý nghĩa như thế nào, bác nào biết chỉ em với. em dở code c lắm.
              lệnh while(menu==0); có nghĩa là trong khi nút menu của bạn đang được bấm giữ (menu==0) thì đợi không làm gì cả. Khi nút menu được nhả ra (menu==1) thì thoát khỏi lệnh này để chuyển sang lệnh kế tiếp.
              Tương tự lệnh while(tang!=0 && giam!=0 && menu!=0); có nghĩa là trong khi ba nút nhấn tăng, giảm, menu đồng thời khác 0 ( chưa được bấm ) thì đợi đến khi một có ít nhất một nút trong ba nút trên bằng 1 ( được bấm ) thì thoát khỏi lệnh while để đến lệnh tiếp theo.
              Trong lệnh while() mà không có lệnh con nào bên trong mà chỉ có dấu ; có nghĩa là lệnh while() đó dùng để chờ một điều kiện nào đó mà không làm gì cả.
              FPT Service bảo hành, sửa chữa dịch vụ UPS, các loại nguồn công suất.
              Mr Xô : Email :
              ĐT : 01674524129

              Comment


              • #8
                cho em hỏi thêm 1 câu nữa là điều chỉnh giờ trong đồng hồ dùng ds1307 không dùng ngắt để kích hoạt chỉnh giờ được không, nếu được thì lưu đồ giải thuật như thế nào, bác nào biết chỉ em với.

                Comment


                • #9
                  cho 1 biến đếm số lần ấn nút.... giá trị này tương ứng với giá trị của thời gian cần chỉnh ( giờ, phút, giây, ngày, tháng, năm )
                  ngắt thì dùng để đọc giá trị từ ds1307, quét led và ngắt để tạo hiệu ứng nhấp nháy khi đang chỉnh thời gian của giá trị đang chỉnh.

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  • bqviet
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi bqviet
                    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                    06-12-2025, 17:17
                  • nguyendinhvan
                    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                    bởi nguyendinhvan
                    Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                    05-12-2025, 19:59
                  • afrendly
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi afrendly
                    Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                    04-12-2025, 01:27
                  • nick22
                    Trả lời cho Máy điện châm ?
                    bởi nick22
                    Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                    01-12-2025, 13:23
                  Đang tải...
                  X