Đồ Án Tốt Nghiệ p
CHƢƠNG II KHIỂN VI ĐIỀU ĐIỀU KHIỂ PIC 18F4550
CHƢƠNG II: VI ĐIỀU ĐIỀU KHIỂ KHIỂN PIC 18F4550
Trang 1
Đồ Án Tốt Nghiệ p
2.1. TỔ TỔNG QUAN VỀ VỀ VI ĐIỀU ĐIỀU KHIỂ 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. – 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 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 cho hoạt động xuất nhậ p của CP1600. đượ c phát triển vào năm 1975 để hỗ tr ợ ợ cho 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 gồm 4 chu k ỳ của Oscillator. hữu mớ i Năm 1985 General Instruments bán công nghệ n ghệ các vi điện tử của họ, và chủ sở h 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 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 ớ chương trình từ 512 Word đến 32K Word.
2.2. MỘ MỘT SỐ SỐ ĐẶC ĐẶC TÍNH CHUNG CỦA CỦA VI ĐIỀU ĐIỀU KHIỂ 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 – 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.
CHƢƠNG II: VI ĐIỀU ĐIỀU KHIỂ KHIỂN PIC 18F4550
Trang 2
Đồ Án Tốt Nghiệ p
2.1. TỔ TỔNG QUAN VỀ VỀ VI ĐIỀU ĐIỀU KHIỂ 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. – 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 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 cho hoạt động xuất nhậ p của CP1600. đượ c phát triển vào năm 1975 để hỗ tr ợ ợ cho 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 gồm 4 chu k ỳ của Oscillator. hữu mớ i Năm 1985 General Instruments bán công nghệ n ghệ các vi điện tử của họ, và chủ sở h 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 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 ớ chương trình từ 512 Word đến 32K Word.
2.2. MỘ MỘT SỐ SỐ ĐẶC ĐẶC TÍNH CHUNG CỦA CỦA VI ĐIỀU ĐIỀU KHIỂ 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 – 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.
CHƢƠNG II: VI ĐIỀU ĐIỀU KHIỂ KHIỂN PIC 18F4550
Trang 2
Đồ Án Tốt Nghiệ p
Có hỗ trợ giao tiếp CAN.
2.2.1. Cá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ế chế độ qu độ quản ản lý năng lƣợ ng 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ấ Cấu trúc linh hoạ ho ạt củ 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.
CHƢƠNG II: VI ĐIỀU ĐIỀU KHIỂ KHIỂN PIC 18F4550
Trang 3
Đồ Án Tốt Nghiệ p
Fail-Safe Clock Monitor: - Cho phép tắt an toàn nếu có bất kì xung clock nào dừng.
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 4
Đồ Á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 5
Đồ Á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 6
Đồ Á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 Tần số hoạt động Bộ nhớ chương trình (bytes) Bộ nhớ chương trình (cấu trúc) Bộ nhớ dữ liệu (bytes) Bộ nhớ dữ liệu EEPROM (bytes) Nguồn ngắt I/O port Timer Capture/Compare/PWM module Capture/Compare/PWM module cải tiến Giao tiế p Serial USB module Streaming Parallel Port (SPP) 10-Bit Analog-to-Digital Module Reset ( và Delay)
PIC 18F4550 DC – 48MHz 32768 16384 2048 256 20 A, B, C ,D, E 4 1 1 MSSP, USART cải tiến 1 Có 13 kênh POR, BOR, RESETInstruction, Stack Full, Stack Underflow (PWRT, OST), MCLR(optional), WDT
Bộ so sánh tương tự Tậ p lệnh Số chân
2 75, 83 vớ i tậ p lệnh mở r ộng 40-pin PDIP 44-pin QFN 44-pin TQFP B ảng 2.2: Đặc điể m PIC 18F4550
CHƢƠNG II: VI ĐIỀU KHIỂN PIC 18F4550
Trang 7
Đồ Á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 8
Đồ Á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.
CHƢƠNG II: VI ĐIỀU KHIỂN PIC 18F4550
Trang 9
Đồ Án Tốt Nghiệ p 2.3.3. Sơ đồ chân và chức năng các chân PIC 18F4550
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ố.
CHƢƠNG II: VI ĐIỀU KHIỂN PIC 18F4550
Trang 10
Đồ Án Tốt Nghiệ p - 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 - 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
CHƢƠNG II: VI ĐIỀU KHIỂN PIC 18F4550
Trang 11
Đồ Án Tốt Nghiệ p - 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 - 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
CHƢƠNG II: VI ĐIỀU KHIỂN PIC 18F4550
Trang 12
Đồ Án Tốt Nghiệ p - 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 13
Đồ Á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 H arvard: 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 14
Đồ Á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 15
Đồ Á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 trúc bộ nhớ d ữ liệu: A. C ấ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 16
Đồ Á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 17
Đồ Á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 18
Đồ Á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 19
Đồ Á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 20
Đồ Án Tốt Nghiệ p
: Sơ đồ ết nối rt xất nh điề hiển
CHƢƠNG II: VI ĐIỀU KHIỂN PIC 18F4550
Trang 21
Đồ Á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 22
Đồ Á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 23
Đồ Á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 24
Đồ Á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 25
Đồ Á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 26
Đồ Á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 27
Đồ Á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 28
Đồ Á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 29
Đồ Á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 30
Đồ Á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 Timer 0 đượ 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 31
Đồ Á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 32
Đồ Á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 33
Đồ Á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 34
Đồ Á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 ở TMR 2 đế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 35
Đồ Á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 36
Đồ Á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 37