1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng lý thuyết vi xử lý kỹ thuật vi xử lý CD ROM p4

8 2 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 0,99 MB

Nội dung

Microsoft Word Bai Giang LT Vi xu ly Khoa CNDT docx Bài giảng KỸ THUẬT VI XỬ LÝ 49 CHƯƠNG 4 NGÔN NGỮ LẬP TRÌNH Nắm bắt được lý thuyết về từ khóa, cách đặt tên và khai báo biến, các kiểu dữ liệu trong ngôn ngữ lập trình (ASM, Hi techC) Trình bày được lý thuyết về cú pháp của các cấu trúc chương trình (ASM, Hi techC) Trình bày được cấu trúc của một chương trình ASM và C Sử dụng thành thạo phần mềm lập trình MPLAB và Hi tech C Xây dựng được lưu đồ giải thuật cho bài toán Có khả năng lập trình sử dụ.

Bài giảng KỸ THUẬT VI XỬ LÝ CHƯƠNG 4: NGÔN NGỮ LẬP TRÌNH - Nắm bắt lý thuyết từ khóa, cách đặt tên khai báo biến, kiểu liệu ngơn ngữ lập trình (ASM, Hi_techC) - Trình bày lý thuyết cú pháp cấu trúc chương trình (ASM, Hi_techC) - Trình bày cấu trúc chương trình ASM C - Sử dụng thành thạo phần mềm lập trình MPLAB Hi_tech C - Xây dựng lưu đồ giải thuật cho tốn - Có khả lập trình sử dụng ngơn ngữ lập trình phù hợp cho tốn 4.1 Lập trình Assemly 4.1.1 Giới thiệu + Như trình bày chương 3, PIC vi điều khiển có tập lệnh rút gọn RISC (Reduced Instruction Set Computer), bao gồm 35 lệnh phân thành nhóm bản:  Nhóm lệnh thao tác bit  Nhóm lệnh thao tác byte  Nhóm lệnh điều khiển + Đối với dịng vi điều khiển PIC16Fxxx, lệnh mã hóa thành 14 bit word, bao gồm bit opcode (dùng để xác định lệnh mã hóa) bit mô tả hay vài tham số lệnh + Đối với nhóm lệnh thao tác byte, ta có tham số f (xác định địa byte cần thao tác) d (xác định nơi chứa kết thực thi lệnh) Nếu d = 0, kết đưa vào ghi W Nếu d = 1, kết đưa vào ghi mô tả tham số f + Đối với nhóm lệnh thao tác bit,ta có hai tham số b (xác định bit cần thao tác) f (xác định địa byte liệu cần thao tác) + Đối với nhóm lệnh điều khiển có tham số k (k bit trường hợp lệnh bình thường hay 11 bit trường hợp lệnh CALL lệnh GOTO) dùng để mô tả đối tượng tác động vi điều khiển (một label, số đó) + Mỗi lệnh vi điều khiển thực thi xong vòng chu kì lệnh, ngoại trừ lệnh làm thay đổi giá trị đếm chương trình PC cần chu kì lệnh Một chu kì lệnh gồm xung clock oscillator, bên vdk có chia tần số cho Ví dụ ta sử dụng oscillator có tần số MHz tần số thực thi lệnh 4MHz/4 = MHz, chu kì lệnh có thời gian uS + Các lệnh thao tác ghi thực chế Read-Modify-Write, tức ghi đọc, liệu thao tác kết đưa vào ghi chứa kết (nơi 49 Bài giảng KỸ THUẬT VI XỬ LÝ chứa kết tùy thuộc vào lệnh thực thi tham số d) Ví dụ thực thi lệnh “CLRF PORTB”, vi điều khiển đọc giá trị ghi PORTB, xóa tất bit ghi kết trở lại ghi PORTB 4.1.2 Các thành phần a Các kiểu liệu biến b Các toán tử c Các lệnh (bao gồm kiểu liệu toán tử) Lệnh ADDLW Cú pháp: ADDLW k (0 ≤ k≤255) Tác dụng: cộng giá trị k vào ghi W, kết chứa W Lệnh ADDWF Cú pháp: ADDWF f,d (0≤f≤255, d∈¸[0,1]) Tác dụng: cộng giá trị hai ghi W ghi f Kết chứa ghi W d = ghi f d =1 Bit trạng thái: C, DC, Z Lệnh ANDLW Cú pháp: ANDLW k (0≤k≤255) Tác dụng: thực phép toán AND ghi W giá trị k, kết chứa ghi W Bit trạng thái: Z Lệnh ANDWF Cú pháp: ANDWF f,d (0≤f≤127, d ∈¸[0,1]) Tác dụng: thực phép toán AND giá trị chứa hai ghi W f Kết đưa vào ghi W d=0 ghi f d = Bit trạng thái: Z Lệnh BCF Cú pháp: BCF f,b (0≤f≤127, 0≤b≤7) Tác dụng: xóa bit b ghi f giá trị Bit trạng thái: khơng có Lệnh BSF Cú pháp: BSF f,b (0≤f≤127, 0≤b≤7) Tác dụng: set bit b trnh ghi f Bit trạng thái: khơng có 50 Bài giảng KỸ THUẬT VI XỬ LÝ Lệnh BTFSS Cú pháp: BTFSS f,b (0≤f≤127, 0≤b≤7) Tác dụng: kiểm tra bit b ghi f Nếu bit b 0, lệnh thực thi Nếu bit b 1, lệnh bỏ qua thay vào lệnh NOP Bit trạng thái: khơng có Lệnh BTFSC Cú pháp: BTFSC f,b (0≤f≤127, 0≤b≤7) Tác dụng: kiểm tra bit b ghi f Nếu bit b 1, lệnh thựcthi Nếu bit b 0, lệnh bỏ qua thay vào lệnh NOP Bit trạng thái: khơng có Lệnh CALL Cú pháp: CALL k (0≤k≤2047) Tác dụng: gọi chương trình Trước hết địa quay trở từ chương trình (PC+1) cất vào Stack, giá trị địa đưa vào đếm gồm 11 bit biến k bit PCLATH Bit trạng thái: khơng có Lệnh CLRF Cú pháp CLRF f (0≤f≤127) Tác dụng: xóa ghi f bit Z set Bit trạng thái: Z Lệnh CLRW Cú pháp CLRW Tác dụng: xóa ghi W bit Z set Bit trạng thái: Z Lệnh CLRWDT Cú pháp: CLRWDT Tác dụng: reset Watchdog Timer, đồng thời prescaler reset, bit \PD \TO set lên Bit trạng thái: \PD, \TO Lệnh COMF Cú pháp: COMF f,d (0≤f≤127, d∈¸[0,1]) 51 Bài giảng KỸ THUẬT VI XỬ LÝ Tác dụng: đảo bit ghi f Kết đưa vào ghi W d=0 ghi f d=1 Bit trạng thái: Z Lệnh DECF Cú pháp: DECF f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: giá trị ghi f giảm đơn vị Kết đưa vào ghi W d = ghi f d = Bit trạng thái: Z Lệnh DECFSZ Cú pháp: DECFSZ f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: gía trị ghi f giảm đơn vị Nếu kết sau giảm khác 0, lệnh thực thi, kết 0, lệnh không thực thi thay vào lệnh NOP Kết đưa vào ghi W d = ghi f d = Bit trạng thái: khơng có Lệnh GOTO Cú pháp: GOTO k (0≤k≤2047) Tác dụng: nhảy tới label định nghĩa tham số k bit PCLATH Bit trạng thái: khơng có Lệnh INCF Cú pháp: INCF f,d (0≤f≤127, d ∈¸[0,1]) Tác dụng: tăng giá trị ghi f lên đơn vị Kết đưa vào ghi W d = ghi f d = Bit trạng thái: Z Lệnh INCFSZ Cú pháp: INCFSZ f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: tăng giá trị ghi f lên đơn vị Nếu kết khác 0, lệnh thực thi, kết 0, lệnh thay lệnh NOP Kết đưa vào ghi f d=1 ghi W d = Bit trạng thái: khơng có Lệnh IORLW Cú pháp: IORLW k (0≤k≤255) 52 Bài giảng KỸ THUẬT VI XỬ LÝ Tác dụng: thực phép toán OR ghi W giá trị k Kết chứa ghi W Bit trạng thái: Z Lệnh IORWF Cú pháp: IORWF f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: thực phép toán OR hai ghi W f Kết đưa vào ghi W d=0 ghi f d=1 Bit trạng thái: Z Lệnh RLF Cú pháp: RLF f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: dịch trái bit ghi f qua cờ carry Kết lưu ghi W d=0 ghi f d=1 Bit trạng thái: C Lệnh RETURN Cú pháp: RETURN Tác dụng: quay trở chương trình từ chương trình Bit trạng thái: khơng có Lệnh RRF Cú pháp: RRF f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: dịch phải bit ghi f qua cờ carry Kết lưu ghi W d=0 ghi f d=1 Bit trạng thái: C Lệnh SLEEP Cú pháp: SLEEP Tác dụng: đưa vi điều khiển chế độ sleep Khi WDT bị xóa 0, bit \PD xóa 0, bit \TO set lên oscillator không cho phép hoạt động Bit trạng thái: \PD, \TO Lệnh SUBLW Cú pháp: SUBLW k Tác dụng: lấy giá trị k trừ giá trị ghi W Kết chứa ghi W Bit trạng thái: C, DC, Z Lệnh SUBWF 53 Bài giảng KỸ THUẬT VI XỬ LÝ Cú pháp: SUBWF f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: lấy giá trị ghi f đemtrừ cho ghi W Kết lưu ghiaW d=0 ghi f d=1 Bit trạng thái: C, DC, Z Lệnh SWAP Cú pháp: SWAP f,d (0≤f≤127, d∈¸[0,1]) Tác dụng: đảo bit thấp với bit cao ghi f Kết chứa ghi W d=0 ghi f d=1 Bit trạng thái: khơng có Lệnh XORLW Cú pháp: XORLW k (0≤k≤255) Tác dụng: thực phép toán XOR giá trị k giá trị ghi W Kết lưu ghi W Bit trạng thái: Z Lệnh XORWF Cú pháp: XORWF f,d Tác dụng: thực phép toán XOR hai giá trị chứa ghi W ghi f Kết lưu vào ghi W d=0 ghi f d=1 Bit trạng thái: Z Ngồi lệnh cịn có số lệnh dùng chương trình như: Lệnh #DIFINE Cú pháp: #DEFINE Tác dụng: thay chuỗi kí tự chuỗi kí tự khác, có nghĩa chuỗi kí tự text1 xuất chương trình, trình biên dịch tự động thay chuỗi kí tự chuỗi kí tự Lệnh INCLUDE Cú pháp: #INCLUDE #INCLUDE “filename” Tác dụng: đính kèm file khác vào chương trình, tương tự việc ta copy file vào vị trí xuất lệnh INCLUDE Nếu dùng cú pháp file đình kèm file hệ thống (system file), dùng cú pháp “filename” file đính kèm file người sử dụng Thơng thường chương trình đính kèm theo “header file” chứa thơng tin định nghịa biến (thanh ghi W, ghi F, ) địa cảu ghi chức đặc 54 Bài giảng KỸ THUẬT VI XỬ LÝ biệt nhớ liệu Nếu khơng có header file, chương trình khó đọc khó hiểu Lệnh CONSTANT Cú pháp: CONSTANT = Tác dụng: khai báo số, có nghĩa phát chuỗi kí tự “name” chương trình, trình biên dịch tự động thay chuỗi kí tự giá trị “value” định nghĩa trước Lệnh VARIABLE Cú pháp: VARIABLE = Tác dụng: tương tự lệnh CONSTANT, có điểm khác biệt giá trị “value” dùng lệnh VARIABLE thay đổi q trình thưc thi chương trình cịn lệnh CONSTANT khơng Lệnh SET Cú pháp: SET Tác dụng: gán giá trị cho tên biến Tên biến thay đổi q trình thực thi chương trình Lệnh EQU Cú pháp: EQU Tác dụng: gán giá trị cho tên tên số Tên số không thay đổi trình thực thi chương trình Lệnh ORG Cú pháp: ORG Tác dụng: định nghĩa địa chứa chương trình nhớ chương trình vi điều khiển Lệnh END Cú pháp: END Tác dụng: đánh dấu kết thúc chương trình Lệnh CONFIG Cú pháp: CONFIG “0xxxxx” Tác dụng: thiết lập bit điều khiển khối chức vi điều khiển chứa nhớ chương trình (Configuration bit) Lệnh PROCESSOR 55 Bài giảng KỸ THUẬT VI XỬ LÝ Cú pháp: PROCESSOR Tác dụng: định nghĩa vi điều khiển sử dụng chương trình 4.2 Lập trình Hi_tech C (SV tự ôn tập lệnh ngôn ngữ C) 4.2.1 Giới thiệu 4.2.2 Các thành phần ngơn ngữ lập trình Hi_tech C 4.3 Phần mềm MPLAP8.7 (xem file hướng dẫn phần phụ lục) 4.3.1 Cách cài đặt 4.3.2 Sử dụng cho ứng dụng Hitech C template: #define _XTAL_FREQ 4000000 //Khai báo dùng Thạch anh MHz #include //Khai báo dùng trình biên dịch Hitech C CONFIG(0x3FFA); //Khai báo bit cấu hình vi điều khiển unsigned char variable1 = 1; signed char variable2 = 1; unsigned int variable3 = 1; unsigned long variable4 = 1; //Khai báo biến toàn cục kiểu char số dương(8bit) //Khai báo biến toàn cục kiểu char số nguyên(8bit) //Khai báo biến toàn cục kiểu int số dương (16bit) //Khai báo biến toàn cục kiểu long số dương (32bit) unsigned char chuong_trinh_con(void); //Khai báo cho chương trình void main(void) { // code viết cho chương trình // while(1) { // code viết cho chương trình // } } //Bắt đầu chương trình unsigned char chuong_trinh_con(void) { // code viết cho chương trình // return 0x01; } //Bắt đầu chương trình void interrupt isr(void) { // code viết cho chương trình // //Chạy vịng lặp //Kết thúc chương trình // Kết thúc việc trả giá trị //Chương trình xử lý Ngắt (Interrupt) } 56 .. .Bài giảng KỸ THUẬT VI XỬ LÝ chứa kết tùy thuộc vào lệnh thực thi tham số d) Ví dụ thực thi lệnh “CLRF PORTB”, vi điều khiển đọc giá trị ghi PORTB, xóa... nhớ chương trình (Configuration bit) Lệnh PROCESSOR 55 Bài giảng KỸ THUẬT VI XỬ LÝ Cú pháp: PROCESSOR Tác dụng: định nghĩa vi điều khiển sử dụng chương trình 4.2 Lập trình Hi_tech... set lên Bit trạng thái: PD, TO Lệnh COMF Cú pháp: COMF f,d (0≤f≤127, d∈¸[0,1]) 51 Bài giảng KỸ THUẬT VI XỬ LÝ Tác dụng: đảo bit ghi f Kết đưa vào ghi W d=0 ghi f d=1 Bit trạng thái: Z Lệnh DECF

Ngày đăng: 02/07/2022, 11:36