Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Chào Mừng bạn đến với diễn đàn của lớp 32CĐ Cơ - Điện Tử ĐHCN Việt-Hung
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Chào Mừng bạn đến với diễn đàn của lớp 32CĐ Cơ - Điện Tử ĐHCN Việt-Hung
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung

Sân chơi dành cho sinh viên giao lưu học tập
 
Trang ChínhPortalGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập

Share | 
 

 2.5.NHÓM LỆNH RẼ NHÁNH

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Admin
vip
vip
Admin

Tổng số bài gửi : 366
vi phạm : 0
Join date : 15/04/2010
Age : 33
Đến từ : Bình Lục-Hà Nam

2.5.NHÓM LỆNH RẼ NHÁNH _
Bài gửiTiêu đề: 2.5.NHÓM LỆNH RẼ NHÁNH   2.5.NHÓM LỆNH RẼ NHÁNH EmptySat Dec 25, 2010 4:01 pm

Phần này liên quan đến các câu lệnh được lưu giữ trên ROM, vì vậy cần xem lại phần bộ nhớ ROM trước khi xem phần này.
Phần phụ chú:
Nhãn: Kí hiệu: rel
Nhãn là một chuỗi kí tự do người dùng tự đặt dùng để đánh dấu các đoạn chương trình, nhãn này biểu thị địa chỉ của lệnh khi được lưu trên ROM.
Nhãn chỉ được bắt đầu bằng một kí tự chữ hoặc dấu "_" ,không được bắt đầu bằng số ,không có khoảng trắng và kết thúc bằng dấu hai chấm ":"
Trong chương trình nhãn không được đặt trùng tên với nhau, và không được trùng với các từ khóa mà chương trình đã sử dụng.
Ví dụ : Các nhãn đúng X1: ;S_2: ;_5:s10: ;...
Các nhãn sai 1X: ; S_2 ;S 5: ;DW: ,LPT :...
Chương trình con: là những đoạn chương trình thực hiện một số lệnh nào đó và được viết ngoài chương trình chính, các chương trình con này được đặt tên bằng một nhãn và kết thúc bằng lệnh RET, chương trình con có thể gọi một chương trình con khác. Chương trình con được chương trình chính sử dụng khi cần thiết bằng các lệnh gọi chương trình con; khi có lệnh gọi chương trình con, Vi điều khiển chuyển về thực hiện các đoạn chương trình của chương trình con, sau khi thực hiện chương trình con Vi điều khiển tiếp tục trở về thực hiện các câu lệnh trong chương trình chính.
Chương trình con giúp cho chương trình mạch lạc, dễ hiểu hơn, nếu trong chương trình chính có các đoạn chương trình được lặp đi lặp lại nhiều lần thì các đoạn chương trình đó thường được viết thành một chương trình con và truy xuất bằng một câu lệnh gọi chương trình con. Việc sử dụng chương trình con giúp cho việc tìm lỗi và chỉnh sửa chương trình dễ hơn, nếu chương trình chính sử dụng nhiều lần chương trình con, khi cần sửa đổi chỉ cần thay đổi các câu lệnh trong chương trình con.
Chương trình con bắt đầu bằng một nhãn và kết thúc bằng lệnh Reti, chương trình con có thể đặt ở đầu hoặc cuối chương trình.
2.5.1. Lệnh gọi chương trình con dùng địa chỉ tuyệt đối

  • Cú pháp: ACall addr11
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình con bắt đầu từ địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn bắt đầu của một chương trình con. Câu lệnh được thực hiện khi địa chỉ addr11 cách lệnh gọi không quá 2 KByte .
  • Ví dụ: ACall 45A6H

2.5.2. Lệnh gọi chương trình con dùng địa chỉ tuyệt đối

  • Cú pháp: ACall addr16
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình con bắt đầu từ địa chỉ addr16 trên Rom, địa chỉ addr16 có thay bằng nhãn bắt đầu chương trình con. Câu lệnh có thể gọi chương trình con ở bất kì vị trí nào trên Rom vì khoảng cách từ lệnh gọi đến chương trình con là 64 KByte.

2.5.3. Lệnh kết thúc chương trình con

  • Cú pháp: Ret
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Lệnh này dùng kết thúc chương trình con, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở chương trình chính.

2.5.4. Lệnh kết thúc chương trình con phục vụ ngắt

  • Cú pháp: Reti
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Lệnh này dùng kết thúc chương trình con ngắt, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở chương trình chính.

2.5.5. Lệnh nhảy ngắn đến địa chỉ tuyệt đối

  • Cú pháp: AJMP addr11
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình bắt đầu tại địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn . Câu lệnh chỉ được thực hiện khi vị trí lưu chương trình cần thực hiện cách lệnh gọi không quá 2 KByte

2.5.6. Lệnh nhảy dài đến địa chỉ tuyệt đối

  • Cú pháp: LJMP addr16
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển về thực hiện các câu lệnh của chương trình bắt đầu tại địa chỉ addr11 trên Rom, địa chỉ addr11 có thể thay bằng nhãn . Câu lệnh có thể gọi chương trình ở bất kì vị trí nào trên Rom vì khoảng cách từ lệnh gọi đến chương trình con là 64 KByte

2.5.7. Lệnh nhảy tương đối

  • Cú pháp: SJMP rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển đến thực hiện các câu lệnh của chương trình được đánh dấu bằng nhãn. Câu lệnh chỉ được thực hiện địa chỉ của nhãn cách lệnh gọi không quá 128 Byte.(cả tới hoặc lùi )

2.5.8. Lệnh nhảy gián tiếp

  • Cú pháp: JMP @A+DPTR
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Khi lệnh được thực hiện, Vi điều khiển chuyển đến thực hiện các câu lệnh của chương trình có địa chỉ trên ROM bằng giá trị của A cộng với giá trị lưu giữ trên DPTR

2.5.9. Lệnh nhảy thuận với cờ Zero

  • Cú pháp: JZrel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu cờ Zero có giá trị 1(tức thanh ghi A có giá trị 0), Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
    Nếu cờ Zero có giá trị 0(tức thanh ghi A có giá trị khác 0), Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.10. Lệnh nhảy nghịch với cờ Zero

  • Cú pháp: JNZrel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu cờ Zero có giá trị 0(tức thanh ghi A có giá trị khác 0), Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
    Nếu cờ Zero có giá trị 1(tức thanh ghi A có giá trị 0), Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.11. Lệnh nhảy thuận với cờ C

  • Cú pháp: JCrel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu cờ C có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
    Nếu cờ C có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.12. Lệnh nhảy nghịch với cờ Zero

  • Cú pháp: JNCrel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu cờ C có giá trị 0, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
    Nếu cờ C có giá trị 1, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.13. Lệnh nhảy thuận với giá trị của bit nhớ

  • Cú pháp: JBbit,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu bit nhớ có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
    Nếu bit nhớ có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.14. Lệnh nhảy nghịch với giá trị của bit nh

  • Cú pháp: JNC bit,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu bit nhớ có giá trị 0, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt
    Nếu bit nhớ có giá trị 1, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.15. Lệnh nhảy thuận với giá trị của bit nhớ và xóa bit

  • Cú pháp: JBCbit,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Nếu bit nhớ có giá trị 1, Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt, đồng thời xóa giá trị chứa trong bit nhớ đó tức là đưa bit nhớ đó về giá trị 0
    Nếu bit nhớ có giá trị 0, Vi điều khiển thực hiện lệnh kế tiếp (không thực hiện lệnh nhảy)

2.5.16. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi A và Rn)

  • Cú pháp: CJNE A,direct,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của thanh ghi A khác giá trị của ô nhớ có địa chỉ direct, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
    Ảnh hưởng của lệnh đến cờ nhớ C:
    Nếu giá trị của thanh ghi A ≥ giá trị của ô nhớ có địa chỉ direct thì bit C có giá trị 0
    Nếu giá trị của thanh ghi A < giá trị của ô nhớ có địa chỉ direct thì bit C có giá trị 1

2.5.17. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi A và dữ liệu cho trước)

  • Cú pháp: CJNE A,#data,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt, nếu giá trị của thanh ghi A khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
    Ảnh hưởng của lệnh đến cờ nhớ C:
    Nếu giá trị của thanh ghi A giá trị dữ liệu cho trước thì bit C có giá trị 0
    Nếu giá trị của thanh ghi A < giá trị dữ liệu cho trước thì bit C có giá trị 1

2.5.18. Lệnh nhảy có điều kiện(so sánh giá trị của thanh ghi Rn và dữ liệu cho trước)

  • Cú pháp: CJNE Rn,#data,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Vi điều khiển sẽ nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của thanh ghi Rn khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế.
    Ảnh hưởng của lệnh đến cờ nhớ C:
    Nếu giá trị của thanh ghi A giá trị dữ liệu cho trước thì bit C có giá trị 0
    Nếu giá trị của thanh ghi A < giá trị dữ liệu cho trước thì bit C có giá trị 1

2.5.18. Lệnh nhảy có điều kiện(so sánh giá trị của ô nhớ có địa chỉ gián tiếp và dữ liệu cho trước)

  • Cú pháp: CJNE @Ri,#data,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt nếu giá trị của ô nhớ có địa chỉ bằng giá trị của Ri khác giá trị dữ liệu cho trước, nếu bằng nhau Vi điều khiển không nhảy và thực hiện lệnh kế
    Ảnh hưởng của lệnh đến cờ nhớ C:
    Nếu giá trị của ô nhớ có địa chỉ gián tiếp giá trị dữ liệu cho trước thì bit C có giá trị 0
    Nếu giá trị của ô nhớ có địa chỉ gián tiếp < giá trị dữ liệu cho trước thì bit C có giá trị 1

2.5.19. Lệnh nhảy có điều kiện kết hợp với lệnh giảm trên thanh ghi Rn

  • Cú pháp: DJNZ Rn,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Giảm giá trị của thanh ghi Rn xuống 1 đơn vị, và
    -Nếu giá trị trong thanh ghi Rn khác 0, Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt.
    -Nếu giá trị trong thanh ghi Rn bằng 0, Vi điều khiển thực hiện lệnh kế tiếp

2.5.20. Lệnh nhảy có điều kiện kết hợp với lệnh giảm trên ô nhớ có địa chỉ direct

  • Cú pháp: DJNZ direct,rel
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 3 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng:
    Giảm giá trị của ô nhớ có địa chỉ direct xuống 1 đơn vị
    Nếu giá trị trong ô nhớ có địa chỉ direct khác 0, Vi điều khiển nhảy đến thực hiện chương trình tại địa chỉ mà nhãn được đặt.
    Nếu giá trị trong ô nhớ có địa chỉ direct bằng 0, Vi điều khiển thực hiện lệnh kế tiếp

2.5.21. Lệnh delay 1 chu kì máy

  • Cú pháp: NOP
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: delay trong 1 chu kì máy
Về Đầu Trang Go down
http://loveanhthao.co.cc
 

2.5.NHÓM LỆNH RẼ NHÁNH

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung :: Cơ - Điện Tử :: VI ĐIỀU KHIỂN ỨNG DỤNG-
Chuyển đến 
Đăng NhậpNhanh
.:Đăngkí:. | .: Quên mật khẩu:.