Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 2 doc

13 465 0
Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 2 doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phần II: Lập trình hợp ngữ cho PIC16F84 19 Phần II: LẬP TRÌNH HP NGỮ CHO PIC16F84 II.1. Giới thiệu: Khả năng giao tiếp là một điều rất quan trọng trong mọi lónh vực. Tuy nhiên, điều đó chỉ có thể thực hiện được khi hai bên giao tiếp biết cùng một ngôn ngữ. Với quy tắc trên thì con người và vi điều khiển cũng có thể giao tiếp với nhau. Ngôn ngữ mà vi điều khiển và con người dùng để giao tiếp gọi là hợp ngữ. Tên “ Hợp Ngữ “ không có ý nghóa gì sâu xa, nó tương tự như tên các ngôn ngữ khác như “ Tiếng Anh “ hay “ Tiếng Pháp “. Nói chính xác hơn thì hợp ngữ chỉ là giải pháp trung gian, bởi vì chương trình viết bằng hợp ngữ phải được dòch sang mã nhò phân để mà vi điều khiển có thể hiểu được. Hợp ngữ và trình biên dòch hợp ngữ là hai khái niệm khác nhau. Hợp ngữ là ngôn ngữ dùng để viết chương trình cho vi điều khiển, còn trình biên dòch hợp ngữ là chương trình trên máy tính cá nhân mà nó dòch chương trình viết bằng hợp ngữ sang mã nhò phân, chương trình mà đã được dòch sang mã nhò phân thì được gọi là ngôn ngữ máy. II.1.1. Biểu diễn số trong trình biên dòch Trong hợp ngữ MPLAB, các số có thể biểu diễn dưới dạng thập phân, thập lục phân, hoặc nhò phân Chúng ta sẽ minh hoạ điều này với số 240: .240 ;Decimal 0xF0 ;Thập lục phân B’11110000’ ;nhò phân Số thập phân được bắt đầu bằng một dấu chấm, số thập lục phân được bắt đầu bằng 0x, và số nhò phân bắt đầu bằng chữ b với dấu nháy đơn. II.1.2. Các yếu tố của hợp ngữ: Các yếu tố của hợp ngữ gồm có:  Nhãn  Lệnh  Toán tử  Các chỉ dẫn  -Lời chú thích  Nhãn: Nhãn biểu thò đòa chỉ của lệnh theo sau. Khi có sự rẽ nhánh đến lệnh này, nhãn được dùng trong trường toán hạng của lệnh rẽ nhánh hoặc nhảy.  Mã gợi nhớ lệnh: Phần II: Lập trình hợp ngữ cho PIC16F84 20 Mã gợi nhớ lệnh hoặc chỉ dẫn của trình hợp ngữ theo sau trường nhãn. Cách thức mà chúng ta viết lệnh được gọi là cú pháp. Trong ví dụ sau, chúng ta có thể nhận ra lỗi trong khi viết bởi vì lệnh movlp và gotto không tồn tại trong vi xử lý PIC16F84. Lệnh viết đúng: Movlw H’01FF’ Goto Start Lệnh viết sai: Movlp H’01FF’ Gotto Start  Toán hạng: Toán hạng theo sau mã gợi nhớ. Toán hạng chứa đòa chỉ hoặc dữ liệu mà lệnh sẽ sử dụng. Nói cách khác, toán hạng là nhân tố cho lệnh đang thực thi. Chúng thường là các thanh ghi, biến hoặc hằng.  Lời chú thích: Lời chú thích là một chuỗi ký tự mà người lập trình viết để làm cho chương trình rõ ràng. Nó được đặt sau lệnh và được bắt đầu bằng dấu chấm phẩy(;).  Chỉ dẫn: Lời chỉ dẫn thì tương tự như một lệnh, nhưng nó không giống như một lệnh mà nó phụ thuộc vào kiểu vi điều khiển, và nó biểu diễn đặc tính của hợp ngữ. Lời chỉ dẫn luôn luôn được cho ý nghóa thông qua biến và thanh ghi. Ví dụ như LEVEL có thể là sự chỉ đònh cho biến trong RAM ở tại đòa chỉ 0Dh. Bằng cách này, biến ở tại đòa chỉ đó có thể được truy xuất thông qua lời chỉ dẫn LEVEL. Điều này sẽ dễ hơn cho người lập trình khi phải nhớ đòa chỉ 0Dh chứa đựng thông tin LEVEL. II.2. Tập lệnh của PIC: Tập lệnh của PIC được xây dựng trên cơ sở ngôn ngữ Assemble. Tuy nhiên để người dùng dễ dàng tiếp cận và giúp cho quá trình lập trình trở nên đơn giản hơn, tập lệch của PIC được tối thiểu hoá còn 35 lệnh. Nhưng không vì ít lệch hơn tập lệnh của các họ vi điều khiển khác mà khả năng ứng dụng của PIC bò hạn chế. Theo như nhà sản xuất Microchip  thì tập lệnh của PIC có thể đáp ứng được tất cả các ứng dụng mà các họ vi điều khiển khác có thể làm được. Và thựcï tế cho thấy trong quá trình lập trình cho PIC bạn sẽ thấy việc lập trình sẽ rất dễ dàng hơn các họ vi điều khiển khác và chưa thấy một hạn chế về giải thuật nào gây ra từ tập lệnh. Bên cạnh đó, với sự hỗ trợ của lập trình dưới dạng Macro, việc lập trình trở nên nhẹ nhàng hơn và khả năng mở rộng ứng dụng là rất lớn. Sau đây sẽ liệt kê các lệnh của họ PIC  Movlw Dạng lệnh: Movlw K Hoạt động: Phần II: Lập trình hợp ngữ cho PIC16F84 21 Ghi hằng số K vào thanh ghi W Giá trò của K từ 0 đến 255 Không tác động lên cờ Số chu kỳ:1 Số byte: 2  Movwf Dạng lệnh: Movwf f Hoạt động: Nội dung của thanh ghi W được chép sang thanh ghi F Giá trò của f từ 0 đến 127 Không tác động lên cờ Số chu kỳ:1 Số byte: 2  Movf Dạng lệnh: Movf f, d Hoạt động: Nội dung của thanh ghi f được lưu trữ vào thanh ghi d Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  Clrw Dạng lệnh: Clrw Hoạt động: Xoá thanh ghi W Tác động lên cờ :Z Số chu kỳ: 1 Số byte: 2  Clrf Dạng lệnh: Clrf f Hoạt động: Xoá thanh ghi f Thanh ghi f có giá trò từ 0 đến 127 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  Swapf Dạng lệnh: Swapf f, d Hoạt động: Nibbles thấp và nibbles cao của thanh ghi f được hoán đổi vò trí cho nhau. Phần II: Lập trình hợp ngữ cho PIC16F84 22 Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Không tác động lên cờ Số chu kỳ:1 Số byte: 2  Addlw Dạng lệnh: Addlw K Hoạt động: Nội dung của thanh ghi W được cộng với hằng số tám bit K, kết quả lưu vào thanh ghi W Tác động lên cờ:C,DC,Z Số chu kỳ:1 Số byte: 2  Addwf Dạng lệnh: Addwf f,d Hoạt động: (W) + (f) => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ: C,DC,Z Số chu kỳ:1 Số byte: 2  Sublw Dạng lệnh: Sublw K Hoạt động: K-(W) => W Hằng số K có giá trò tứ 0 đến 255 Tác động lên cờ:C,DC,Z Số chu kỳ:1 Số byte: 2  Subwf Dạng lệnh: Subwf f,d Hoạt động: (F) –(w) => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ:C,DC,Z Phần II: Lập trình hợp ngữ cho PIC16F84 23 Số chu kỳ:1 Số byte: 2  Andlw Dạng lệnh: Andlw K Hoạt động: (W) and k => W Hằng số K có giá trò tứ 0 đến 255 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  Andwf Dạng lệnh: Andwf f,d Hoạt động: (W) and F => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  Iorlw Dạng lệnh: IORLW Hoạt động: Hằng số K có giá trò tứ 0 đến 255 Hoạt động của lệnh:(W) OR (K) => W Hằng số K có giá trò tứ 0 đến 255 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  IORWF Dạng lệnh: IORWF f,d Hoạt động: (W) OR (F) => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2 Phần II: Lập trình hợp ngữ cho PIC16F84 24  XORLW Dạng lệnh: XORLW K Hoạt động: Hằng số K có giá trò tứ 0 đến 255 Hoạt động của lệnh:(W) XOR (K) => W Hằng số K có giá trò tứ 0 đến 255 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  XORWF Dạng lệnh: XORWF f,d Hoạt động: (W) XOR (F) => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  INCF Dạng lệnh: INCF f,d Hoạt động: (F) + 1 => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :Z Số chu kỳ:1 Số byte: 2  DECF Dạng lệnh: DECF f,d Hoạt động: (F) - 1 => d Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :Z Số chu kỳ:1 Phần II: Lập trình hợp ngữ cho PIC16F84 25 Số byte: 2  RLF Dạng lệnh: RLF f,d Hoạt động: Dich thanh ghi F sang trai 1 bit thông qua cờ c. Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :C Số chu kỳ:1 Số byte: 2  RRF Dạng lệnh: RRF f,d Hoạt động: Dich thanh ghi F sang phải 1 bit thông qua cờ C. Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :C Số chu kỳ:1 Số byte: 2  COMF Dạng lệnh: COMF f,d Hoạt động: Lấy bù nội dung của thanh ghi F. Nếu d = 0 kết quả được lưu vào thanh ghi W Nếu d = 1 kết quả được lưu vào thanh ghi F Giá trò của thanh ghi F từ 0 đến 127 Tác động lên cờ :C Số chu kỳ:1 Số byte: 2  BCF Dạng lệnh: BCF f,b Hoạt động: Xoá bit b của thanh ghi f về 0. Giá trò của thanh ghi f từ 0 đến 127 Giá trò của b từ 0 đến 7 Không tác động lên cờ Số chu kỳ:1 Số byte: 2 Phần II: Lập trình hợp ngữ cho PIC16F84 26  BSF Dạng lệnh: BCF f,b Hoạt động: Set bit b của thanh ghi f lên 1. Giá trò của thanh ghi f từ 0 đến 127 Giá trò của b từ 0 đến 7 Không tác động lên cờ Số chu kỳ:1 Số byte: 2  BTFSC Dạng lệnh: BTFSC f,b Hoạt động: - Nếu bit b trong thanh ghi f bằng 0,con trỏ chương trình sẽ nhảy đến lệnh kế tiếp.  INCFSZ Dạng lệnh: INCFSZ f,d Hoạt động: Nếu d = 0 kết quả được lưu vào thanh ghi w Nếu d = 1 kết quả được lưu vào thanh ghi f Hoạt động của lệnh:(f) + 1 => d Giá trò của thanh ghi f từ 0 đến 127  GOTO Dạng lệnh: GOTO K Hoạt động: Nhảy vô điều kiện đến đòa chỉ K. Giá trò của K từ 0 đến 2048 Không tác động lên cờ Số chu kỳ:1 Số byte: 4  CALL Dạng lệnh: CALL K Hoạt động: Gọi chương trình con Giá trò của K từ 0 đến 2048 Không tác động lên cờ Số chu kỳ:1 Số byte: 4  RETURN Dạng lệnh: RETURN Phần II: Lập trình hợp ngữ cho PIC16F84 27 Hoạt động: Lấy nội dung từ đỉnh của ngăn xếp lưu vào bộ đếm chương trình. Không tác động lên cờ Số chu kỳ:1 Số byte: 4  RETLW Dạng lệnh: RETLW K Hoạt động: (K) =>w ; TOS => PC Giá trò của thanh ghi F từ 0 đến 255 Không tác động lên cờ Số chu kỳ:1 Số byte: 4  RETFIE Dạng lệnh: RETFIE Hoạt động: TOS =>PC;1=>GIE Không tác động lên cờ Số chu kỳ:1 Số byte: 4  NOP Dạng lệnh: NOP Hoạt động: Không làm gì cả. Không tác động lên cờ Số chu kỳ:1 Số byte: 4  CLRW DT Dạng lệnh: CLRWDT Hoạt động: 0=> WDT 0=>WDT prescaler 1=> TO 1=>PD Tác động lên cờ:TO,PD Số chu kỳ:1 Số byte: 2  SLEEP Dạng lệnh: SLEEP Phần II: Lập trình hợp ngữ cho PIC16F84 28 Hoạt động: Chế độ dừng. [...]... sửa lỗi  Programmer: hỗ trợ phần mềm nạp chip với các mạch nạp chuẩn:  PICSTART Plus  MPLAB MP3  MPLAB ICD2  PRO MATE 2 III .2 Phần mềm nạp chip IC – PROG: Trong các ứng dụng này, phần mềm được dùng để nạp cho chip PIC16F84 là phần mềm IC-Prog Đây là phần mềm hỗ trợ nạp chip vi điều khiển khá nhỏ gọn nhưng rất hiệu quả Icprog không chỉ hỗ trợ nạp tất cả các chip vi điều khiển thuộc dòng PIC mà còn.. .Phần IV: ứng dụng Phần III: PHƯƠNG PHÁP NẠP CHIP III.1 Giới thiệu phần mềm MPLAB MBLAP là phần mềm được nhà sản xuất_Microchip cung cấp giúp người dùng lập trình cho PIC bằng ngôn ngữ Assemble của nó Phần mềm hỗ trợ đầy đủ các modul tiện ích giúp cho vi c lập trình và nạp vào chip Các modul của phần mềm gồm:  Project: hỗ trợ công cụ quản lý 1 Project Gồm các phần:  Quản lý project... chip dó nhiên với điều kiện là mã nguồn mở (CP off_code protection) 29 Phần IV: ứng dụng Hình III-1: Chương trình nạp chip ICProg Trong các ứng dụng ở đây, mạch hỗ trợ được dùng là mạch JDM III.3 Mach nạp JDM JDM được thiết kế theo phương pháp chuẩn nạp cho PIC16F84 (PIC16F84A) và PIC16C84 được nhà sản xuất Mircochip hướng dẫn Mạch nạp khá đơn giản được trình bày trong hình sau: 30 Phần IV: ứng dụng... điều khiển thuộc dòng PIC mà còn hỗ trợ các họ khác như: 59Cxx, 24 Cxx, 93Cxx, BR, CXK… Mỗi loại vi điều khiển đều được phần mềm hổ trợ mạch nạp mà chúng ta có thể tham khảo tại trang web: http\\www.Icprog.Com Một đặc điểm rất hay và tiện lợi của chương trình là nó có khả năng dòch ngược tập tin mã máy.Hex về dạng mã gợi nhớ Asm khá chính xác Điều đó giúp cho người lập trình có thể kiểm tra và sửa lỗi ngay... khá đơn giản được trình bày trong hình sau: 30 Phần IV: ứng dụng Mạch trên được thiết kế theo chuẩn COM 25 chân Chúng ta có thể chuyển đổi tương đương các chân tương ứng sang chuẩn COM 9 chân theo bảng sau: Bảng III-1: Chuyển đổi tương ứng Com25 và Com9 Chức năng Chân (25 chân) Chân (9 chân) Tên gọi 2 3 Txd Truyền dữ liệu RTS Yêu cầu gởi Bộ truyền đạt được này lên cao khi sẵn sàng truyền dữ liệu 4 7... đặt đường này lên mức cao để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu 7 5 SG Đất của tín hiệu 20 4 DTR Đầu cuối dữ liệu sẵn sàng Hoạt động giống như RTS nhưng được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu Dựa trên mạch nguyên lý JDM do Icpro cung cấp chúng em đã tự làm mạch nạp cho PIC16F84 Sơ đồ mạch in được giới thiệu trong hình sau: 31 . nạp cho chip PIC16F84 là phần mềm IC-Prog. Đây là phần mềm hỗ trợ nạp chip vi điều khiển khá nhỏ gọn nhưng rất hiệu quả. Icprog không chỉ hỗ trợ nạp tất cả các chip vi điều khiển thuộc dòng. byte: 2  SLEEP Dạng lệnh: SLEEP Phần II: Lập trình hợp ngữ cho PIC16F84 28 Hoạt động: Chế độ dừng. Phần IV: ứng dụng 29 Phần III: PHƯƠNG PHÁP NẠP CHIP III.1. Giới thiệu phần. các họ vi điều khiển khác mà khả năng ứng dụng của PIC bò hạn chế. Theo như nhà sản xuất Microchip  thì tập lệnh của PIC có thể đáp ứng được tất cả các ứng dụng mà các họ vi điều khiển khác

Ngày đăng: 31/07/2014, 17:20

Tài liệu cùng người dùng

Tài liệu liên quan