1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tai lieu huong dan SP

35 452 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,57 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRUỜNG ĐẠI HỌC BÁCH KHOA  TÀI LIỆU THỰC TẬP CHUYÊN ĐỀ (LƯU HÀNH NỘI BỘ, KHÓA 09CVL TRƯỜNG ĐH SƯ PHẠM) Biên soạn: Phạm Xuân Trung Bộ môn Kỹ thuật Máy tính Khoa Điện tử Viễn thông     TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Mục tiêu: Sinh viên sau đọc xong tài liệu có thể: - Lập trình chương trình đơn giản cho Vi điều khiển PIC16F877A - Sử dụng phần mềm mô PIC Simulator IDE để lập trình mô chương trình đơn giản - Sử dụng công cụ MPLAB để lập trình nạp chương trình cho KIT PICDEM2 PLUS - Đọc thông số hiển thị chương trình mô - Sử dụng KIT PICDEM2 PLUS để thực thực hành đơn giản Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang Page 1  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   1.1 Lý thuyết Vi điều khiển PIC16F877A PIC chữ viết tắt "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi) Vi điều khiển PIC16F877A (có kèm chữ “A” cuối đồng nghĩa với việc Vi điều khiển sử dụng nhớ chương trình Flash) thuộc họ vi điều khiển PIC16F, sở hữu hầu hết chức phổ biến thường gặp vi điều khiển họ Một số đặc điểm Vi điều khiển PIC16F877A: CPU kiểu RISC hiệu suất cao: - Tập lệnh gồm 35 lệnh - Các lệnh thực chu kỳ máy ngoại trừ lệnh rẽ nhánh lúc thực hoạt động rẽ nhánh - Bộ nhớ chương trình flash dung lượng 8Kx14 words - Bộ nhớ liệu RAM tĩnh dung lượng 368x8 bytes - Bộ nhớ dự liệu EEPROM dung lượng 256x8 bytes - Số lượng chân 40 Các đặc trưng ngoại vi: - Timer0: đếm bit với chia tần số bit - Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep - Timer2: đếm bit với chia tần số, postcaler - Hai Capture(bắt xung/phát xung) /so sánh/điều chế độ rông xung (PWM) o Bộ Capture 16-bit, độ phân giải tối đa 12.5 ns o Bộ so sánh 16-bit, độ phân giải tối đa 200 ns o Bộ PWM độ phân giải tối đa 10-bit - Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI I2C - Chuẩn giao tiếp nối tiếp USART với bit địa - Cổng giao tiếp song song PSP (Parallel Slave Port) với chân điều khiển RD, WR, CS bên Các đặc tính Analog: - kênh chuyển đổi ADC 10 bit - Hai so sánh Bên cạnh vài đặc tính khác vi điều khiển như: - Bộ nhớ flash với khả ghi xóa 100.000 lần - Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần - Dữ liệu nhớ EEPROM lưu trữ 40 năm Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 2  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   - Khả tự nạp chương trình với điều khiển phần mềm Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) thông qua chân Watchdog Timer với dao động Chức bảo mật mã chương trình Chế độ Sleep Có thể hoạt động với nhiều dạng Oscillator khác 1.1.1 Sơ đồ chân, số chức chân cần quan tâm 1.1.1.1 Sơ đồ chân kiểu đóng gói Hiện nay, Microchip đưa thị trường kiểu đóng gói khác cho vi điều khiển PIC16F877A: 40 chân kiểu PDIP, 44 chân kiểu PLCC TQFP Kiểu 40 chân PDIP sử dụng nhiều ứng dụng thực tế không yêu cầu cao độ phức tạp dễ thiết kế mạch, dễ thay chip có xảy hỏng hóc Vì vậy, tất nội dung trình bày sử dụng cho PIC16F877A có kiểu đóng gói 40 chân PDIP PDIP: Plastic Dual In-line Package PLCC: Plastic Leaded Chip Carrier TQFP: Thin Quad Flat Pack Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 3  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   1.1.1.2 Một số chức chân cần quan tâm Chân Tên Chức : Hoạt động Reset mức thấp - VPP : ngõ vào áp lập trình - RA0 : xuất/nhập số RA0/AN0 - AN0 : ngõ vào tương tự - RA1 : xuất/nhập số RA1/AN1 - AN1 : ngõ vào tương tự - RA2 : xuất/nhập số RA2/AN2/VREF-/CVREF - AN2 : ngõ vào tương tự - VREF -: ngõ vào điện áp chuẩn (thấp) A/D - RA3 : xuất/nhập số RA3/AN3/VREF+ - AN3 : ngõ vào tương tự - VREF+ : ngõ vào điện áp chuẩn (cao) A/D - RA4 : xuất/nhập số RA4/TOCKI/C1OUT - TOCKI : ngõ vào xung clock bên cho timer0 - C1 OUT : Ngõ so sánh - RA5 : xuất/nhập số RA5/AN4/ /C2OUT - AN4 : ngõ vào tương tự /VPP Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 4  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   RE0/ /AN5 RE1/ /AN6 RE2/ /AN7 10 11 12 13 VDD VSS OSC1/CLKI 14 OSC2/CLKO 15 RC0/T1 OCO/T1CKI 16 RC1/T1OSI/CCP2 17 RC2/CCP1 18 RC3/SCK/SCL - SS : ngõ vào chọn lựa SPI phụ - C2 OUT : ngõ so sánh - RE0 : xuất nhập số - RD : điều khiển việc đọc port nhánh song song - AN5 : ngõ vào tương tự - RE1 : xuất/nhập số - WR : điều khiển việc ghi port nhánh song song - AN6 : ngõ vào tương tự - RE2 : xuất/nhập số - CS : Chip lựa chọn điều khiển port nhánh song song - AN7 : ngõ vào tương tự Chân nguồn PIC Chân nối đất Ngõ vào dao động thạch anh xung clock bên - OSC1 : ngõ vào dao động thạch anh xung clock bên Ngõ vào Schmit trigger cấu tạo chế độ RC ; cách khác CMOS - CLKI : ngõ vào nguồn xung bên Luôn kết hợp với chức OSC1 Ngõ vào dao động thạch anh xung clock - OSC2 : Ngõ dao động thạch anh Kết nối đến thạch anh cộng hưởng - CLKO : chế độ RC, ngõ OSC2, tần số OSC1 tốc độ chu kỳ lệnh - RC0 : xuất/nhập số - T1OCO : ngõ vào dao động Timer - T1CKI : ngõ vào xung clock bên Timer - RC1 : xuất/nhập số - T1OSI : ngõ vào dao động Timer - CCP2 : ngõ vào Capture 2, ngõ compare 2, ngõ PWM2 - RC2 : xuất/nhập số - CCP1 : ngõ vào Capture 1, ngõ compare 1, ngõ PWM1 - RC3 : xuất/nhập số - SCK : ngõ vào xung clock nối tiếp đồng bộ/ngõ chế độ SPI - SCL : ngõ vào xung clock nối tiếp đồng bộ/ ngõ Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 5  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   19 20 21 22 RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 23 RC4/SDI/SDA 24 RC5/SDO 25 RC6/TX/CK 26 RC7/RX/DT 27 28 29 30 31 32 33 34 35 36 37 38 RD4/PSP RD5/PSP5 RD6/PSP6 RD7/PSP7 VSS VDD RB0/INT RB1 RB2 RB3 RB4 RB5 chế độ I2C - RD0 : xuất/nhập số - PSP0 : liệu port nhánh song song - RD1 : xuất/nhập số - PSP1 : liệu port nhánh song song - RD2 : xuất/nhập số - PSP2 : liệu port nhánh song song - RD3: xuất/nhập số - PSP3 : liệu port nhánh song song - RC4 : xuất/nhập số - SDI : liệu vào SPI - SDA : xuất/nhập liệu vào I2C - RC5 : xuất/nhập số - SDO : liệu SPI - RC6 : xuất/nhập số - TX : truyền bất đồng USART - CK : xung đồng USART - RC7 : xuất/nhập số - RX : nhận bất đồng USART - DT : liệu đồng USART - RD4: xuất/nhập số - PSP4 : liệu port nhánh song song - RD5: xuất/nhập số - PSP5 : liệu port nhánh song song - RD6: xuất/nhập số - PSP6 : liệu port nhánh song song - RD7: xuất/nhập số - PSP7 : liệu port nhánh song song Chân nối đất Chân nguồn PIC - RB0 : xuất/nhập số - INT : ngắt xuất/nhập số xuất/nhập số - RB3 : xuất/nhập số - Chân cho phép lập trình điện áp thấp ICPS - xuất/nhập số - Ngắt PortB - xuất/nhập số - Ngắt PortB Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 6  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   39 RB6/PGC 40 RB7/PGD - RB6 : xuất/nhập số - PGC : mạch vi sai xung clock lập trình ICSP - Ngắt PortB - RB7 : xuất/nhập số - PGD : mạch vi sai liệu lập trình ICSP - Ngắt PortB 1.1.2 Tổ chức nhớ chuơng trình Mô tả ghi đếm chương trình PC, cấp ngăn xếp (stack), nhớ chương trình Flash phân thành trang, liên quan thành phần, cách sử dụng thành phần 1.1.2.1 Bản đồ nhớ chương trình ngăn xếp Bộ nhớ chương trình vi xử lý PIC16F877A tập hợp vị trí nhớ gọi “word” Kích thước nhớ chương trình 8Kword, có dải địa nằm đoạn [0000h, 1FFFh] Độ rộng “word” 14 bit Ngăn xếp (stack) vi xử lý PIC16F877A có tất vị trí nhớ hay gọi cấp stack Các cấp stack chất liên quan trực tiếp đến ghi đếm chương trình (thanh ghi PC) thông qua địa word thuộc nhớ chương trình Thanh ghi đếm chương trình (thanh ghi PC) liên quan trực tiếp đến địa word thuộc nhớ chương trình, đồng thời liên quan trực tiếp đến cấp stack Cả ba thành phần sử dụng chung bus địa có độ rộng 13 bit Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 7  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   1.1.2.2 Bộ nhớ chương trình: Bộ nhớ chương trình thành phần lưu trữ chương trình dạng mã máy (các chuỗi bit nhị phân) Ban đầu, người lập trình sử dụng ngôn ngữ (khác mã máy) để viết chương trình, sau sử dụng trình biên dịch để biên dịch chương trình sang mã máy, nạp vào vi xử lý Bộ nhớ chương trình vi xử lý PIC16F877A tổ chức thành trang (page) Kích thước trang 2Kword, dải địa tương đối(độ dời) trang thuộc đoạn [0000h, 07FFh] Các trang đánh địa trang để dễ dàng quản lý, 0h cho trang 0, 1h cho trang 1, 2h cho trang 2, 3h cho trang Tuy nhiên, trang có khác biệt với trang lại Địa 0000h không sử dụng để lưu trữ chương trình mà sử dụng cho véc tơ Reset Địa 0004h không sử dụng để lưu trữ chương trình mà sử dụng cho véc tơ ngắt Như vậy, dải địa tương đối trang phải 0005h Cách biểu diễn địa logic: địa logic = địa trang nhớ: địa tương đối Ví dụ, word 00AAh trang có địa logic “1h:00AAh” Cách tính địa tuyệt đối cho loại nhớ phân trang: địa tuyệt đối = địa trang nhớ x kích thước trang nhớ + địa tương đối Ví dụ, word 00AAh trang (kích thước trang 2Kword) có địa tuyệt đối = 1h x 800h + 00AAh = 08AAh Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 8  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   1.1.2.3 Thanh ghi đếm chương trình (Thanh ghi PC) Thanh ghi PC sử dụng để trỏ đến lệnh cần thực Độ rộng ghi PC 13 bit Trong đó, 11 bit thấp sử dụng để lưu trữ giá trị địa tương đối thuộc trang nhớ chứa lệnh trỏ đến, bit cao lại sử dụng để lưu trữ địa trang nhớ Ngoại trừ trường hợp đặc biệt, sau lệnh nạp vào ghi lệnh Instruction Register, giá trị lưu trữ ghi PC tự động tăng lên để trỏ đến lệnh cần thực 1.1.2.4 Ngăn xếp (stack) Stack có cấp với chức lưu trữ địa trở từ chương trình chương trình phục vụ ngắt Vì sử dụng để lưu trữ địa word thuộc nhớ chương trình nên độ rộng cấp stack 13 bit giống với ghi PC Stack hoạt động theo nguyên lý LIFO (vào sau trước) Đối với vi xử lý PIC16F877A, trỏ stack nên kiểm soát hoạt động tràn, khuyến cáo không nên có chương trình lồng vào 1.1.3 Tổ chức nhớ liệu RAM Mô tả cách phân chia nhớ liệu RAM thành nhóm ghi, cách thức sử dụng vài ghi cần thiết cho thí nghiệm 1.1.3.1 Sơ đồ tổ chức nhớ liệu RAM (Bản đồ tệp ghi) Bộ nhớ liệu RAM vi xử lý PIC16F877A có dung lượng 512 byte, có dải địa thuộc đoạn [000h, 1FFh] Tuy nhiên, có 368byte sử dụng Bộ nhớ liệu RAM chia thành bank ghi Mỗi bank ghi có kích thước 128byte, bank ghi có khoảng 80byte định nghĩa hay nói cách khác có khoảng 80 ghi cho bank ngoại trừ bank Dải địa tương đối bank ghi thuộc đoạn [00h, 7Fh] Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 9  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   c Lệnh DECFSZ Cú pháp: DECFSZ f,d (d∈ [0,1]) Tác dụng: Dữ liệu lưu 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: Ví dụ: DECFSZ DEM,1 LỆNH LỆNH Sauk giảm giá trị ghi “DEM” xuống đơn vị, chưa thực thi “LỆNH 1” Ngược lại, thực thi “LỆNH 2” d Lệnh INCFSZ Cú pháp: INCFSZ f,d (d∈ [0,1]) Tác dụng: Dữ liệu lưu trữ ghi f tăng 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 lưu vào ghi f d=1 ghi W d = Bit trạng thái: e 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: f 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: g Lệnh RETURN Cú pháp: RETURN Tác dụng: quay trở chương trình từ chương trình Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 20  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Bit trạng thái:không có h Lệnh RETFIE Cú pháp: RETFIE Tác dụng: Trở từ chương trình phục vụ ngắt i Lệnh RETLW Cú pháp: RETLW k (0 chọn Assemble & Load nhấn phím nóng F8 1.2.2.4 Công cụ sử dụng để mô trực quan phục vụ cho thí nghiệm: Click chuột trái vào Tools giao diện chương trình hình, chọn x LED Board Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 26  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Sau đó, giao diện công cụ LED đơn hiển thị Để thay đổi màu, click chuột trái vào ô chọn màu để lựa chọn Muốn thay đổi bit PORT A/B/C/D/E kết nối vào LED click vào ô 1.2.3 Cấu trúc chương trình viết ngôn ngữ Assembly viết PIC Simulator IDE Khi viết chương trình sử dụng phần mềm PIC Simulator IDE, cần phải tuân thủ số nguyên tắc để không bị lỗi biên dịch Cột  đầu  ên  chỉ  dùng  cho các nhãn (Label)  Cột  thứ  2(nhấn  Tab  từ  cột  1)  chỉ  dành cho từ gợi nhớ của lệnh  Phải  có  dấu  phẩy  trước  các  dòng  chú thích  Cột  thứ  3  trở  đi(nhấn  Tab  từ  cột  2)  chỉ  dành cho toán hạng của lệnh  1.2.4 Ví dụ (chương trình viết PIC Simulator IDE) Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 27  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Cho LED đơn nối đến chân RB0, mức tích cực cho LED “1” Viết đoạn chương trình nhấp nháy LED đơn nói Chương trình: ; Đây chương trình viết cho ví dụ nhấp nháy LED đơn nối đến chân RB0 ; Người viết: Phạm Xuân Trung ; Ngày 13 tháng 11 năm 2013 ORG 00h ;PIC Simulator IDEcó thể dùng không dùng thị MAIN: BCF STATUS,RP1 ;2 lệnh sử dụng để lựa chọn bank để sử dụng ghi BSF STATUS,RP0 ; TRISB BCF TRISB,0 ;cấu hình cho chân RB0 ngõ BCF STATUS,RP1 ;2 lệnh sử dụng để lựa chọn bank để sử dụng ghi BCF STATUS,RP0 ; TRISB LOOP: BCF PORTB,0 ;xuất liệu cho chân RB0 để tắt đèn CALL DELAY ;gọi chương trình DELAY BSF PORTB,0 ;xuất liệu cho chân RB1 để bật đèn CALL DELAY ;gọi chương trình DELAY GOTO LOOP ;nhảy nhãn LOOP để tạo hiệu ứng nhấp nháy LED DELAY: MOVLW 0xFF ;bắt đầu chương trình DELAY,nạp giá trị 0xFF vào W MOVWF 0x20 ;nạp giá trị 0xFF vào ghi có địa 0x20 L_DELAY: DECFSZ 0x20,1 ;giảm kiểm tra xem liệu = nhảy qua GOTO L_DELAY ;tạo vòng lặp để giảm kiểm tra RETURN ;trở từ chương trình DELAY END ;PIC Simulator IDEcó thể dùng không dùng thị 2.1 Các thí nghiệm phần mềm 2.1.1 Bài 1: Sử dụng phần mềm PIC Simulator IDE 2.1.1.1 Bài 1.1: Thực việc cấu hình cho LED đơn nối đến PORT A, PORT B, PORT C, PORT D, PORT E 2.1.1.2 Bài 1.2:Thực việc thay đổi màu sắc từ Vàng, đỏ, xanh cây, xanh dương 2.1.1.3 Bài 1.3:Thực biên dịch ví dụ PIC Simulator IDE cung cấp 2.1.2 Bài 2: Lập trình mô PIC Simulator IDE 2.1.2.1 Bài 2.1:Bật LED đơn nối với chân RD1 Yêu cầu: bật LED RD1 sáng Hướng dẫn viết chương trình: Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 28  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Chọn bank ghi Cấu hình cho ghi TRISD chức ngõ (output) Chọn bank ghi Nạp giá trị cho bit RD1 Trả lời câu hỏi sau: a Sau thực xong chương trình, ghi sau có giá trị bao nhiêu?  W = ………………… TRISD = …………… PORTD = …………   b Sau thực xong chương trình, bank ghi chọn?    2.1.2.2 Bài 2.2 Bật tắt LED đơn nối với chân RB1 Yêu cầu: bật LED RD1 sáng sau tắt LED RD1, lặp lại chương trình  Hướng dẫn viết chương trình: Chọn bank ghi Cấu hình cho ghi TRISB chức ngõ (output) Chọn bank ghi Nạp giá trị cho bit RB1 Nạp giá trị cho bit RB1 Sử dụng lệnh GOTO để lặp lại chương trình Trả lời câu hỏi sau: a Sau thực xong chương trình, ghi sau có giá trị bao nhiêu?  W = ………………… TRISB = …………… PORTB = …………   b Sau thực xong chương trình, bank ghi chọn?    2.1.2.3 Bài 2.3 Bật LED nối với portC Yêu cầu: bật LED sáng.  Hướng dẫn viết chương trình: Chọn bank ghi Cấu hình cho ghi TRISC chức ngõ (output) Chọn bank ghi Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 29  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Nạp giá trị 0xFF cho ghi PORTC Trả lời câu hỏi sau: a Sau thực xong chương trình, ghi sau có giá trị bao nhiêu?  W = ………………… TRISC = …………… PORTC = …………   b Sau thực xong chương trình, bank ghi chọn?    2.1.2.4 Bài 2.4 Bật tắt LED đơn nối với portD Yêu cầu: bật LED đơn sáng sau tắt LED đơn, lặp lại chương trình.  Hướng dẫn viết chương trình: Chọn bank ghi Cấu hình cho ghi TRISD chức ngõ (output) Chọn bank ghi Nạp giá trị 0xFF cho ghi PORTD Nạp giá trị 0x00 cho ghi PORTD Sử dụng lệnh GOTO để lặp lại chương trình Trả lời câu hỏi sau: a Sau thực xong chương trình, ghi sau có giá trị bao nhiêu?  W = ………………… TRISD = …………… PORTD = …………   b Sau thực xong chương trình, bank ghi chọn?    2.2 Hướng dẫn sử dụng công cụ MPLAB Microchip 2.2.1 Thiết lập môi trường MPLAB Giả sử MPLAB IDE cài đặt máy tính bạn, cần đảm bảo công cụ ngôn ngữ MPLAB nhận diện Ở đây, sử dụng hợp ngữ để viết chương trình cho PIC, cần phải đảm bảo công cụ MPASM Toolsuite chọn MPLAB IDE Chạy Project Wizard Bước 1: Từ menu MPLAB, chọn Project>Set Language Tool Locations để mở hộp thoại đặt/kiểm tra vị trí tập tin thực thi công cụ ngôn ngữ Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 30  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Bước 2: Trong hộp thoại, hộp thoại “Registered Tools”, chọn “Microchip MPASM Toolsuite” Nhấn vào “+” để mở rộng Bước 3: Chọn “Executables” Nhấn vào “+”để mở rộng Bước 4: Chọn “MPLAB MPASM Assembler (mpasmwin.exe)” Tại khung “Location”, đường dẫn cho tập tin thực thi cần hiển thị Nếu đường dẫn hiển thị, bạn nhập vào đường dẫn hay duyệt thư mục để đến tập tin Bước 5: Chọn “MPLINK Object Linker (mplink.exe)” Tại khung “Location”, đường dẫn cho tập tin thực thi cần hiển thị Nếu đường dẫn hiển thị, thực tương tự Bước 6: Chọn “MPLIB Librarian (mplib.exe)” Tại khung “Location”, đường dẫn cho tập tin thực thi cần hiển thị Nếu đường dẫn hiển thị, thực tương tự bước Bước 7: Nhấn nút OK Như thiết lập xong công cụ ngôn ngữ MPLAB cho project 2.2.2 Tạo Project sử dụng Project Wizard Trong môi trường MPLAB, chọn menu Project>Project Wizard để mở wizard Nhấn vào nút Next> hình chào mừng Chọn PIC16F877A danh sách thả xuống “Device” Nhấn nút Next> để tiếp tục Ở mục trước thiết lập công cụ ngôn ngữ, cần kiểm tra lại thiết lập Tuy nhiên, chưa thiết lập công cụ ngôn ngữ thiết lập Hãy đảm bảo “Active Toolsuite” chọn “Microchip MPASM Toolsuite”, sau kiểm tra vị trí trình hợp dịch (assembler), trình liên kết Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 31  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   (linker), trình quản lý thư viện (Librarian) đúng, tương tự mục Nhấn nút Next> để sang bước Đặt tên cho project, chẳng hạn “123”, sau nhấn vào nút Browse để chọn vị trí đặt project Nhấn nút Next> bạn hoàn tất việc đặt tên chọn vị trí cho project Ở bước này, thêm tập tin cần thiết vào project Tham khảo hình minh họa phía a Trong hộp duyệt thư mục bên trái hộp thoại, chọn thư mục có chứa tập tin mã nguồn (có phần mở rộng asm) Trong hình minh hoạ, chọn tập tin “123.asm” để thêm vào project (bằng cách nhấn vào nút Add>>) b Vẫn hộp duyệt thư mục, tìm đến thư mục cài đặt MPLAB, sau dùng dấu ‘+’ để mở rộng đường dẫn sau đây: MPASM Suite\LKR Chọn tập tin “16f877a.lkr”, kịch liên kết cho chip PIC16F877A sử dụng project Nhấn vào nút Add>> để thêm tập tin vào project c Hãy đánh dấu chọn cho hộp chọn (checkbox) bên cạnh tập tin để chép chúng vào thư mục project (Các tập tin gốc giữ nguyên) Nhấn nút Next> để tiếp tục Hãy kiểm tra lại thông tin tóm tắt cho project, có sai sót bạn dùng nút Build Options>Project để mở hộp thoại Build Options Bước Chọn thẻ MPASM Assembler Với "Catagories: General", "Default Radix" lựa chọn "Hexadecimal" Với "Catagories: Output", "Diagnostics level" chọn phần chứa tất error, warnings and messages Sau check vào "Generate crossreference file" Bước Chọn thẻ MPLINK Linker Với "Catagories: (All Options)", "Hex File Format" chọn "INHX32" Sau check vào "Generate map file" Bước Chọn thẻ MPASM/C17/C18 Suite Với "Catagories: (All Options)", chọn "Build normal target (invoke MPLINK)" Bước Chọn OK để thiết lập thoát khỏi hộp thoại Bước Chọn Project>Save Project để lưu lại tất cấu hình project 2.2.4 Biên dịch project Chọn menu Project>Build All để biên dịch project thời Cửa sổ Output hẳn xuất biên dịch xong, hiển thị kết biên dịch, hình minh họa Ví dụ hẳn phải biên dịch thành công, bạn theo bước hướng dẫn, sử dụng tập tin mã nguồn kèm hướng dẫn Nếu việc biên dịch không thành công, kiểm tra phần sau: Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 33  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Bước Xem lại bước trước hướng dẫn Hãy đảm bảo thiết lập công cụ ngôn ngữ xác có tất tập tin project thiết lập biên dịch Bước Nếu sửa mã nguồn ví dụ, xem nhãn Build cửa sổ Output lỗi cú pháp mã nguồn Nếu có, click đúp chuột trái vào lỗi để đến dòng mã nguồn chứa lỗi Hãy sửa lỗi đó, sau thử biên dịch lại Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 34  [...]... OshonSoft.com cung cấp, có thể truy cập tại website http://www.oshonsoft.com/pic.html để biết thêm thông tin Tải bản mới nhất tại http://www.oshonsoft.com/downloadspage.php Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 21  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Chương trình được sử dụng để mô phỏng cho một số loại vi điều khiển PIC... hiển thị Chương trình sẽ hiện thị mức độ hoàn thành nhiệm vụ Click vào nút “ Show details” để xem chi tiết Khi chương trình hoàn thành việc cài đặt sẽ hiển thị “Completed” Click chuột trái vào nút “Close” để kêt thúc việc cài đặt 4  Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 23  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   1.2.2... có một cây quản lý tập tin như hình minh họa phía trên Tên của không gian làm việc (workspace) là “123.mcw”, tên của project là “123.mcp”, và tất cả các tập tin của project được liệt kê dưới loại tập tin tương ứng của chúng Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 32  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   2.2.3 Thiết... được các bài thí nghiệm, cần phải nắm chức năng và cách sử dụng của các thanh ghi TRIS (với = A,B,C,D,E) Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 12  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Nhóm các thanh ghi TRIS được sử dụng để cấu hình cho các cổng xuất/nhập (I/O) của vi xử lý PIC16F877A sẽ trở thành ngõ... = 1, nên khi có tín hiệu hoặc 0 hoặc 1 gửi đến chân RA0 thì bit PORTA tương ứng cũng sẽ nhận hoặc 0 hoặc 1 Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 13  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   1.1.4 Cổng xuất/nhập song song Vi xử lý PIC16F877A sử dụng 5 PORT I/O để làm nhiệm vụ truy xuất dữ liệu Các cổng đó là A,... ta thực hiên lệnh MOVWF để dịch chuyển giá trị trong thanh ghi W sang thanh ghi cần gán Ví dụ: MOVLW 15; W=15 Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 14  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   MOVWF PORTB; PORTB =15 Tuy nhiên, còn có cách khác thông qua thanh ghi “con trỏ” FSR, khi thanh ghi “con trỏ” FSR trỏ đến... thanh ghi COUNT2 bắt buộc phải qua thanh ghi “trung gian” W thông qua lệnh MOVF Vidụ: MOVF COUNT1,W MOVWF COUNT2 Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 15  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Đầu tiên dịch chuyển giá trị có được ở thanh ghi COUNT1 vào W, sau đó thông qua lệnh MOVWF dịch chuyển giá trị có được ở... trong thanh ghi W Bit trạng thái: C, DC, Z Ví dụ: MOVLW 100; W=100 SUBLW 155 MOVWF PORTB; PORTB =55 d Lệnh SUBWF Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 16  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   Cú pháp: SUBWF f,d ( d ∈ [0,1]) Tác dụng: Lấy giá trị trong thanh ghi f đem trừ cho thanh ghi W Kết quả được lưu trong thanh... ghi W Bit trạng thái: Z Chú ý: And các bit tương ứng Ví dụ: MOVLW 1111 0000b ANDLW 0011 1111b; W = 0011 0000b Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 17  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   b Lệnh ANDWF Cú pháp: ANDWF f,d (d ∈[0,1]) Tác dụng: Thực hiện phép toán AND giữa dữ liệu chứa trong hai thanh ghi W và f... lưu trong thanh ghi W nếu d = 0 hoặc thanh ghi f nếu d = 1 Bit trạng thái: không có h Lệnh RLF Cú pháp: RLF f,d Biê n soạ n: Phạ m Xuâ n Trung, Trường Đạ i họ c Bá ch khoa Đà Nang     Page 18  TAI LIẸ U THỰC TẠ P CHUYEN ĐE 1 2012 (DUNG CHO SINH VIEN CƯ NHAN VẠ T LY)   (d∈[0,1]) Tác dụng: Dịch trái các bit dữ liệu trong thanh ghi f qua cờ carry Kết quả được lưu trong thanh ghi W nếu d=0 hoặc

Ngày đăng: 05/08/2016, 16:43

TỪ KHÓA LIÊN QUAN

w