Các bước viết chương trình trên Pinnacle 52

Một phần của tài liệu Giáo trình Thực hành vi xử lý - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 71 - 77)

Bài 4: Hướng dẫn sử dụng phần mềm Pinnacle 52 viết chương trình cho vi điều khiển họ 8051

1. Hướng dẫn sử dụng phần mềm Pinnacle 52

1.3. Các bước viết chương trình trên Pinnacle 52

Bước 1: Khởi động chương trình: Start --> Program --> Pinnacle --> Pinnacle 52 hoặc nháy kép vào biểu tượng của chương trình Pinnacle 52 trên màn hình.

Mở menu File, click “NEW” để tạo ra một cửa sổ soạn thảo trên đó có thể nhập mã chương trình. Nếu mã chương trình đã có trước trong một file, click “Open”

để mở file chương trình đó.

Hình 4.3 Cửa sổ soạn thảo chương trình Bước 2: Nhập mã chương trình vào cửa số soạn thảo

Giả thiết viết một chương trình điều khiển các led gắn với cổng P0 sáng dần từ phải qua trái, nhập vào cửa sổ soạn thảo mã chương trình sau:

org 0 ;chương trình ghi từ địa chỉ đầu tiên trong ROM start: ;nhãn của dòng lệnh

mov r0,#8 ;nhập giá trị 8 vào thanh ghi r0 mov p0,#0 ;xoá cổng p0

clr a ;xoá nối dung thanh ghi A call delay ;gọi chương trình con trễ loop:

setb c ;đặt bic C trong thanh ghi trạng thái chương trình lên mức cao rlc a ;quay trái thanh ghi A qua cờ C

mov p0,a ;chuyển nội dung của thanh ghi A ra cổng P0

call delay ;gọi chương trình con trễ để mắt có thể quan sát được sự thay

;đổi trạng thái của các led

djnz r0,loop ;giảm nội dung thanh ghi R0 một đơn vị và so sánh với 0, nếu

;R0=0 ;thì thực hiện lệnh tiếp theo, nếu R0 khác 0 thì nhảy

;đến địa chỉ “loop” để thực hiện jmp start ;lặp lại quá trình

;chương trình con trễ làm nhiệm vụ trễ một khoảng thời gian nhất định để mắt

;người có thể phân biệt đợc giữa các lần thay đổi trạng thái của cổng p0 delay:

push 0 ;cất nội dung thanh ghi R0 lên ngăn xếp push 1 ;cất nội dung thanh ghi R1 lên ngăn xếp mov r0,#250 ;nạp giá trị ban đầu cho R0=250

nhan1:

mov r1,#250 ;nạp giá trị ban đầu cho R1 =250

djnz r1,$ ;giảm R1 đi một đơn vị và so sánh với 0, nếu R1 khác

;không thì tiếp tục trừ R1, nếu R1 =0 thì thực hiện lệnh

;tiÕp theo djnz r0,nhan1

pop 1 ;lấy lại nội dung thanh ghi R1 pop 0 ;lấy lại nội dung thanh ghi R0 ret

end

Màn hình soạn thảo có dạng

Hình 4.4 Soạn thảo chương trình

Bước 3: Lưu mã chương trình vào bộ nhớ: trong menu File chọn Save As. Chọn ổ đĩa muốn lưu trong ô “Drivers”, nháy kép vào thư mục cần lưu trong Folders.

Trong mục “File name” nhập tên đặt cho chương trình (không cần thêm đuôi

Hình 4.5 Lưu chương trình soạn thảo

.asm, khi thực hiện chương trình sẽ tự động thêm vào). Sau đó nhấn nút “OK”

Lưu ý: nên lưu chương trình ngay sau bước 1 và lưu chương trình thường xuyên

để không bị mất dữ liệu do các sự cố về nguồn điện hoặc treo máy. Tên file

không dài quá 8 ký tự và không được có dấu cách hay ký tự đặc biệt giữa các ký tù.

Bước 4: Mở menu “Project” và click vào “Compile & Link FILENAME”, trong

đó “FILENAME” là tên chương trình vừa tạo ra (chương trình sẽ tự động chèn tên filename vào).

Cũng có thể dùng phím nóng Ctrl+F2 để thực hiện bước này. Sau đó, chương trình sẽ tiến hành dịch, thông báo các lỗi trong chương trình nếu có.

Bước 5: Nếu như quá trình “Compile & Link” thông báo chương trình còn lỗi,

đóng cửa sổ thông báo lỗi, quay lại cửa sổ soạn thảo để sửa chữa những lỗi vừa

được thông báo. Cửa sổ thông báo lỗi cũng cho biết vị trí phát hiện lỗi tại dòng bao nhiêu và gợi ý nguyên nhân lỗi.

Hình 4.6 Thông báo kết quả quá trình hợp dịch và liên kết

Sau khi đã sửa, làm lại thao tác của bước 4, quá trình lặp lại cho đến khi có thông báo: Build complete. 0 error(s), 0 warning(s)

Khi có thông báo này, chương trình đã hết lỗi về mặt cú pháp và có thể mô

phỏng hoạt động của chương trình. Chương trình tự động tạo ra các file cần thiết .lst, .map, .hex, obj. Trong đó file .hex là file mã máy sẽ được sử dụng để nạp vào bộ nhớ chương trình.

Trong cửa sổ thông báo này, Pinnacle 52sẽ cho biết thông tin về số byte dung lượng bộ nhớ mà chương trình sử dụng, ví dụ trong chương trình này là 39 byte.

Bước 6: Chương trình đã được dịch và liên kết tạo thành file mã máy. File mã

máy có đuôi .Hex được tạo ra trong cùng thư mục với file mã nguồn. Chương trình được lưu vào trong bộ nhớ ảo của bộ mô phỏng.

Chú ý: Nếu chương trình chưa được đưa vào bộ nhớ ảo của bộ mô phỏng, vào menu Simulator/Load Memory/Code Memory và chọn chương trình cần mô

phỏng. Bước này cũng được sử dụng nếu bạn đang tiến hành soạn thảo một chương trình mà muốn mô phỏng một chương trình khác.

Hình 4.7 Tải chương trình vào bộ nhớ để mô phỏng

Nháy chuột vào nút có dấu “...” bên cạnh “Filename to Load” để chọn chương trình cần tải vào bộ nhớ ảo, hoặc nhập trực tiếp tên và đường dẫn vào “Filename to Load”. Sau khi đã chọn xong, nhấn OK.

Chú ý: để mô phỏng được, chương trình phải có đuôi .hex hoặc .bin

Bước 7: Vào menu View để quan sát các thanh ghi, mã chương trình, bộ nhớ Ram trong, ngoài...

Ví dụ muốn quan sát mã chương trình ta vào View/Code Memory(

Disassembly). Cửa sổ Code xuất hiện cho phép ta quan sát địa chỉ trong Rom của từng lệnh ở cột thứ nhất, cột thứ hai biểu diễn mã Hexa của mã chương trình, cột thứ 3 biểu diễn mã ASCII của chương trình, cột thứ 4 biểu diễn các nhãn, cột thứ 5 là dòng mã, cột thứ 6 là các chú thích.

Hình 4.8 Cửa sổ Code phục vụ mô phỏng từng bước chương trình

Trong ví dụ này, ta muốn quan sát các cổng nên ta có thể vào View/Ports để quan sát hoạt động của các cổng.

Hình 4.9 Cửa sổ hiển thị trạng thái các cổng của 8051

Đến đây ta có thể quan sát hoạt động của chương trình. Có hai cách quan sát, thứ nhất cho chạy chương trình liên tục bằng cách ấn phím F5 (vào Simulator/Run), cách thứ hai là quan sát từng lệnh hoạt động bằng cách nhấn phím F8 (Simulator/

Single Step), mỗi lần nhấn tương ứng với một lệnh được thực hiện. Cách thứ hai là cách rất tốt để theo dõi các lệnh thực hiện và tìm lỗi. Đồng thời với việc cho chạy từng bước ta phải quan sát các thanh ghi, bộ nhớ xem chương trình có hoạt

động theo đúng ý định hay không. Để quan sát các thanh ghi ta vào View/Registers. Để quan sát bộ nhớ trong ta vào View/Internal Ram.

Chó ý:

- Menu View chứa hầu hết các vùng nhớ mà ta cần quan sát.

- Nên chọn cách thứ nhất để mô phỏng chương trình trong lần đầu mô

phỏng để sơ bộ quan sát hoạt động của cả chương trình, sau đó cho chạy từng bước để tìm lỗi.

Một phần của tài liệu Giáo trình Thực hành vi xử lý - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 71 - 77)

Tải bản đầy đủ (PDF)

(207 trang)