Tham khảo tài liệu 'lập trình 8051 : các lệnh nhảy , vòng lặp và lệnh gọi', kỹ thuật - công nghệ, tự động hoá phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Chương III Các lệnh nhảy vòng lặp -1 - Lập trình 8051 CHƯƠNG 3 Các lệnh nhảy vòng lặp và lệnh gọi Trong một chuỗi lênh cần thực hiên thường có nhu cần cần chuyển điều khiển chương trình đến một vị trí khác. Có nhiều lênh để thực hiên điều này trong 8051 ở chương này ta sẽ tìm hiểu các lênh chuyển điều khiển có trong hợp ngữ của 8051 như các lênh sử dụng cho vòng lặp các lênh nhảy có và không có điều khiển lênh gọi và cuối cùng là mô tả về một chương trình con giữ chậm thời gian. Vòng lặp và các lệnh nhảy. Tạo vòng lặp trong 8051. Qúa trình lặp lại một chuỗi các lênh với một số lần nhất định được gọi là vòng lặp. Vòng lặp là một trong những hoạt động được sử dụng rộng rãi nhất mà bất kỳ bộ vi sử lý nào đều thực hiên. Trong 8051 thì hoạt động vòng lặp được thực hiên bởi lênh DJNZ thanh ghi nhãn . Trong lênh này thanh ghi được giảm xuống nếu nó không bằng không thì nó nhảy đến địa chỉ đích được tham chiếu bởi nhãn. Trước khi bắt đầu vòng lặp thì thanh ghi được nạp với bộ đếm cho số lần lặp lại. Lưu ý rằng trong lênh này viêc giảm thanh ghi và quyết định để nhảy được kết hợp vào trong một lênh đơn. Ví dụ Viết một chương trình để a xoá ACC và sau đó b cộng 3 vào ACC 10 lần. Lời giải MOV MOV A 0 R2 10 Xo ACC A 0 Nip bé Õm R2 10 BACK ADD A 10 Céng 03 vpo ACC DJNZ R2 AGAIN LOp l1 cho Õn khi R2 0 10 lỌn MOV R5 A C3ht A vpo thanh ghi R5 Trong chương trình trên đây thanh ghi R2 được sử dụng như là bộ đếm. Bộ đếm lúc đầu được đặt bằng 10. Mỗi lần lặp lại lênh DJNZ giảm R2 không bằng 0 thì nó nhảy đến địa chỉ đích gắn với nhãn AGAIN . Hoạt động lặp lại này tiếp tục cho đến khi R2 trở về không. Sau khi R2 0 nó thoát khỏi vòng lặp và thực hiên đứng ngay dưới nó trong trường hợp này là lênh MOV R5 A . Lưu ý rằng trong lênh DJNZ thì các thanh ghi có thể là bất kỳ thanh ghi nào trong các thanh ghi R0 - R7. Bộ đếm cũng có thể là một ngăn nhớ trong RAM như ta sẽ thấy ở chương 5. Ví dụ Số lần cực đại mà vòng lặp ở ví dụ có thể lặp lại là bao nhiêu Lời giải Chương