Các chân vào/ra của vi điều khiển PIC 18F4520 mang nhiều chức năng, nó có thể được thiết lập là chân vào/ra dữ liệu hay là các chân chức năng đặc biệt của các bộ ngoại vi, sử dụng các[r]
(1)BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI TRƯỜNG CAO ĐẲNG KỸ NGHỆ II
KHOA ĐIỆN – ĐIỆN TỬ
ĐỀ CƯƠNG BÀI GIẢNG MODUL:
ĐIỀU KHIỂN HỆ THỐNG CĐTSDVĐK
GVBS: Bùi Ngọc An
(2)MỤC LỤC
Chương GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC CỦA MICROCHIP
1 Giới thiệu PIC
2 Các loại PIC thông dụng
3 Ứng dụng PIC
Chương KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520 Sơ đồ khối
2 Sơ đồ chân
3 Tổ chức nhớ
4 Khối tạo dao động 13
5 Hoạt động Reset 15
6 Các Port vào / 17
Chương PHẦN MỀM MPLAB VÀ TRÌNH DỊCH MCC18 Cài đặt MPLAB 29
2 Sử dụng MPLAB 29
3 Trình dịch MCC18 40
Chương HOẠT ĐỘNG VÀO RA Lập Trình xuất 50
2 Lập Trình nhập 50
3 Hoạt động xuất/nhập 51
4 Bài tập ứng dụng 52
Chương 5: HOẠT ĐỘNG ĐỊNH THỜI Giới thiệu 53
2 Timer 53
3 Timer 60
4 Lập trình với timer 64
Chương 6: LẬP TRÌNH VỚI LCD 1602 Khái niệm 69
2 Nguyên lý hoạt động 70
3 Nguyên tắc hiển thị LCD 70
4 Ví dụ lập trình điều khiển hiển thị LCD 71
Chương 7: HOẠT ĐỘNG NGẮT Khái niệm 75
2 Tổ chức ngắt PIC 18F4520 75
3 Ngắt 77
4 Các ghi liên quan 77
(3)Chương 8: MODULE CCP (CAPTURE / COMPARE / PWM)
1 Giới thiệu 91
2 Các ghi liên quan 93
3 Sử dụng PWM 94
4 Lập trình điều chế độ rộng xung 96
Chương 9: BỘ CHUYỂN ĐỔI TƯƠNG TỰ - SỐ (ADC) Giới thiệu 99
2 Các ghi liên quan 101
3 Điều khiển hoạt động chuyển đổi A/D 104
4 Lập trình sử dụng ADC 111
Chương 10: TRUYỀN THÔNG NỐI TIẾP VÀ GIAO TIẾP GIỮA VI ĐIỀU KHIỂN PIC Giới thiệu 116
2 Các ghi liên quan 118
3 Tốc độ baud 121
4 Ngắt USART 128
(4)Chương
GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC CỦA MICROCHIP
1 GIỚI THIỆU VỀ PIC
PIC viết tắt “Programable Intelligent Computer”, tạm dịch “máy tính thơng minh khảtrình” hãng General Instrument đặt tên cho vi điều khiển họ PIC1650 thiết kế để dùng làm thiết bị ngoại vi cho vi điều khiển CP1600 Vi điều khiển sau nghiên cứu phát triển thêm từ hình thành nên dịng vi điều khiển PIC ngày
Hình 1.1 Vi điều khiển PIC
2 CÁC LOẠI PIC THƠNG DỤNG
Các kí hiệu vi điều khiển PIC:
PIC12xxxx: độ dài lệnh 12 bit
PIC16xxxx: độ dài lệnh 14 bit
PIC18xxxx: độ dài lệnh 16 bit
C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM) F: PIC có nhớ flash
LF: PIC có nhớ flash hoạt động điện áp thấp LV: LF, kí hiệu cũ
Bên cạnh số vi điều khiển có kí hiệu xxFxxx EEPROM, có chữ A cuối flash (ví dụ PIC16F877 EEPROM, PIC16F877A flash)
(5)Ở Việt Nam phổ biến họ vi điều khiển PIC hãng Microchip sản xuất Cách lựa chọn vi điều khiển PIC phù hợp: Trước hết cần ý đến sốchân vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lượng chân khác nhau, chí có vi điều khiển có chân, ngồi cịn có vi điều khiển 28, 40, 44, … chân Cần chọn vi điều khiển PIC có nhớ flash để nạp xóa chương trình nhiều lần hơn, cần ý đến khối chức tích hợp sẵn vi điều khiển, chuẩn giao tiếp bên sau cần ý đến nhớ chương trình mà vi điều khiển cho phép
3 ỨNG DỤNG CỦA PIC
Ngày PIC ứng dụng rộng rãi thực tế, từ vật dụng đơn giản hệ thống điều khiển phức tạp công nghiệp
(6)Chương
KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520
1 SƠ ĐỒ KHỐI
Hình 2.1 Sơ đồ khối PIC18F4520 Các khối PIC 18F4520 bao gồm:
(7) Tần số làm việc tối đa 40 MHz, sản xuất công nghệ nanoWatt
Thiết kế theo kiến trúc Havard, tập lệnh RISC
Sử dụng kỹ thuật đường ống lệnh (Instruction Pipelining)
Đơn vị logic học (ALU: Arithmetic Logical Unit)
Thanh ghi làm việc (WREG: work register )
Bộ nhân phần cứng (8x8 Multiply), kết chứa cặp ghi (PRODH, PRODL)
Thanh ghi đếm chương trình (PC: Program Counter) có 21 bit bao gồm ghi PCL(PC-Low) chứa bit từ 7-0, ghi PCH (PC-High) chứa bit từ 15-8, ghi PCU (PC-upper) chứa bit từ 20-16
Thanh ghi trỏ ngăn xếp STKPTR (Stack Pointer)
31 mức ngăn xếp (31 level stack)
Thanh ghi lựa chọn băng (BSR: Bank Select Register)
Thanh ghi trỏ liệu gián tiếp FSR (Indirect Data Memory Address Pointer)
Bộ nhớ (Memory):
Bộ nhớ chương trình (Program Memory) bao gồm 32 Kbytes nhớ ROM (Read-only Memory) kiểu Flash
Bộ nhớ liệu (Data Memory) bao gồm 1536 byte SRAM (Static Random Access Memory), 256 byte EEPROM
Bộ phát xung hệ thống (Oscillator): Nguồn xung từ bên từ phát xung hệ thống qua nhân chia tần số để lựa chọn lấy tần số thích hợp để làm xung hệ thống
Nguồn xung đưa vào chip qua chân OSC1 OSC2
Nguồn xung phụ đưa vào chip qua chân T1OSI, T1OSO
Bộ phát xung nội INTRC tần số 31kHz
Bộ phát xung nội chíp tần số MHz
Watchdog Timer (WDT): timer có chức đặc biệt, bị tràn khởi động lại hệ thống Thời gian khởi động lại hệ thống lựa chọn từ 4ms đến 131,072s WDT khởi tạo đầu chương trình, thân chương trình “chèn” lệnh reset WDT cho vi điều khiển thực lệnh, WDT chưa bị tràn Mục đích việc sử dụng WDT tránh cho vi điều khiển vơ tình thực phải vịng lặp chết (dead loop) mà khơng
(8) Bộ Debugger (In-Circuit Debugger): Mạch Debugger chíp giúp người lập trình kiểm sốt lỗi chương trình cách cho vi điều khiển hoạt động chế độ chạy lệnh, nhóm lệnh hay tồn chương trình
Khối phát tín hiệu reset: Mạch phát tín hiệu reset có khả phát 03 nguồn reset:
Reset từ chân MCLR
Reset bật nguồn (POR: Power-on Reset)
Reset nguồn yếu (BOR : Brown-out Reset)
Khối quản lý lỗi phát xung (Fail-Safe Clock Monitor): Khối dụng để quản lý an toàn phát xung hệ thống
Khối định thời khởi động phát xung (Oscillator Start-up Timer): Khối sử dụng để tạo thời gian trễ chờ cho phát xung ổn định
Thiết bị ngoại vi (Peripheral): PIC18f4520 tích hợp thiết bị ngoại vi sau:
Bộ phát điện áp cao/thấp HLVD(High/low-Voltage Detect)
Bộ nhớ lưu liệu tắt nguồn EEPROM
04 đếm, định thời 16 bit: Timer0, Timer1, Timer2 Timer3
01 so sánh tín hiệu tương tự (Comparator)
02 CCP1, CCP2 (Capture, Compare, PWM : Chụp, So sánh, xung Pwm); 01 ECCP (Enhanced CCP)
01 cổng truyền thông nối tiếp đồng (Master Synchronous Serial Port) hoạt động chế độ SPI I2C
01 cổng truyền thông nối tiếp đồng bộ/không đồng tăng EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter), giúp vi điều khiển PIC giao tiếp với giao tiếp với cổng COM máy tính
13 kênh biến đổi tương tự - số (ADC) độ phân giải 10 bit
Khối giao tiếp vào/ra số: Vi điều khiển PIC18F4520 có cổng vào/ra A, B, C, D E Mỗi cổng có ghi đệm liệu tương ứng PORTA, PORTB, PORTC, PORTD PORTE, ghi định địa theo byte theo bit
PORTA : RA7 - RA0
PORTB : RB7 - RB0
PORTC : RC7 - RC0
PORTD : RD3 - RD0
(9)2 SƠ ĐỒ CHÂN
Sơ đồ chân dạng PDIP (Lead Plastic Dual In-Line Package)
Hình 2.2 Sơ đồ chân PIC 18F4520 dạng PDIP
3 TỔ CHỨC BỘ NHỚ
Bộ nhớ vi điều khiển PIC 18F4520 bao gồm loại:
Bộ nhớ chương trình (Program memory)
Bộ nhớ liệu RAM (Data RAM)
Bộ nhớ liệu EEPROM (Data EEPROM)
Bộ nhớ PIC 18F4520 thiết kế theo kiến trúc Havard, nhớ chương trình nhớ liệu thiết kế riêng đường Bus, cho phép CPU truy cập lúc tới nhớ chương trình nhớ liệu Bộ nhớ liệu EEPROM sử dụng để lưu trữ liệu điện
Bộ nhớ chương trình
(10)Vector Reset PIC 18F4520 đặt địa 0000h, reset nội dung ghi đếm chương trình PC xóa Các ghi PIC 18F4520 tải lại giá trị mặc định
Hình 2.3 Sơ đồ tổ chức nhớ chương trình ngăn xếp
(11)Hình 2.4 Giản đồ xung đọc mã lệnh thực lệnh PIC 18F4520
Bộ nhớ liệu RAM
Hình 2.5 Sơ đồ tổ chức nhớ liệu RAM
(12)liệu, vùng ghi chức đặc biệt SFR (Special Function Registers) chứa ghi chức điều khiển ngoại vi CPU
Bộ nhớ liệu RAM chia thành 16 Bank từ Bank đến Bank15, vùng RAM đa dụng nằm từ Bank đến Bank 2, ghi SFR nằm Bank 15 Vùng địa từ 300h đến EFFh không sử dụng, đọc vùng trả giá tri 00h Bốn bit thấp ghi lựa chọn băng BSR (Bank Select Register) sử dụng để lựa chọn truy cập băng
Hình 2.6 Phân bổ địa ghi chức đặc biệt SFR
(13)Bộ nhớ liệu EEPROM PIC 18F4520 nhớ mảng không bị liệu điện, độc lập với nhớ chương trình nhớ liệu RAM, sử dụng để lưu trữ liệu lâu dài Nó ghi/đọc 1.000.000 lần, liệu lưu trữ nhớ 100 năm
4 KHỐI TẠO DAO ĐỘNG
PIC 18F4520 hoạt động 10 chế độ tạo dao động khác Việc lựa chọn chế độ tạo dao động nhờ bit FOSC3:FOSC0 ghi CONFIG1H
Hình 2.7 Sơ đồ khối tạo dao động PIC 18F4520 Các chế độ tạo dao động:
LP (Low-Power Crystal) nguồn xung thạch anh ngoài, nguồn thấp
XT (Crystal/Resonator) thạch anh/bộ cộng hưởng bên
HS (High-Speed Crystal/Resonator) thạch anh/bộ cộng hưởng bên tốc độ cao
HSPLL nhân lần tần số HS vịng khóa pha (Phase Locked Loop)
RC (External Resistor/Capacitor) tạo dao động mạch RC bên ngoài, phát xung FOSC/4 chân RA6
RCIO tạo dao động mạch RC ngoài, vào/ra chân RA6
INTIO1 tạo dao động nội, phát xung FOSC/4 chân RA6, vào/ra chân RA7
INTIO2 tạo dao động nội, vào/ra chân RA6 RA7
(14) ECIO phát xung ngoài, vào/ra chân RA6
Tạo dao động thạch anh (Crystal/ Ceramic Resonator)
Trong chế độ tạo dao động LP, XT, HS, HSPLL sử dụng thạch anh (Crystal) chưa có tụ điện mạch cộng hưởng thạch anh bọc gốm có tụ điện (Ceramic Resonator) Ở chế độ tạo dao động kết nối với vi điều khiển PIC 18F4520 qua hai chân OSC1 OSC2
- Sơ đồ kết nối vi điều khiển với phát xung ngồi:
Hình 2.8 Sơ đồ kết nối với dao động thạch anh/mạch cộng hưởng - Lựa chọn giá trị tụ điện sử dụng mạch cộng hưởng thạch anh bọc gốm
Bảng 2.1 Lựa chọn giá trị tụ điện sử dụng Ceramic Resonator - Lựa chọn giá trị tụ điện sử dụng thạch anh chưa có tụ điện (Crystal)
Bảng 2.2 Lựa chọn tụ điện sử dụng thạch anh (Crystal)
(15)Chế độ EC ECIO sử dụng nguồn xung làm xung hệ thống nối qua cổng NOT trước đưa vào chân OSC1/CLKI
- Chế độ nguồn xung EC (External Clock), nguồn xung lấy từ bên nối qua cổng NOT trước đưa vào OSC1/CLKI chân OSC2/CLKO phát tần số ¼ tần số đầu vào
Hình 2.9 Chế độ dao động EC
- Chế độ nguồn xung ECIO (External Clock Input Output), nguồn xung lấy từ bên nối qua cổng NOT trước đưa vào OSC1/CLKI chân OSC2/CLKO chân vào/ra RA6
Hình 2.10 Chế độ dao động ECIO
5 HOẠT ĐỘNG RESET
Vi điều khiển PIC 18F4520 có nguồn Reset:
Reset bật nguồn POR (Power-on Reset)
Reset từ chân MCLR, sử dụng trình hoạt động bình thường
Reset từ chân MCLR, sử dụng chế độ quản lý nguồn
Reset Watchdog Timer (WDT)
Reset sụt điện áp nguồn BOR (Brown-out Reset)
Reset lệnh RESET
Reset đầy ngăn xếp (Stack Full Reset)
(16)Hình 2.11 Mơ tả nguồn Reset PIC 18F4520
a Reset từ chân MCLR
Nguồn reset MCLR đươc nối từ mạch reset bên qua chân MCLR/RE3 Nếu bit MCLRE ghi CONFIG3H đặt chân MCLR/RE3 chân reset, đặt MCLRE = “0” chân MCLRE chân vào/ra PORTE Khi có mức điện áp thấp đặt lên chân MCLR hệ thống thực reset
Hình 2.12 Mạch reset ngồi MCLR
(17)Khi nguồn cấp vào chân VDD, khối reset POR phát sườn dương chân VDD sau phát tín hiệu reset vi điều khiển Bit POR ghi RCON báo trạng thái reset POR, POR = ‘1’ khơng phát tín hiệu reset, POR= ‘0’ phát tín hiệu reset POR
Giá trị linh kiện: R < 40 kΩ; R1 >= 1KΩ
Hình 2.13 Mạch reset bật nguồn POR
6 CÁC PORT VÀO/RA
Vi điều khiển PIC 18F4520 có 36 chân vào/ra chia thành cổng PORTA, PORTB, PORTC, PORTD có chân PORTE có chân Các chân vào/ra vi điều khiển PIC 18F4520 mang nhiều chức năng, thiết lập chân vào/ra liệu chân chức đặc biệt ngoại vi, sử dụng ghi điều khiển ngoại vi để lựa chọn chức cho chân Mỗi cổng vào/ra vi điều khiển PIC 18F4520 có ghi để điểu khiển hoạt động:
Thanh ghi PORT ghi liệu, định địa theo byte theo bit, sử dụng để đệm đọc/ghi liệu cổng
Thanh ghi LAT ghi chốt liệu đầu (bằng ‘1’ đầu chốt mức 1, ‘0’ đầu chốt mức 0)
Thanh ghi TRIS ghi lựa chọn hướng liệu (bằng ‘0’ chiều ra, ‘1’ chiều vào)
6.1 Cấu trúc chung chân vào/ra
(18)Hình 2.14 Cấu trúc chung chân vào/ra
6.2 Port A
PORT A gồm bit tương ứng với chân ký hiệu từ RA0 đến RA7 Các chân PORTA đọc/ghi theo bit byte
a Chức chân PORTA
Chân Chức năng Thanh ghi TRIS I/O Kiểu
I/O Mô tả
RA0/AN0 RA0 O DIG Chiều liệu sử dụng bit LATA<0>; không bị ảnh hưởng đầu vào tương tự
1 I TTL Chiều vào liệu sử dụng bit PORTA<0>
AN0 I ANA Đầu vào kênh biến đổi A/D chân đầu vào C1- so sánh Mặc đinh Reset POR
RA1/AN1 RA1
0 O DIG Chiều liệu sử dụng bit LATA<1>; không bị ảnh hưởng đầu vào tương tự
1 I TTL Chiều vào liệu sử dụng bit PORTA<1>
AN1 I ANA Đầu vào kênh biến đổi A/D chân đầu vào C2- so sánh Mặc đinh Reset POR RA2/AN2/
VREF-/CVREF
RA2 O DIG Chiều liệu sử dụng bit LATA<2>; Cấm chức đầu CVREF cho phép I TTL Chiều vào liệu sử dụng bit PORTA<2> Chức
năng bị cấm chức tương tự đầu CVREF cho phép
AN2 I ANA Đầu vào kênh biến đổi A/D chân đầu vào C2+ so sánh Mặc đinh Reset POR
VREF- I ANA A/D đầu vào điện áp tham chiếu mức thấp so sánh
(19)RA3/AN3/VREF+ RA3 O DIG Chiều liệu sử dụng bit LATA<3>
1 I TTL Chiều vào liệu sử dụng bit PORTA<3>; Chức bị cấm đầu vào tương tự cho phép AN3 I ANA Đầu vào kênh biến đổi A/D hoặc chân
đầu vào C1+ so sánh Mặc đinh Reset POR
VREF+ I ANA A/D đầu vào điện áp tham chiếu mức cao so sánh
RA4/T0CKI/C1OUT RA4 O DIG Chiều liệu sử dụng bit LATA<4>
1 I ST Chiều vào liệu sử dụng bit PORTA<4>; mặc định reset POR
T0CKI I ST Cấp xung cho Timer0
C1OUT O DIG Đầu so sánh; ưu tiên vào/ra liệu RA5/AN4/SS/ RA5 O DIG Chiều liệu sử dụng bit LATA<5>; không ảnh
hưởng đầu vào tương tự HLVDIN/C2OUT
1 I TTL Chiều vào liệu sử dụng bit PORTA<5>; Chức bị cấm cho phép đầu vào tương tự AN4 I ANA Đầu vào kênh biến đổi A/D mặc định
reset BOR
SS I TTL Đầu vào SS(lựa chọn t/b tớ) Module MSSP
HLVDIN I ANA Đầu vào Module phát điện áp cao/thấp (High/Low-Voltage Detect)
C2OUT O DIG Đầu so sánh;được ưu tiên chức vào/ra liệu
OSC2/CLKO/RA6 RA6
0 O DIG
Chiều liệu sử dụng bit LATA<6> Chức cho phép chế độ RCIO, INTIO2 and ECIO
1 I TTL Chiều vào liệu sử dụng bit PORTA<6> Chế độ cho phép chế độ RCIO, INTIO2 ECIO
OSC2 x O ANA Kết nối với phát xung ( chế độ XT, HS LP)
CLKO x O DIG Chân phát xung hệ thống(FOSC/4) RC, INTIO1
EC
OSC1/CLKI/RA7 RA7
0 O DIG Chiều liệu sử dụng bit LATA<7> Chức bị cấm chế độ dao động
1 I TTL Chiều vào liệu sử dụng bit PORTA<7> Chức bị cấm chế độ dao động
OSC1 x I ANA Kêt nối với dao động
CLKI x I ANA Kết nối với nguồn xung bên
Bảng 2.3 Chức chân PORTA
Chú thích:
DIG = Digital level output (đầu số); TTL = đệm đầu vào chuẩn TTL (Transistor-Transistor Logic ); ST = đệm đầu vào sử dụng Schmitt Trigger; ANA = vào/ra tương tự; x= không xác định; I=Input (vào); O=Output (ra)
(20)b Các ghi liên quan đến PORT A
Các ghi liên quan đến PORTA gồm ghi sau:
PORTA: Thanh ghi liệu PORTA
LATA: Thanh ghi chốt liệu đầu PORTA
TRISA: Thanh ghi lựa chọn hướng liệu PORTA (bit tương ứng ghi đặt ‘0’ chân tương ứng có chiều ra, ‘1’ chiều vào)
ADCON1: Là ghi điều khiển A/D, thiết lập chân vào/ra số hay tương tự
CMCON: Là ghi điều khiển so sánh
CVRCON ghi điều khiển điện áp tham chiếu so sánh
Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
LATA LATA7 LATA6 Thanh ghi chốt liệu PORTA
TRISA TRISA7 TRISA6 Thanh ghi hướng liệu PORTA
ADCON1 — — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0
CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0
CVRCON CVREN CVROE CVRR CVRSS CVR3 CVR2 CVR1 CVR0
Bảng 2.4 Các ghi liên quan đến PORTA
6.3 Port B
PORTB gồm bit, tương ứng với chân ký hiệu từ RB0 đến RB7 Các chân PORTB đọc/ghi theo bit byte Các chân PORTB <7:4> PORTB cịn sử dụng làm nguồn ngắt ngồi
a Chức chân PORTB
Chân Chức
năng TRIS I/O
Kiểu
I/O Mô tả
RB0/INT0/FLT0 / AN12
RB0 O DIG Chiều liệu sử dụng bit LATB<0>; không bị ảnh hưởng đầu vào tương tự
1 I TTL Chiều vào liệu sử dụng bit PORTB<0>; Không nối điện trở pull-up RBPU = ‘0’ Cấm chức cho phép đầu vào tương tự
INT0 I ST Ngắt
FLT0 I ST Đầu vào báo cố PWM (Module ECCP1); Cho phép
bằng phần mềm
AN12 I ANA Kênh 12 biến đổi A/D
RB1/INT1/AN10 RB1 O DIG Chiều liệu sử dụng bit LATB<1>; chức không bị đầu vào tương tự