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
2. Viết chương trình cho vi điều khiển
2.2 Sử dụng phần mềm Pinnacle 52 viết chương trình cho Vi điều khiển
Bước 1: Vẽ sơ đồ nguyên lý.
- Dùng phần mềm Proteus để vẽ sơ đồ sau:
Bước 2: Vẽ lưu đồ giải thuật (nếu chương trình tương đối phức tạp).
- Lưu đồ giải thuật như sau:
Tắt 8 led
Tạo trễ Sáng 8 led
Tạo trễ Bắt đầu
Bước 3: Soạn thảo chương trình trên trình hợp dịch:
- Khởi động phần mềm, mở bài mới và soạn thảo vào chương trình tham khảo nh sau:
;chuong trinh dieu khien 8 led don noi voi P2 chop tat lien tuc
;--- org 0 ;dia chi bat dau viet chuong trinh
start:
mov p2,#00000000b ;tat cac led call tao_tre
mov p2,#11111111b ;sang cac led call tao_tre
jmp start ;lap lai tu dau
;---
;chuong trinh con tao_tre:
mov r6,#255 lap:
mov r7,#255
djnz r7,$ ;$ la nhan cua chinh no djnz r6,lap
ret
end ;ket thuc chuong trinh hop ngu
Bước 4: Hợp dịch, sửa lỗi cú pháp
- Sau khi soạn thảo song ta lưu lại bài viết rồi tiến hành hợp dịch để chuyển file nguồn vừa soạn thảo sang mã máy bằng cách nhấn tổ hợp phím CTRL + F2.
- Nếu máy tính báo lỗi tức là chương trình ta vừa viết mắc phải lỗi cú pháp.
Nguyên nhân gây ra lỗi này chủ yếu là do đánh máy, viết câu lệnh, nhãn, chú thích… không đúng. Để sửa lỗi này ta nháy đúp vào thông báo lỗi đó để đến vị
trí dòng lệnh phát hiện lỗi trong cửa sổ soạn thảo. Sau khi sửa lỗi tiến hành hợp dịch lại.
Bước 5: Mô phỏng hoạt động của chương trình
- Để mô phỏng chương trình ta có thể mô phỏng ngay trên Pinnacle 52 hoặc phần mềm Proteus. Mô phỏng từng bước và quan sát kết quả thực hiện lệnh trên phần mềm Pinnacle 52 là cách hiệu quả để tìm ra vị trí lỗi.
Lưu ý: Trình tự các bước trên được áp dụng cho một dự án, một bài thực hành hay quá trình tự luyện tập.
Nạp chương trình cho MCS Bước 1. Kết nối.
Thực hiện nối cổng COM của máy tính với Jack cắm cổng COM của hệ kit MGH-I.
Cắm IC cần nạp vào socket 40 chân của bộ nạp, bật công tắc chọn MODE về vị trí
“PRO”. Bật công tắc nguồn cho hệ kit MGH-I.
Bước 2. Chọn cổng.
Khởi động máy tính PC mở chương trình Atmel programer (máy tính đã được cài đặt phần mềm này). Trên màn hình máy tính sẽ xuất hiện biểu tượng giao diện chương tr×nh.
Thực hiện chọn cổng COM1 hay cổng COM2 theo xác lập của máy tính.
Bước 3. Chọn loại IC.
Thực hiện chọn loại IC, tùy theo IC định nạp chương trình mà ta chọn 1 trong 5 loại IC vi điều khiÓn.
Chọn cổng
Bước 4. Xóa IC.
Thực hiện xóa IC bằng cách nháy chuột trái vào chữ “Erase” như hình trên rồi thực hiện tiếp như hình dưới để hoàn tất việc xóa IC.
Chọn xóa IC
Bước 5. Chọn File chương trình.
Chọn ổ C, ổ D...để tìm File nguồn (File này đã được biên soạn từ trước để chuẩn bị cho việc nạp chương trình.
Bước 6. Chọn đuôi.
Sau khi mở thư mục chứa file cần nạp ra, thực hiện lọc file chương trình. Ta có thể chọn file có
đuôi “.BIN” hay đuôi “.HEX “. Hình trên chỉ ra đang thực hiện chọn ổ D, File TEST, đuôi
“.HEX”.
Bước 7. Nạp chương trình.
Để nạp chương trình ta cần thực hiện theo các bược sau:
Chọn File cần nạp
Chọn đuôi
.HEX File được chọn
(File TEST.HEX)
Tải chương trình ra vùng đệm thực hiện nhấp trái chuột vào cửa sổ LOAD TO BUFFER, chương trình được tải ra vùng đệm và dung lượng được hiển thị. Chọn chế độ nạp không khóa Unlock để tiến hành bước tiếp theo
Chọn Program_Unlock để nạp chương trình
Chương trình có dung lượng
42B
Tải chương trình ra vùng đệm
Chọn Unlock
Chọn Type, rồi Compare để so sánh dữ liệu trong Rom với dữ liệu trong bộ đệm phát hiện lỗi trong quá trình ghi chương trình, khi cửa sổ mở ra ta tiếp tục chọn bước tiếp theo.
Chọn Compare tại cửa sổ Compare để hoàn tất việc nạp chương trình.
Khi chương trình hoàn tất sẽ có dòng thông báo Compare complet ta tiến hành thoát khỏi chương trình bằng cách nháy chuột trái vào “Quit”
Comparee e
Chọn Program Unlock
Bài tập:
Bài tập 1: Viết một đoạn chương trình theo yêu cầu sau
Nhân nội dung ô nhớ có địa chỉ 1200 trong ROM với ô nhớ có địa chỉ 1000 trong RAM ngoài, kết quả lưu lần lượt tại ô nhớ trong RAM trong có địa chỉ
được xác định bởi nội dung thanh ghi R5, R6
Bài tập 2: Viết một đoạn chương trình theo yêu cầu sau:
Thực hiện phép nhân logic nội dung thanh ghi R7 với ô nhớ có địa chỉ 100 trong RAM trong. Kết quả được lưu tại ô nhớ có địa chỉ 1000 trong RAM ngoài
Thoát khỏi chương trình