Ví dụ 37: Yêu cầu bài toán: Giả sử có một chương trình con có tên là INCH
khi được gọi để đọc các phím nhấn [‘0’, ‘1’, ‘2’, ‘3’] trả về mã ASCII của phím được lưu trong thanh ghi A. Hãy viết chuỗi lệnh đọc phím nhấn và thực thi đoạn lệnh tương ứng.
‘0’: [statement 0] ‘1’: [statement 1] ‘2’: [statement 2] ‘3’: [statement 3] End_case Với mã lệnh 8051 CALL inch CJNE A,#’0’,skip1
Xulyphim0: … ;xử lý công việc ứng với phím 0 JMP exit ;kết thúc
Skip1: CJNE A,#’1’,skip2
Xulyphim1: … ;xử lý công việc ứng với phím 1 JMP exit
Skip2: CJNE A,#’2’,skip3
Xulyphim2: … ;xử lý công việc ứng với phím 2 JMP exit
Skip3: CJNE A,#’3’,exit
Xulyphim3: … ;xử lý công việc ứng với phím 3 JMP exit
v Phong cách lập trình:
ü Chương trình phải rõ ràng và nhất quán vì điều này rất quan trọng nếu chúng ta lập trình theo nhóm gồm nhiều người.
ü Cách đặt tên nhãn trong chương trình: các nhãn chỉ có thể được gán một lần trong mỗi chương trình. Sử dụng các nhãn phải làm cho việc đọc chương trình rõ ràng và dễ dàng hơn.
ü Với các lệnh được lặp lại thì các nhãn nên đặt tên là: loop, back, more, …
ü Với lệnh rẽ nhánh chương trình và nhảy qua nhiều lệnh thì nên đặt tên nhãn là: skip, ahead,…
ü Có thể sử dụng các tên nhãn được sắp xếp tuần tự như: skip1, skip2, skip3, …
ü Cách chú thích lệnh và chú thích khối: không nên chú thích mọi dòng mã lệnh mà chỉ chú thích những lệnh có nghĩa ẩn.
Ví dụ 38: Các dòng lệnh sau thì cần chú thích:
PUSH 00H ;cất R0 vào ngăn xếp
MOV R0,#60h ;R0 quản lý vùng nhớ có địa ;chỉ bắt đầu từ 60h
MOV R7,#31 ;R7 dùng làm bộ đếm
Ví dụ 39: Các dòng lệnh sau thì không cần phải chú thích vì lệnh đã rõ ràng:
PUSH ACC ;cất A vào ngăn xếp INC R0 ;tăng R0
DEC r7 ;giảm bộ đếm1
ü Các chú thích khối có ở bắt đầu mỗi chương trình con và các chú thích bao gồm:
- Tên của chương trình con.
- Chức năng và giới hạn của chương trình con.
- Các điều kiện nhập xuất hay còn gọi là dữ liệu đầu vào và dữ liệu sau khi xử lý.
- Các chương trình con khác sử dụng trong chương trình con này. - Các thanh ghi được sử dụng.
v Một chương trình minh họa:
;--- ;tên chương trình: ;chức năng: ;dữ liệu vào: ;dữ liệu ra: ;các chương trình con sử dụng: ;các thanh ghi có sử dụng: ;---
Khi gọi một chương trình con thì chương trình con đó sẽ sử dụng một số thanh ghi để phục vụ cho việc xử lý nên chúng ta phải tiến hành việc lưu dữ liệu của các thanh ghi đó vào ngăn xếp và tiến hành lấy lại trước khi kết thúc chương trình con.
v Tổ chức chương trình:
Các phần chương trình được sắp xếp theo thứ tự như sau: - Cho bằng
- Các lệnh khởi tạo trị. - Chương trình chính. - Các chương trình con.
- Khai báo vùng dữ liệu hằng số.
TÀI LIỆU THAM KHẢO
1. Nguyễn Tăng Cường, Cấu trúc và lập trình họ vi điều khiển 8051, Nhà xuất bản Khoa học và Kỹ thuật 2008.
2. Hồ Trung Mỹ, Vi xử lý, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh, 2013.
3. Tống Văn On, Hoàng Đức Hải, Họ vi điều khiển 8051, Nhà xuất bản Lao động – Xã hội, 2001.
4. I. Scott MacKenzie, The 8051 Microcontroller, 2nd Edition, Prentice-Hall, 1995. 5. Kenneth J. Ayala, The 8051 Microcontroller: Architecture, Programming, and