Co bản về PIC - pdf 19

Download miễn phí Co bản về PIC
tui cung cấp dưới đây đoạn chương trình khởi tạo và kết thúc ngắt đầy đủ cho PIC, từ nay về sau, khi muốn sử dụng ngắt, các bạn chỉ cần copy và paste đoạn code này lại, hoàn toàn không cần sửa chữa gì và cứ thế sử dụng.

tui sẽ dành cho các bạn đặt câu hỏi về phần này để từ các câu hỏi, có thể giải thích rõ hơn vì sao chúng ta lại viết như vậy, từng điểm một. Nếu không, tui không thể có thời gian để viết tất cả mọi vấn đề về ngắt ra đây được


Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

=================================
; Ten chuong trinh : Mach test den LED_1
; Nguoi thuc hien : Falleaf
; Ngay thuc hien : 23/05/2005
; Phien ban : 1.0
; Mo ta phan cung : Dung PIC16F628A - thach anh 10MHz
; : LED giao tiep voi PORTB
; : Cuc am cua LED noi voi GND
; : RB0 - RB7 la cac chan output
;----------------------------------------------------------------
; Ngay hoan thanh : 23/05/2005
; Ngay kiem tra : 23/05/2005
; Nguoi kiem tra : Doan Hiep
;----------------------------------------------------------------
; Chu thich : Mo ta cac diem khac nhau cua cac phien ban khac nhau
; : hoac cac chu thich khac
; : vd, dung che do Power On Reset, PORTB = 00000000
; : hoac, chuong trinh viet cho PIC Tutorial
; : hoac, chuong trinh nay hoan toan mien phi va co the dung cho
; : moi muc dich khac nhau
;========================================================
Mặc dù chưa chắc rằng đoạn chú thích này có thể ngắn hơn chương trình các bạn viết, và như vậy việc viết chú thích dài hơn việc viết chương trình? Không, thực sự các chú thích này rất quan trọng, vì sau 1, 2, 3 năm, các bạn nhìn lại, các bạn sẽ vẫn còn hiểu được mình đã làm gì. Có thể khi mới bắt đầu, các bạn thấy công việc ghi chú này là nhàm chán, chính vì vậy, tui đã cung cấp form của ghi chú này, các bạn sau đó chỉ cần cắt và dán. tui hy vọng rằng các bạn nên tạo thói quen đưa đoạn chú thích này vào chương trình để các bạn trở nên chuyên nghiệp hơn khi làm việc với vi điều khiển, cụ thể ở đây là PIC. Tất nhiên, đây là bài học đầu tiên, do vậy các chú thích sẽ được ghi rất chi tiết, nhất là khi mô tả phần cứng. Sau này, với các mạch phức tạp hơn, các bạn không thể ghi chú quá chi tiết như thế này được, các bạn chỉ ghi chú những điểm chính thôi. Cũng tất nhiên, khi lập trình với CCS C hay HT PIC, các bạn cũng nên ghi chú như vậy trong chương trình chính, nhưng chúng ta chưa bàn đến CCS C và HT PIC ở đây.
Phần thứ hai các bạn cần học, đó là khởi tạo PIC. Phần này là phần bắt buộc theo sau phần ghi chú, bởi vì chương trình dịch cần hiểu bạn đang làm việc với con PIC nào, làm việc với nó như thế nào?
Code:
;=======================================================
TITLE "Mach test LED_1"
PROCESSOR P16F628A
INCLUDE
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC
;=======================================================
các bạn sẽ thấy rằng có một số từ khoá như sau: TITLE: dùng để các bạn ghi chú thích tên chương trình. TITLE là ten chương trình chính. Cú pháp ghi TITLE như trên. Nhớ phải có dấu nháy kép khi viết tên chương trình. PROCESSOR: dùng để khai báo dòng vi điều khiển mà các bạn sử dụng. các bạn lưu ý, trong MPLAB quy định, không viết đầy đủ tên PIC16F628A mà chỉ viết P16F628A, vì trong chương trình dịch đã quy định như vậy. INCLUDE: dùng để đưa thêm vào các file mà bạn viết trong chương trình. Mặc định, trong MPLAB đường dẫn đến thư mục chứa file P16F628A.inc đã có sẵn. Nếu bạn đặt file ở nơi khác không phải trong thư mục bạn đang làm việc, hay các file include khong phải là file .inc có sẵn của MPLAB, thì các bạn phải chỉ đường dẫn rõ ràng. Lưu ý rằng, để MPASM dịch được, các bạn phải đặt đường dẫn từ thư mục gốc đến hết tên file (kể cả phần mở rộng của file) không được quá 60 ký tự. __CONFIG: dùng để thiết lập các chế độ hoạt động của PIC. các bạn có thể xem để hiểu thêm về các chế độ hoạt động này trong tài liệu PICmicro Mid Range MCU Family Reference Manual Section 27. Device Configuration Bits Table 27-1 page 27-7 Tài liệu này có thể download trên trang web của microchip www.microchip.com, keyword: MidRange Manual. Mỗi directive để đặt chế độ, cách nhau một ký tự &. Nếu ghi chế độ hoạt động vào đây, các chế độ hoạt động sẽ ở trạng thái mặc định khi khởi động. các bạn cũng có cách khác để đặt chế độ hoạt động bằng cách tác động trực tiếp vào các thanh ghi khởi tạo. Tuy nhiên, việc này là việc làm không cần thiết, khi chúng ta đã có các directive để viết tắt. Như vậy, chúng ta đặt ở đây chế độ _CP_OFF, tức là khôngđặt chế độ bảo vệ source code khi nạp vào PIC, sau khi nạp vào sẽ có thể đọc ngược lại từ PIC ra. Chúng ta không cần bảo vệ chương trình này, để bạn có thể đọc ngược bằng IC-PROG và kiểm tra lại. Chế độ _PWRITE_ON, tức là cho timer 0 chạy khi Power On Reset. Thực ra timer0 có chạy hay không cũng không quan trọng, vì nó chẳng liên quan gì đến công việc của chúng ta. Nếu sau này muốn dùng timer0, thì các bạn vẫn phải khởi tạo lại giá trị cho nó, chứ đâu thể sử dụng giá trị ngẫu nhiên của nó được, thành ra cứ để cho nó chạy, sau này cần dùng khỏi phải khởi tạo. _WDT_OFF, tại thời điểm này, tui tắt Watch Dog Timer vì lý do các bạn chưa nên tìm hiểu phần này vội. _HS_OSC, chúng ta dùng thạch anh 10MHz, tức là chạy chế độ dao động HS. Tham khảo tại:
Thế là các bạn biết lập trình cho PIC
Một điểm lưu ý cuối cùng là các bạn phải sử dụng phím TAB để phân cách các cột của một chương trình viết bằng MPASM. Các dòng khởi tạo này được viết ở cột thứ 3. Các directive __CONFIG, TITLE, PROCESSOR, INCLUDE được viết vào cột thứ 3. Còn chi tiết khởi tạo được viết vào cột thứ tư. Cột thứ nhất dùng để viết các [NHÃN], cột thứ hai để viết mã lệnh, cột thứ ba lại dùng để viết chi tiết các tham số của lệnh, và cột thứ tư bỏ trống để tạo khoảng cách với cột thứ năm. Cột thứ năm dùng để viết các chú thích. Các chú thích bắt đầu bằng dấu chấm phẩy (. Trên một dòng, tất cả các ký tự viết sau dấu chấm phẩy đều vô nghĩa. Chính vì vậy, khi viết phần chú thích ban đầu, các bạn thấy rằng tất cả nội dung đó đều bắt đầu bằng dấu chấm phẩy. Như vậy, một dòng lệnh được cụ thể như sau:
Code:
NHÃN LỆNH thamso1, thamso2 ; chú thích dòng lệnh
Bây giờ chúng ta dành chút thời gian cho lý thuyết, các bạn mở datasheet PIC16F628A trang 15, Section 4. Memory Organization Chúng ta sẽ thấy rằng tổ chức bộ nhớ chương trình của PIC được chia ra làm mấy phần như sau: - Pointer - Stack - Interrupt vector - Program memory Chúng ta tạm thời chưa bàn đến pointer và stack. Interrupt vector được đặt ở địa chỉ 0x0004 Program memory được đặt ở địa chỉ 0x0005 Vậy từ địa chỉ 0x0000 đến địa chỉ 0x0003 chúng ta làm được gì? Khi PIC được reset, nó lập tức nhảy về địa chỉ 0x0000. Rồi cứ sau một chu kỳ máy, nó nhảy đến địa chỉ tiếp theo, xem xem trong địa chỉ đó yêu cầu nó làm gì, nó thực hiện việc đó, xong rồi lại nhảy tiếp. Cứ làm như thế cho đến khi hết chương trình. Tất nhiên, khi chúng ta thực hiện một số lệnh điều khiển vị trí nhảy, thì nó sẽ nhảy không theo thứ tự nữa, nhưng việc này chưa bàn vội. Chúng ta trước mắt chỉ cần biết rằng nó cứ nhảy như vậy cho đến hết chương trình. Như vậy, nếu không sử dụng ngắt, thì chúng ta viết chương trình từ địa chỉ 0x0000 luôn, vì nó cứ thế là nhảy từ 0x0000 khi khởi động, cho đến hết chương trình. Tuy nhiên, nếu làm như vậy, sau này chúng ta sử dụng chương trình ngắt, thì chúng ta sẽ gặp trục trặc vì thói quen viết từ địa chỉ 0x0000. Chính vì vậy, chúng ta nên đặt chương trình trong phần Program Memory như ý đồ thiết kế PIC. Vậy, chương trình của chúng ta sẽ viết như sau:
Code:
;====================================================================
ORG 0x0000
GOTO MAIN
ORG 0x0005
MAIN
.....
...

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status