Tải bản đầy đủ (.pdf) (17 trang)

Giáo trình học lập trình PIC.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (412.96 KB, 17 trang )


I. Bạn cần những gì để học tài liệu này ?
1. Từ việc lập trình trên máy tính, đến hoạt động của một con vi điều khiển
Sơ đồ của toàn bộ quá trình được mô tả trong hình vẽ sau :
Giao diện soạn thảo >> Trình biên dịch >> File .HEX >> Chương trình nạp >> Mạch
nạp >> PIC (vẽ sơ đồ này ra)
Nhưng mà thế này, hiện nay việc lập trình các giao diện phần mềm đã trở nên quá
đơn giản, cho nên giao diện soạn thảo, trình biên dịch, và ngay cả chương trình nạp
cũng được tích hợp vào trong chung một phần mềm, phần mềm đó được gọi là môi
trường làm việc. MPLAB IDE là một thí dụ.
Do vậy, để hiểu rõ hơn các khái niệm, chúng tôi trình bày thao tác từ việc lập trình
trên giao diện soạn thảo, đến việc nạp chương trình cho PIC mà không dùng MPLAB
IDE. Chúng ta sẽ dùng Notepad làm giao diện soạn thảo, MPASM là chương trình
dịch, dùng mạch nạp PG2C và chương trình nạp IC PROG.
Phần này các bạn không cần làm theo, chỉ cần xem thôi, vì chúng tôi chỉ minh họa về
các khái niệm để các bạn hiểu. Các bạn cũng chưa cần biết chương trình ở đâu ra, chỉ
cần thấy giao diện khác nhau là biết chương trình khác nhau rồi.
Trước tiên, chúng ta sẽ soạn thảo trên màn hình Notepad một chương trình bằng ngôn
ngữ lập trình MPASM như hình sau :
Hình 2.1 : Giao diện soạn thảo đơn giản nhất là Notepad

Chúng ta sẽ lưu lại file trên là PICtutorial_intro.asm
Sau đó, chúng ta sẽ dùng chương trình biên dịch MPASM để dịch những gì chúng ta
đã viết trong PICtutorial_intro.asm thành PICtutorial_intro.HEX để chuẩn bị nạp vào
PIC.
Hình 2.2 : Trình dịch MPASM trên Windows
Sau khi dịch xong, sẽ có một bảng thông báo xuất hiện như sau:

Hình 2.3: Bảng thông báo sau khi dịch xong
Các bạn sẽ thấy trên thông báo có những nội dung sau:
Errors: 0, đó là số lỗi cú pháp hoặc những lỗi quy định của trình dịch MPASM.


Chúng ta sẽ phân tích về các lỗi xảy ra trong quá trình thực hiện những bài tập thực
hành ở phần sau. Còn phần này, tất nhiên chương trình này tôi viết đã làm luận văn,
vậy thì không sai được, cho nên số lỗi sẽ là 0.
Warnings: là các thông báo cần chú ý, ở đây cũng là 0, có nghĩa là không có các
thông báo nào. Các thông báo này là những thông báo rằng có một số thanh ghi đặc
biệt cần phải quan tâm, có thể khi viết chương trình không sai về lỗi cú pháp, nhưng
có thể sai về lỗi vị trí thanh ghi… Các thông báo này không có.
Message: là các thông báo cho người dùng chú ý, có một số thanh ghi nằm ở các
BANK khác nhau, cần phải chú ý khi lập trình. Khái niệm này các bạn sẽ làm quen
sau. Nhưng ở đây có 10 thông báo. Khi gặp các thông báo này, các bạn phải xem lại
trong chương trình và chắc rằng mình làm đúng. Nhưng cho dù bạn làm đúng rồi, thì
các thông báo này vẫn có như thường. Đó là điều hạn chế của trình dịch, các bạn phải
thông cảm.
Lines Assembled: 810 là số dòng được viết trong chương trình, kể cả những dòng các
bạn bỏ trống, hoặc những dòng không dịch. Nó thống kê độ dài chương trình của các
bạn. Cứ 1024 dòng lệnh là 1K Flash, và 16F628(A) có tới 2K Flash, như vậy, chương
trình này vẫn đảm bảo hoạt động tốt.
Sau khi dịch xong, nó sẽ tạo ra một loạt các file khác ngoài file PICtutorial_intro.asm
ban đầu như hình sau:

Hình 2.4: Các file được tạo ra sau khi dịch
File ERR lưu các thông báo lỗi. Nhưng ở đây số lỗi không có, thì cũng chả có gì để
xem. File .LST là file LIST. Nó trình bày lại file .asm ban đầu của các bạn, nhưng nó
thể hiện thành dạng cột, và hàng rõ ràng hơn. Đồng thời, nó cũng ghi rõ vị trí của một
lệnh trong bộ nhớ khi nạp vào PIC như hình sau:

Hình 2.5: File LIST được tạo ra
Những file khác các bạn không cần phải quan tâm. Mà thực ra các bạn cũng không
cần phải quan tâm đến file nào khác ngoại trừ file .HEX được tạo ra.
Vậy nội dung của file .HEX là gì? Là những thứ chúng ta không đọc được và không

hiểu được. Vậy không cần đọc và không cần hiểu làm gì, chỉ cần xem cho vui thôi.
Nó như sau :

Bây giờ các bạn gắn mạch nạp PG2C vào cổng COM của máy tính, trên đó có gắn
một con PIC16F628 như hình sau :
Chúng ta sẽ gắn con PIC16F628 như sau:

×