Thanh ghi từ trạng thái chương trình (PSW Program Status

Một phần của tài liệu Thiết kế và lập trình mạch điện điều khiển kho hàng thông minh ứng dụng vi điều khiển (Trang 27 - 29)

Word)

Thanh ghi từ trạng thái chương trình PSW nằm tại địa chỉ D0h và có các địa chỉ bit từ D0h – D7h, bao gồm 7 bit (1 bit không sử dụng) có các chức năng như sau:

Hình 2.10. Thanh ghi PSW

- CY (Carry): cờ nhớ, thường được dùng cho các lệnh toán học không dấu (C = 1 khi có nhớ trong phép cộng hay mượn trong phép trừ)

- AC (Auxiliary Carry): cờ nhớ phụ (thường dùng cho các phép toán BCD).

- F0 (Flag 0): được sử dụng tuỳ theo yêu cầu của người sử dụng. - RS1, RS0: dùng để chọn bank thanh ghi sử dụng. Khi reset hệ

thống, bank 0 sẽ được sử dụng.

Hình 2.11. Chọn bank thanh ghi

- OV (Overflow): cờ tràn. Cờ OV = 1 khi có hiện tượng tràn số học xảy ra (dùng cho số nguyên có dấu).

- F1 (Flag 1): được sử dụng tuỳ theo yêu cầu của người sử dụng. - P (Parity): kiểm tra parity (lẻ). Cờ P = 1 khi tổng số bit 1 trong

thanh ghi

- A là số lẻ (nghĩa là tổng số bit 1 của thanh ghi A cộng thêm cờ P là số chẵn). Ví dụ như: A = 10101010b có tổng cộng 4 bit 1 nên P = 0. Cờ P thường được dùng để kiểm tra lỗi truyền dữ liệu.

2.5.3.Thanh ghi con trỏ stack (SP – Stack Pointer)

Con trỏ stack SP nằm tại địa chỉ 81h và không cho phép định địa chỉ bit. SP dùng để chỉ đến đỉnh của stack. Stack là một dạng bộ nhớ lưu trữ dạng LIFO (Last In First Out) thường dùng lưu trữ địa chỉ trả về khi gọi một chương trình con. Ngoài ra, stack còn dùng như bộ nhớ tạm để lưu lại và khôi phục các giá trị cần thiết.

Đối với AT89C51, stack được chứa trong RAM nội (128 byte đối với 8031/8051 hay 256 byte đối với 8032/8052). Mặc định khi khởi động, giá trị của SP là 07h, nghĩa là stack bắt đầu từ địa chỉ 08h (do hoạt động lưu giá trị vào stack yêu cầu phải tăng nội dung thanh ghi SP trước khi lưu). Như vậy, nếu không gán giá trị cho thanh ghi SP thì không được sử dụng các bank thanh ghi 1, 2, 3 vì có thể làm sai dữ liệu. Đối với các ứng dụng thông thường không cần dùng nhiều đến stack, có thể không cần khởi động SP mà dùng giá trị mặc định là 07h. Tuy nhiên, nếu cần ta có thể xác định lại vùng stack cho MCS-51.

Con trỏ dữ liệu DPTR (Data Pointer)

Con trỏ dữ liệu DPTR là thanh ghi 16 bit bao gồm 2 thanh ghi 8 bit: DPH (High) nằm tại địa chỉ 83h và DPL (Low) nằm tại địa chỉ 82h.

Các thanh ghi này không cho phép định địa chỉ bit. DPTR được dùng khi truy xuất đến bộ nhớ có địa chỉ 16 bit.

Một phần của tài liệu Thiết kế và lập trình mạch điện điều khiển kho hàng thông minh ứng dụng vi điều khiển (Trang 27 - 29)