Giáo trình vi điều khiển PIC Nguyễn Đình Phú

Giáo trình vi điều khiển PIC Nguyễn Đình Phú

Các chương cụ thể trong giáo trình như sau:

Chương 1: Đặc tính, cấu trúc, chức năng các port

Chương 2: Tổ chức bộ nhớ, thanh ghi

Chương 3: Lệnh hợp ngữ

Chương 4: Ngôn ngữ lập trình C

Chương 5: Giao tiếp LED, LCD, phím đơn, phím ma trận

Chương 6: Timer – Counter

Chương 7: Chuyển đổi tính hiệu tương tự sang số

Chương 8: Ngắt

Chương 9: Truyền dữ liệu UART

Chương 10: Điều chế độ rộng xung – PWM

DOWNLOAD

vi xu ly 2 - nguyen dinh phu.pdf

Giới thiệu, nội dung môn học

CHƯƠNG 1. THIẾT KẾ CÁC ỨNG DỤNG DÙNG VI ĐIỀU KHIỂN 2 I. BÀI THIẾT KẾ SỐ 1 2 1. ĐẶT VẤN ĐỀ 2 2. GIẢI QUYẾT VẤN ĐỀ 2 3. THIẾT KẾ SÔ ĐOÀ KHỐI CỦA HỆ THỐNG 2 4. PHÂN TÍCH CHỨC NĂNG CÁC KHỐI 3 5. THIẾT KẾ MẠCH 4 6. VIẾT CHƯƠNG TRÌNH CHO HỆ THỐNG 5 II. BÀI THIẾT KẾ SỐ 2 16 1. ĐẶT VẤN ĐỀ 16 2. GIẢI QUYẾT VẤN ĐỀ 16 3. PHÂN TÍCH CÁC ĐẶC TÍNH CỦA IC SỐ 16 4. THIẾT KẾ SÔ ĐOÀ KHỐI VÀ SÔ ĐOÀ MẠCH KIỂM TRA IC SỐ 18 5. THIẾT KẾ PHẦN MỀM 23 CHƯƠNG 2. VI ĐIỀU KHIỂN PIC 16F877A 37 I. TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 42 II. MỘT SỐ ĐẶC TÍNH CỦA VI ĐIỀU KHIỂN PIC 42 III. VI ĐIỀU KHIỂN PIC 16F877A 44 1. TỔNG QUÁT VỀ PIC16F877A 44 a. Giới thiệu 44 b. Sô đoà khối 45 c. Sô đoà chân và chức năng các chân 45 2. TỔ CHỨC BỘ NHỚ 50 a. Cấu trúc bộ nhớ chưông trình 50 b. Cấu trúc bộ nhớ dữ liệu 50 c. File thanh ghi kết quả tổng quát 51 d. Các thanh ghi có chức năng đặc biệt 54 e. Phân trang bộ nhớ chưông trình 62 f. Các thanh ghi địa chỉ gián tiếp, thanh ghi INDF và FSR 63 3. DỮ LIỆU EEPROM VÀ BỘ NHỚ CHƯƠNG TRÌNH FLASH 64 a. Thanh ghi EEADR và EEADRH 65 b. Thanh ghi EECON1 và EECON2 65 c. Đọc dữ liệu từ bộ nhớ EEPROM 66 d. Ghi dữ liệu vào bộ nhớ EEPROM 66 e. Đọc dữ liệu từ bộ nhớ chưông trình Flash 68 f. Ghi dữ liệu vào bộ nhớ chưông trình Flash 69 g. Bảo vệ chống ghi nhầm 71 h. Hoạt động trong lúc bảo vệ chống ghi 71 4. CÁC PORT XUẤT NHẬP (IO) 71 a. PORTA và thanh ghi TRISA 72 b. PORTB và thanh ghi TRISB 74 c. PORTC và thanh ghi TRISC 76 d. PORTD và thanh ghi TRISD 78 e. PORTE và thanh ghi TRISE 79 5. BỘ ĐỊNH THỜI TIMER0 81 a. Ngắt của Timer0 82 b. Timer0 với nguoàn xung đếm từ bên ngoài 83 c. Bộ chia trước 83 6. BỘ ĐỊNH THỜI TIMER1 84 a. Hoạt động của Timer1 ở chế độ định thời 85 b. Hoạt động của Timer1 ở chế độ Counter 85 c. Hoạt động của Timer1 ở chế độ Counter đoàng bộ 85 d. Hoạt động của Timer1 ở chế độ Counter bất đoàng bộ 86 e. Đọc và ghi Timer1 trong chế độ đếm không đoàng bộ 86 f. Bộ dao động của Timer1 86 g. Reset Timer1 sử dụng ngõ ra CCP Trigger 86 h. Reset cặp thanh ghi TMR1H, TMR1L của Timer1 87 7. BỘ ĐỊNH THỜI TIMER2 87 a. Bộ chia trước và postscaler của Timer2 88 b. Ngõ ra của TMR2 89 8. KHỐI CHUYỂN ĐỔI TƯÔNG TỰ SANG SỐ ADC 89 a. Ngõ ra của TMR2 93 b. Các yêu cầu nhận dữ liệu ADC 93 c. Lựa chọn xung clock cho ADC 93 d. Định cấu hình cho các ngõ vào tưông tự của ADC 94 e. Chuyển đổi ADC 94 f. Các thanh ghi lưu kết quả của ADC 95 g. Hoạt động chuyển đổi ADC trong chế độ Sleep 95 h. Ảnh hưởng của reset 95 9. KHỐI SO SÁNH 96 a. Hoạt động so sánh 98 b. Điện áp so sánh 99 c. Thời gian đáp ứng 99 d. Ngõ ra bộ so sánh 99 e. Ngắt của bộ so sánh 100 f. Hoạt động của bộ so sánh ở chế độ Sleep 100 g. Ảnh hưởng của reset 100 h. Kết nối các ngõ vào tưông tự 101 10. CÁC CẤU TRÚC ĐẶC BIỆT CỦA CPU 103 11. CẤU HÌNH BỘ DAO ĐỘNG 105 a. Các loại mạch dao động 105 b. Dao động thạch anh/tụ Ceramic 105 c. Bộ dao động RC 107 12. MẠCH RESET CPU 107 a. Reset MCLR 110 b. Reset khi mới cấp điện POR 111 c. Timer reset khi mới cấp điện (PWRT) 111 d. Bộ dao động Start-up (OST) 111 e. Reset Brown-out (BOR) 111 f. Trình tự thời gian 111 g. Thanh ghi trạng thái/thanh ghi công suất 112 13. HOẠT ĐỘNG NGẮT 113 a. Ngắt ngoài INT 114 b. Ngắt TMR0 114 c. Ngắt PORTB thay đổi 114 d. Lưu dữ liệu khi xảy ra ngắt 114 14. HOẠT ĐỘNG CỦA WATCHDOG TIMER WDT 115 15. HOẠT ĐỘNG CỦA CPU Ở CHẾ ĐỘ NGỦ SLEEP 115 a. Đánh thức cpu khỏi chế độ ngủ 116 b. Đánh thức cpu dùng các ngắt 116 16. MẠCH GỠ RỐI 117 17. KIỂM TRA CHƯƠNG TRÌNH/ BẢO VỆ BẰNG MÃ 118 18. MÃ NHẬN DẠNG 118 19. LẬP TRÌNH TUẦN TỰ CỦA MẠCH TÍCH HỢP BÊN TRONG ICSP (In-Circuit Serial Programming) 118 20. LẬP TRÌNH ĐIỆN ÁP THẤP ICSP (NGUOÀN ĐÔN) 118 21. SÔ ĐOÀ NGUYÊN LÝ GIAO TIẾP GIỮA MÁY TÍNH VÀ PIC 16F877A 119 a. Mạch nạp PIC trực tiếp từ cổng COM 120 b. Mạch nạp PIC gián tiếp từ cổng COM qua ic max232 121 c. Mạch nạp PIC qua cổng LPT 122 CHƯƠNG 3. CHƯƠNG TRÌNH BIÊN DỊCH VÀ NẠP PIC16F877A 123 I. CHƯƠNG TRÌNH BIÊN DỊCH 126 1. CHƯƠNG TRÌNH BIÊN DỊCH MPLAB IDE 126 2. CHƯƠNG TRÌNH BIÊN DỊCH CCS C 128 II. CHƯƠNG TRÌNH NẠP CHO PIC 131 1. CHƯƠNG TRÌNH NẠP WINPIC800 131 2. CHƯƠNG TRÌNH NẠP IC-PRO 132 III. NGÔN NGỮ LẬP TRÌNH ASM CỦA MPLAB 135 1. CÁC QUY ƯỚC CỦA NGÔN NGỮ MPLAB 135 a. [nhãn] 136 b. Lệnh và các tham số 136 c. Quy ước kí hiệu trong MPLAB 136 2. DIỄN TẢ CÁC LỆNH 138 IV. NGÔN NGỮ LẬP TRÌNH C CỦA CCS C 148 1. GIỚI THIỆU CCS C 148 2. NGÔN NGỮ LẬP TRÌNH C TRÊN CCS C 148 3. KHAI BÁO VÀ SỬ DỤNG BIẾN, HẰNG, MẢNG 149 a. Khai báo biến, hằng, mảng 149 b. Cách sử dụng biến 149 4. CÁC CẤU TRÚC LỆNH 149 5. CHỈ THỊ TIỀN XỬ LÝ 150 a. #ASM và #ENDASM 151 b. #INCLUDE 151 c. #BIT, #BYTE, #LOCATE và #DIFINE 151 d. #DEVICE 151 e. #ORG 152 f. #USE 152 g. Một số chỉ thị tiền xử lý khác 153 6. CÁC HÀM XỬ LÝ SỐ, XỬ LÝ BIT, DELAY 153 a. Các hàm xử lý số 153 b. Các hàm xử lý bit và các phép toán 153 c. Các hàm xử lý bit và các phép toán 155 7. XỬ LÝ ADC VÀ CÁC HÀM IO TRONG C 155 a. Các hàm xử lý ADC 155 b. SETUP_ADC_port (value) 156 c. SETUP_ADC_channel (channel) 156 d. Read_ADC (mode) 156 e. Các hàm IO trong C 157 8. KHAI BÁO NGẮT VÀ CÁC HÀM THIẾT LẬP HOẠT ĐỘNG NGẮT 159 a. Khai báo ngắt 159 b. Các hàm thiết lập hoạt động ngắt 160 c. Các hàm giao tiếp với máy tính qua cổng COM 160 V. CÁC CHƯƠNG TRÌNH VÍ DỤ 161 1. CHƯƠNG TRÌNH ĐIỀU KHIIỂN 8 LED ĐÔN CHÓP TẮT 161 2. CHƯƠNG TRÌNH ĐIỀU KHIIỂN 1 ĐIỂM SÁNG DI CHUYỂN TỪ TRÁI SANG PHẢI 164 3. CHƯƠNG TRÌNH ĐIỀU KHIIỂN 8 LED SÁNG DOÀN 166 4. CHƯƠNG TRÌNH ĐIỀU KHIIỂN ĐẾM TỪ 0 ĐẾN 9999 TRÊN LED 7 ĐOẠN 170 5. CHƯƠNG TRÌNH ĐIỀU KHIIỂN LED MA TRẬN HIỂN THỊ CHUỖI “SPKT” 17