Video: Bài 15: Vòng lặp MSW LOGO (sử dụng repeat trong msw logo) 2025
Vòng lặp DO trong PBASIC có thể làm cho chương trình của BASIC Stamp trong dự án điện tử của bạn trở nên nhỏ gọn hơn. Vòng lặp DO là một câu lệnh PBASIC đặc biệt thực hiện chức năng tương tự như nhãn và một câu lệnh GOTO. Ví dụ, hãy xem xét các điều sau:
Chính: Cao 0 PAUSE 500 LOW 0 PAUSE 500 GOTO Chính
Chức năng tương tự có thể được thực hiện nếu không có nhãn chính hoặc câu lệnh GOTO bằng cách đặt các đường dẫn bật và tắt đèn LED giữa các câu lệnh DO và LOOP, như sau:
DO HIGH 0 PAUSE 500 LOW 0 PAUSE 500 LOOP
Các dòng giữa các câu lệnh DO và LOOP sẽ được thực hiện liên tục vô hạn.
'Chương trình LED Flasher' Doug Lowe 'ngày 10 tháng 7 năm 2011 "Chương trình này nhấp nháy đèn LED kết nối với chân 0, 2, 4, 6, 8 và 10' theo thứ tự." Phiên bản này của chương trình sử dụng một vòng lặp DO. '{$ PBASIC 2. 5}' {$ STAMP BS2} Tốc độ VAR BYTE Led VAR BYTE Tốc độ = 50 Led = 0 DO HIGH Tốc độ PAUSE TĂNG LOW Tốc độ PAUSE T SpeedT NẾU Led <10 tHEN Led = Led + 2 ELSE Led = 0 ENDIF LOOP
Bạn có thể thêm một phép thử có điều kiện vào câu lệnh LOOP để làm cho vòng điều kiện. Ví dụ:
Led = 0 DO HIGH Led PAUSE 500 LOW Led PAUSE 500 Led = Led + 2 LOOP UNTIL Led> 10
Mã này sẽ nhấp nháy đèn LED trên pins 0, 2, 4, 6, 8, và 10. Sau khi đèn LED trên pin 10 được chiếu, dòng cuối cùng kế tiếp biến Led biến thành 12. Sau đó, câu lệnh LOOP UNTIL cho thấy rằng Led lớn hơn 10, do đó nó ngừng looping.
Thay vì từ UNTIL, bạn có thể sử dụng từ WHILE để đánh dấu điều kiện trong một vòng lặp DO. Có một sự khác biệt đáng kể giữa UNTIL và WHILE, và sự khác biệt cũng giống như những lời gợi ý. Khi bạn sử dụng từ UNTIL, vòng lặp sẽ thực hiện cho đến khi kiểm tra điều kiện đúng sự thật. Khi bạn sử dụng từ WHILE, vòng lặp sẽ thực hiện cho đến khi kiểm tra các điều kiện sai.
Lưu ý rằng bạn cũng có thể bao gồm các điều kiện kiểm tra trên DO tuyên bố hoặc tuyên bố LOOP. Nếu bạn đặt kiểm tra điều kiện trên câu lệnh DO, điều kiện được kiểm tra trước mỗi lần thực hiện vòng lặp. Nếu bạn đặt nó vào câu lệnh LOOP, điều kiện được kiểm tra sau khi hoàn thành mỗi vòng lặp.
Thông thường, đặt WHILE các bài kiểm tra trên câu lệnh DO và kiểm tra UNTIL trên câu lệnh LOOP.
Led = 0 DO WHILE Led <11 HIGH Led PAUSE 500 LOW Led PAUSE 500 Led = Led + 2 LOOP
Ở đây, giá trị của Led được kiểm tra trước mỗi lần thực hiện của vòng lặp. Vòng lặp được thực hiện miễn là Led ít hơn 11.
DO các vòng lặp có thể được lồng nhau , có nghĩa là một vòng DO có thể chứa một vòng DO khác.Khi các vòng DO được lồng nhau, vòng lặp bên trong phải có kiểm tra có điều kiện. Nếu không, nó sẽ lặp mãi mãi, và vòng lặp ngoài sẽ không bao giờ có cơ hội để hoàn thành.
Trong chương trình này, vòng lặp ĐẦU ĐẦU trong cùng nhấp nháy sáu đèn LED một lần. Nó sử dụng một điều kiện UNTIL để dừng vòng lặp sau khi đèn LED cuối cùng nhấp nháy. Vòng lặp DO ngoài cùng tiếp tục kéo dài vô tận, gây ra trình tự nhấp nháy để tiếp tục vô thời hạn.
'Chương trình LED Flasher' Doug Lowe 'ngày 10 tháng 7 năm 2011 "Chương trình này nhấp nháy đèn LED kết nối với các chân 0, 2, 4, 6, 8 và 10' theo thứ tự." Phiên bản này của chương trình sử dụng các vòng lặp DO lồng nhau. '{$ PBASIC 2. 5}' {$ STAMP BS2} Tốc độ VAR BYTE Led VAR BYTE Tốc độ = 50 DO Led = 0 DO HIGH Tốc độ PAUSE TĂNG LOW Led PAUSE Tốc độ Led = Led + 2 LOOP WITHT Led> 10 LOOP