42
Đồ Án Tốt Nghiệp CHƯƠNG II VI ĐIỀU KHIỂN PIC 18F4550 CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Embed Size (px)

Citation preview

Page 1: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

CHƯƠNG II

VI ĐIỀU KHIỂN

PIC 18F4550

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 2: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.1. TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC:

PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Thế hệ PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General – Instrument.

PIC là viết tắt của "Programmable Intelligent Computer" là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên là PIC1650. Thời điểm đó PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì vậy, ngươời ta cũng gọi PIC với cái tên "Peripheral Interface Controller" – bộ điều khiển giao tiếp ngoại vi.

CP1600 là một CPU mạnh nhưng lại yếu về các hoạt động xuất nhập vì vậy PIC 8-bit được phát triển vào năm 1975 để hỗ trợ cho hoạt động xuất nhập của CP1600.

ROM để chứa mã, mặc dù khái niệm RISC chưa được sử dụng thời bấy giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh với một chu kỳ máy – gồm 4 chu kỳ của Oscillator.

Năm 1985 General Instruments bán công nghệ các vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra lập trình.

Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC...), với bộ nhớ chương trình từ 512 Word đến 32K Word.

2.2. MỘT SỐ ĐẶC TÍNH CHUNG CỦA VI ĐIỀU KHIỂN PIC:

Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng chúng ta có thể điểm qua một vài nét như sau:

Là CPU 8/16 bit, xây dựng theo kiến trúc Harvard.

Có bộ nhớ Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte.

Có các cổng xuất – nhập (I/O ports).

Có timer 8/16 bit.

Có các chuẩn giao tiếp nối tiếp đồng bộ/không đồng bộ USART.

Có các bộ chuyển đổi ADC 10/12 bit.

Có các bộ so sánh điện áp (Voltage Comparators).

Có các khối Capture/Compare/PWM.

Có hỗ trợ giao tiếp LCD.

Có MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S.

Có bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần.

Có khối Điều khiển động cơ, đọc encoder.

Có hỗ trợ giao tiếp USB.

Có hỗ trợ điều khiển Ethernet.

Có hỗ trợ giao tiếp CAN.

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 3: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.2.1. Các đặc tính USB (Universal Serial Bus) :

Phù hợp với USB V2.0

Tốc độ thấp (1.5 Mb/s) và Tốc độ Cao (12 Mb/s)

Hỗ trợ Điều khiển, Ngắt, Đồng bộ và Truyền Khối

Hỗ trợ lên tới 32 Endpoints ( 16 Endpoints mỗi chiều)

2 bộ nhớ RAM 1-Kbyte cho USB

Bộ thu-phát USB On-Chip và Bộ ổn áp On-Chip

Giao tiếp cho Bộ thu-phát USB Off-Chip

Truyền Port song song (Streaming Parallel Port - SPP) cho truyền dữ liệu USB ( chỉ thiết bị 40/44 chân)

2.2.2. Các chế độ quản lý năng lượng :

Chạy: CPU chạy, thiết bị ngoại vi chạy.

Chờ: CPU tắt, thiết bị ngoại vi chạy.

Ngủ: CPU tắt, thiết bị ngoại vi tắt.

Thoát khỏi chế độ chờ trong 5.8 µs.

Thoát khỏi chế độ ngủ trong 0.1 µs.

Oscillator Timer1: 1.1 µs, 32kHz, 2V.

Watchdog Timer2: 2.1 µs.

Khởi động Oscillator 2 tốc độ

2.2.3. Cấu trúc linh hoạt của Oscillator :

4 chế độ thạch anh, bao gồm Độ chính xác cao PLL cho USB

2 chế độ xung Clock bên ngoài, lên tới 48 Mhz.

Khối dao động nội:

- 8 tần số có thể lựa chọn bởi người dùng, từ 31 kHz đến 8 Mhz

- Người dùng có thể điều chỉnh để bù vào tần số sai lệch

Oscillator thứ 2 sử dụng Timer1 32 kHz

Các lựa chọn cho Dual Oscillator cho phép Vi điều khiển và module USB chạy ở các tốc độ xung clock khác nhau.

Fail-Safe Clock Monitor:

- Cho phép tắt an toàn nếu có bất kì xung clock nào dừng.

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 4: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.2.4. Các đặc tính ngoại vi nổi bật :

Dòng Sink/Source cao : 25 mA/ 25 mA

3 External Interrupts

4 module Timer ( Timer0 đến Timer3)

Lên tới 2 Capture/Compare/PWM (CCP) module:

- Capture 16-bit, độ phân giải tối đa 5.2 ns

- Compare 16-bit, độ phân giải tối đa 83.3 ns

- Độ phân giải của PWM là 1 đến 10-bit

Module Capture/Compare/PWM (ECCP) cải tiến:

- Các chế độ nhiều ngõ ra.

- Có thể chọn độ phân giải

- Có thể lập trình thời gian chờ

- Tự động shutdown và tự động restart.

Module USART cải tiến:

- Hỗ trợ LIN bus

Module Master Synchronous Serial Port (MSSP) hỗ trợ 3-wire SPI (4 chế độ) và I2C Master và chế độ Slave.

10-bit, lên tới 13 kênh ADC với khả năng lập trình thời gian nhận

2 bộ so sánh Analog với ngõ vào đa hợp

Bảng 2.1: So sánh cấu trúc 4 loại PIC 18F

Sơ đồ chân PIC18F2455/2550/4455/4550

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 5: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.1: Sơ đồ chân PIC18F2455/2550/4455/4550 loại 28 và 40 chân

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 6: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.2: Sơ đồ chân PIC18F2455/2550/4455/4550 loại 44 chân

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 7: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.3. VI ĐIỀU KHIỂN PIC 18F4550

2.3.1. Cấu hình PIC 18F4550

PIC 18F4550 có 40/44 chân với cấu trúc như sau: Có 5 port xuất/ nhập. Có 13 kênh chuyển đổi A/D Có port giao tiếp song song

Đặc điểm PIC 18F4550

Tần số hoạt động DC – 48MHz

Bộ nhớ chương trình (bytes) 32768

Bộ nhớ chương trình (cấu trúc) 16384

Bộ nhớ dữ liệu (bytes) 2048

Bộ nhớ dữ liệu EEPROM (bytes) 256

Nguồn ngắt 20

I/O port A, B, C ,D, E

Timer 4

Capture/Compare/PWM module 1

Capture/Compare/PWM module cải tiến 1

Giao tiếp Serial MSSP, USART cải tiến

USB module 1

Streaming Parallel Port (SPP) Có

10-Bit Analog-to-Digital Module 13 kênh

Reset ( và Delay) POR, BOR, RESETInstruction, Stack Full, Stack Underflow (PWRT, OST), MCLR(optional),WDT

Bộ so sánh tương tự 2

Tập lệnh 75, 83 với tập lệnh mở rộng

Số chân 40-pin PDIP44-pin QFN44-pin TQFP

Bảng 2.2: Đặc điểm PIC 18F4550

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 8: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.3.2. Sơ đồ khối bên trong PIC 18F4550

Hình 2.3: Sơ đồ khối PIC 18F450

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 9: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.3 trình bày sơ đồ khối của PIC 18F4550, gồm các khối:

Khối ALU – Arithmetic Logic Unit.

Khối bộ nhớ chứa chương trình – Flash Program Memory.

Khối bộ nhớ chứa dữ liệu EEPROM – Data EPROM.

Khối bộ nhớ file thanh ghi RAM – RAM file Register.

Khối giải mã lệnh và điều khiển – Instruction Decode Control.

Khối thanh ghi đặc biệt.

Khối bộ nhớ ngăn xếp.

Khối reset mạch khi có điện, khối định thời reset mạch khi có điện, khối định thời ổn định dao động khi có điện, khối định thời giám sát, khối reset khi sụt giảm nguồn, khối gỡ rối, khối lập trình bộ nhớ điện áp thấp.

Khối ngoại vi timer T0, T1, T2, T3

Khối giao tiếp nối tiếp.

Khối chuyển đổi tín hiệu tương tự sang số –ADC.

Khối so sánh điện áp tương tự.

Khối tạo điện áp tham chiếu.

Khối các port xuất nhập.

2.3.3. Sơ đồ chân và chức năng các chân PIC 18F4550

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 10: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.4: Sơ đồ chân PIC 18F4550 loại 40 chân

1. Chân MCLR/Vpp/RE3:

- MCLR: ngõ vào reset tích cực mức thấp

- Vpp: ngõ vào nhận điện áp khi ghi dữ liệu vào bộ nhớ nội flash

- RE3: xuất/ nhập số

2. Chân RA0/AN0

- RA0: xuất/ nhập số

- AN0: ngõ vào tương tự của kênh thứ 0

3. Chân RA1/AN1

- RA1: xuất/nhập số.

- AN1: ngõ vào tương tự của kênh thứ 1.

4. Chân RA2/AN2/VREF-/CVREF

- RA2: xuất/nhập số.

- AN2: ngõ vào tương tự của kênh thứ 2.

- VREF-: ngõ vào điện áp chuẩn (thấp) của bộ ADC.

- CVREF: điện áp tham chiếu VREF ngõ ra bộ so sánh

5. Chân RA3/AN3/VREF+

- RA3: xuất/nhập số.

- AN3: ngõ vào tương tự kênh thứ 3.

- VREF+: ngõ vào điện áp chuẩn (cao) của bộ A/D.

6. Chân RA4/T0CKI/C1OUT/RCV

- RA4: xuất/nhập số – mở khi được cấu tạo là ngõ ra.

- TOCKI: ngõ vào xung clock từ bên ngoài cho Timer0.

- C1OUT: ngõ ra bộ so sánh 1.

7. Chân RA5/AN4/SS/HLVDIN/C2OUT

- RA5: xuất/nhập số.

- AN4: ngõ vào tương tự kênh thứ 4.

- SS : ngõ vào chọn lựa SPI phụ.

- C2OUT: ngõ ra bộ so sánh 2.

8. Chân RE0/AN5/CK1SPP

- RE0: xuất/nhập số.

- AN5: ngõ vào tương tự 5.

9. Chân RE1/AN6/CK2SPP

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 11: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

- RE1: xuất/nhập số.

- AN6: ngõ vào tương tự kênh thứ 6.

10. Chân RE2/AN7/OESPP

- RE2: xuất/nhập số.

- AN7: ngõ vào tương tự kênh thứ 7. 11. Chân VDD

12. Chân VSS

13. Chân OSC1/CLKI: là ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận xung clock bên ngoài.

- OSC1: ngõ vào dao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài. Ngõ vào có mạch Schmitt Trigger nếu sử dụng dao động RC

- CLKI: ngõ vào nguồn xung bên ngoài.

14. Chân OSC2/CLKO/RA6: ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.

- OSC2: ngõ ra dao động thạch anh. Kết nối đến thạch anh hoặc bộ cộng hưởng.

- CLKO: ở chế độ RC, ngõ ra của OSC2, bằng ¼ tần số của OSC1 và chính là tốc độ của chu kì lệnh.

- RA6: : xuất/nhập số.

15. Chân RC0/T1OSO/T13CKI

- RC0: xuất/nhập số

- T1OSO: ngõ ra của bộ dao động Timer1.

- T13CKI: ngõ vào xung clock từ bên ngoài Timer1 và Timer 3

16. Chân RC1/T1OSI/CCP2/UOE

- RC1: xuất/nhập số.

- T1OSI: ngõ vào của bộ dao động Timer1.

- CCP2: ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2

17. Chân RC2/CCP1/P1A

- RC2: xuất/nhập số

- CCP1: ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1

18. Chân VUSB : chân nguồn USB

19. Chân RD0/SPP0

- RD0: xuất/nhập số.

- SPP0: dữ liệu port song song

20. Chân RD1/SPP1

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 12: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

- RD1: xuất/nhập số

- SPP1: dữ liệu port song song

40. Chân RB7/KBI3/PGD

- RB7: xuất/nhập số

- KBI3: Interrupt-on-change

- PGD: mạch gỡ rối và dữ liệu lập trình ICSP.

39. Chân RB6/KBI2/PGC

- RB6: xuất/nhập số

- KBI2: Interrupt-on-change

- PGC: mạch gỡ rối và xung clock lập trình ICSP

38. Chân RB5/KBI1/PGM

- RB5: xuất/nhập số

- KBI1: Interrupt-on-change

- PGM: Chân cho phép lập trình điện áp thấp ICSP.

34. Chân RB1/AN10/INT1/SCK/SCL

- SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI.

- SCL: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ I2C.

33. Chân RB0/AN12/INT0/FLT0/SDI/SDA

- INT0: ngõ vào nhận tín hiệu ngắt ngoài.

- SDI: dữ liệu vào SPI.

- SDA: xuất/nhập dữ liệu I2C.

26. Chân RC7/RX/DT/SDO

- RC7: xuất/nhập số.

- RX: nhận bất đồng USART.

- DT: dữ liệu đồng bộ USART.

- SDO: dữ liệu ra SPI.

25. Chân RC6/TX/CK

- RC6: xuất/nhập số.

- TX: truyền bất đồng bộ USART.

- CK: xung đồng bộ USART

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 13: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.4. TỔ CHỨC BỘ NHỚ CỦA PIC 18F4550:

PIC 18F4550 có 3 loại bộ nhớ: bộ nhớ chương trình (Program Memory), bộ nhớ dữ liệu RAM và bộ nhớ dữ liệu EEPROM.

2.4.1. Kiến trúc bộ nhớ của PIC:

PIC có kiến trúc bộ nhớ dạng Harvard, một kiến trúc cải tiến so với kiến trúc Von Neumann.

Hình 2.5: Kiến trúc Von Neumann và Harvard.

Kiến trúc Von Neumann: với kiến trúc này thì bộ nhớ giao tiếp với CPU thông qua 1 bus dữ liệu 8 bit, bộ nhớ có các ô nhớ chứa dữ liệu 8 bit, bộ nhớ vừa lưu trữ chương trình và dữ liệu.

- Ưu điểm: kiến trúc đơn giản.

- Khuyết điểm: do chỉ có 1 bus nên tốc độ truy suất chậm, khó thay đổi dung lượng lưu trữ của ô nhớ.

Kiến trúc Harvard: với kiến trúc này thì bộ nhớ được tách ra làm 2 loại bộ nhớ độc lập: bộ nhớ lưu chương trình và bộ nhớ lưu dữ liệu, CPU giao tiếp với 2 bộ nhớ độc lập nên cần 2 bus độc lập. Vì độc lập nên có thể thay đổi số bit lưu trữ của từng bộ nhớ mà không ảnh hưởng lẫn nhau. Với PIC thì bộ nhớ chương trình với mỗi ô nhớ lưu trữ 14 bit, còn bộ nhớ dữ liệu với mỗi ô nhớ lưu dữ liệu 8 bit.

- Ưu điểm: do chỉ có 2 bus nên tốc độ truy suất nhanh, tùy ý thay đổi số bit của ô nhớ.

- Khuyết điểm: kiến trúc phức tạp.

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 14: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.4.2. Khảo sát bộ nhớ chương trình của PIC:

Hình 2.6: Sơ đồ bộ nhớ chương trình và ngăn xếp

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 15: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Bộ nhớ chương trình của PIC 18Fx455 có dung lượng 32K.

Thanh ghi bộ đếm chương trình PC (Program Counter) sẽ quản lý địa chỉ của bộ nhớ chương trình, thanh ghi PC có độ dài 21 bit sẽ quản lý 2.097.152 ô nhớ tương đương với 32K ô nhớ. Mỗi ô nhớ chương trình lưu 14 bit dữ liệu.

Khi PIC bị reset thì thanh ghi PC có giá trị là 0000H và PIC sẽ bắt đầu thực hiện chương trình tại địa chỉ 0000H.

Khi có bất kỳ ngắt nào tác động thì PIC sẽ thực hiện chương trình phục vụ ngắt cao tại địa chỉ 0008H và ngắt thấp tại địa chỉ 0018H.

Mỗi trang của bộ nhớ chương trình có địa chỉ xác định như trong hình 2.6, việc phân chia theo trang bộ nhớ chỉ có tác dụng đối với lệnh nhảy và lệnh gọi chương trình con. Khi nơi nhảy đến hoặc chương trình con nằm trong cùng 1 trang thì lệnh sẽ viết ngắn gọn hơn so với trường hợp nằm khác trang, sẽ được trình bày ở phần các kiểu truy xuất bộ nhớ.

Trong các họ vi điều khiển khác thì bộ nhớ ngăn xếp dùng chung với bộ nhớ dữ liệu, ưu điểm là cấu trúc đơn giản, khuyết điểm là việc dùng chung nếu không biết giới hạn sẽ lấn chiếm lẫn nhau và làm mất dữ liệu lưu trong bộ nhớ ngăn xếp và chương trình thực thi sai.

Ở vi điều khiển PIC thì nhà thiết kế tách bộ nhớ ngăn xếp độc lập với bộ nhớ dữ liệu và chỉ để dùng lưu địa chỉ trở về khi thực hiện lệnh gọi chương trình con và khi thực hiện ngắt. Dung lượng bộ nhớ bộ nhớ ngăn xếp chỉ có 32 ô nhớ từ stack level 1 đến stack level 31 - xem hình 2.6. Do chỉ có 8 ô nhớ nên khi thực hiện các chương trình con lồng vào nhau tối đa là 32 cấp.

Khi không sử dụng ngắt thì chương trình có thể viết bắt đầu và liên tục tại địa chỉ 0000H, nhưng nếu sử dụng ngắt thì nên dùng lệnh nhảy để tránh vùng nhớ bắt đầu tại địa chỉ 0008H - vì vùng nhớ này dùng để viết chương trình con phục vụ ngắt.

Bộ nhớ chương trình có chức năng lưu trữ chương trình. Chương trình sau khi viết xong trên máy tính, dịch ra số nhị phân sẽ được nạp vào bộ nhớ chương trình để vi điều khiển thực hiện.

2.4.4. Khảo sát bộ nhớ dữ liệu và thanh ghi trạng thái của PIC

A. Cấu trúc bộ nhớ dữ liệu:

Bộ nhớ dữ liệu được phân chia thành 16 Bank, mỗi bank có 256byte bao gồm một số thanh ghi chức năng đặc biệt, còn lại là các ô nhớ thông dụng có chức năng lưu trữ dữ liệu.

Các thanh ghi có chức năng đặc biệt nằm ở vùng địa chỉ thấp, các ô nhớ còn lại không có gì đặc biệt nằm ở ùng địa chỉ bên trên các thanh ghi chức năng đặc biệt – xem như các ô nhớ RAM dùng để lưu dữ liệu.

Tất cả các bank thanh ghi đều chứa những thanh ghi đặc biệt - xem hình 2.8:

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 16: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.7: Tổ chức bộ nhớ dữ liệu của PIC

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 17: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.8: Tổ chức Thanh ghi chức năng đặc biệt của PIC

B. Thanh ghi trạng thái

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 18: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Bit 7-5: Không sử dụng: Đọc là ‘0’

Bit 4: N: Nagative bit – Bit âm. Bit này đươc sử dụng như dấu toán học.

Nó chỉ ra kết quả khi nào kết quả là âm

1 = kết quả là âm

2 = kết quả là dương

Bit 3: OV: Overflow bit – Bit tràn. Bit này đươc sử dụng như dấu toán học.

Nó chỉ ra một phép toán tràn 7 bit làm bit dấu thay đổi trạng thái

1 = sự kiện tràn xảy ra cho dấu toán học

0 = sự kiện tràn không xảy ra.

Bit 2: Z: Zero bit (bit 0)

1 = khi kết quả bằng 0.

0 = khi kết quả khác 0.

Bit 1: DC: Digit carry/borrow bit

(các lệnh ADDWF, ADDLW, SUBLW, SUBWF)

1 = khi cộng 4 bit thấp bị tràn.

0 = khi cộng 4 bit thấp không bị tràn.

Bit 0: C: Carry/borrow bit (các lệnh ADDWF, ADDLW, SUBLW, SUBWF)

1 = khi kết quả phép toán có tràn.

0 = khi kết quả phép toán không bị tràn

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 19: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.5. CẤU HÌNH CÁC PORT CỦA PIC 18F4550

2.5.1. Giới thiệu:

Vi điều khiển có các port để xuất nhập dữ liệu giao tiếp với các đối tượng điều khiển. Tín hiệu điều khiển từ CPU gởi ra port để điều khiển, đồng thời có các port nhận dữ liệu về để xử lý. Trong một hệ thống luôn có các tín hiệu vào ra ví như hệ thống điều khiển robo như hình sau:

Hình 2.9: Sơ đồ kết nối Port với đối tượng điều khiển

Mỗi vi điều khiển khác nhau có cấu hình các port cũng khác nhau, phần này sẽ khảo sát các port của vi điều khiển PIC bao gồm port A, B, C, D , E.

Mỗi port của vi điều khiển PIC gồm có thanh ghi port và thanh ghi định hướng cho Port ví dụ như hình 2.10 là PORTA và TRISA. Bit của thanh ghi định hướng TRIS bằng 0 thì port có chức năng xuất dữ liệu, nếu bằng 1 thì có chức năng nhập dữ liệu.

Chú ý: '0' tương ứng với 'OUT', '1' tương ứng với 'IN'.

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 20: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.10: Sơ đồ kết nối Port: xuất/ nhâp điều khiển

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 21: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.5.2. Các Port xuất nhập IO:

A. Port A và thanh ghi TrisA

Hình 2.11: Bảng tóm tắt chức năng các chân của PortA

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 22: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.12: Tóm tắt các thanh ghi liên kết với PortA

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 23: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

B. Port B và thanh ghi TrisB

Hình 2.13: Bảng tóm tắt chức năng các chân của PortB

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 24: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.14: Bảng tóm tắt chức năng các chân của PortB

Hình 2.15: Bảng tóm tắt các thanh ghi liên kết với PortB

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 25: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

C. Port C và thanh ghi TrisC

Hình 2.16: Bảng tóm tắt chức năng các chân của PortC

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 26: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.17: Bảng tóm tắt chức năng các chân của PortC

Hình 2.18: Bảng tóm tắt các thanh ghi liên kết với PortC

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 27: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

D. Port D và thanh ghi TrisD

Hình 2.19: Bảng tóm tắt chức năng các chân của PortD

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 28: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.20: Bảng tóm tắt các thanh ghi liên kết với PortD

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 29: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

E. Port E và thanh ghi TrisE

Hình 2.21: Bảng tóm tắt chức năng các chân của PortE

Hình 2.22: Bảng tóm tắt các thanh ghi liên kết với PortE

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 30: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

2.6. TIMER/ COUNTER CỦA PIC 18F4550:

2.6.1. Giới thiệu:

Vi điều khiển PIC 18F4550 có 4 timer T0, T1, T2 và T3. T0,T1 và T3 là timer/counter 16 bit cả 3 đều có bộ chia trước. T2 chỉ là timer/counter 8 bit có bộ chia trước và chia sau phục vụ cho các ứng dụng đặc biệt.

2.6.2. Khảo sát Timer/ Counter:

A. Khảo sát Timer0:

Module Timer0 có những đặc điểm sau:

- Có thể lựa chọn bằng phần mềm chế độ hoạt động Timer/Counter 8-bit hoặc 16-bit

- Có thể đọc và ghi thanh ghi

- Với chế độ 8-bit, có thể lựa chọn chia trước bằng phần mềm

- Có thể chọn lựa nguồn xung clock (trong hoặc ngoài)

- Lựa chọn cạnh lên hoặc xuống của xung clock ngoại

- Ngắt tràn

Ngắt của Timer0 được tạo ra khi thanh ghi TMR0 tràn từ FFh đến 00h ở chế độ 8-bit , hoặc từ FFFFh đến 0000h ở chế đô 16-bit. Việc tràn này làm bit cờ tràn TMR0IF từ 0 lên 1. Ngắt có thể ngăn bằng cách xóa bit cho phép ngắt TMR0IE (INTCON<5>). Trước khi cho phép ngắt lại, TMR0IF phải được xóa bởi phần mềm trong chương trình con ngắt.

Nếu Timer0 tắt trong chế độ Sleep, ngắt TMR0 không thể đánh thức vi xử lý khỏi Sleep.

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 31: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.23: Thanh ghi điều khiển Timer0

Hình 2.24: Các thanh ghi liên kết với Timer0

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 32: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

B. Khảo sát Timer1:

Module Timer1 timer/counter có những đặc điểm sau:

- Lựa chọn chế độ 16-bit timer hoặc counter bằng phần mềm

- Đọc và ghi lại các thanh ghi 8-bit (TMR1H và TMR1L)

- Chọn lựa nguồn xung clock với thiết bị tạo xung clock hoặc lựa chọn bộ dao động Timer1 nội.

- Ngắt tràn

- Module Reset ở Triger CCP sự kiện đặc biệt

Cặp thanh ghi TMR1 (TMR1H:TMR1L) tăng từ 0000h đến FFFFh và quay lại 0000h. Nếu ngắt TMR1 cho phép, nó tạo ra việc tràn và set cờ tràn TMR1IF (PIR1<0>) lên 1. Ngắt có thể bật hoặc tắt bằng set hoặc xóa TMR1IE (PIE1<0>).

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 33: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.25: Thanh ghi điều khiển Timer1

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 34: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.26: Các thanh ghi liên kết với Timer1

C. Khảo sát Timer2:

Module Timer2 có những đặc điểm sau:

- timer 8-bit

- Có thể dùng phần mềm chia trước (1:1, 1:4 và 1:16) và chia sau (1:1 đến 1:16)

- Ngắt ở TMR2 đến khi trùng PR2

- Lựa chọn xung clock lên cho module MSSP.

Timer 2 có thể tạo ra lựa chọn thiết bị ngắt. Ngõ ra tín hiện của Timer2 yêu cầu ngõ ra 4-bit của counter/postcaler. Ngắt có được cho phép bằng cách điều chỉnh bit TMR2IE (PIE1<1>). 16 chế độ chia trước có thể lựa chọn bằng các bit điều khiển chia trước T2OUTPS3:T2OUTPS0 (T2CON<6:3>)

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 35: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.27: Thanh ghi điều khiển Timer2

Hình 2.28: Các thanh ghi liên kết với Timer2

D. Khảo sát Timer3:

Module timer/counter Timer3 có những đặc điếm sau:

- Lựa chọn bằng phần mềm chế độ 16-bit timer hoặc counter.

- Đọc và ghi các thanh ghi 8-bit (TMR3H và TMR3L)

- Lựa chọn nguồn xung clock với thiết bị tạo xung hoặc bộ dao động Timer1 bên trong

- Ngắt tràn

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 36: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Cặp thanh ghi TMR3 (TMR3H:TMR3L) tăng từ 0000h đến FFFFh và tràn ở 0000h. Ngắt Timer3 nếu cho phép sẽ tạo ra tràn và làm bit cờ tràn lên 1 TMR3IF (PIR2<1>). Ngắt có thể cho phép bằng cách điều chỉnh bit TMR3IE (PIE2<1>).

Hình 2.29: Thanh ghi điều khiển Timer3

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang

Page 37: CHUONG 2 - VI ĐIỀU KHIỂN PIC 18F4550 (1)

Đồ Án Tốt Nghiệp

Hình 2.30: Các thanh ghi liên kết với Timer3

CHƯƠNG II: VI ĐIỀU KHIỂN PIC 18F4550 Trang