dce 2009 BK TP HCM Chng 3 Thanh
dce 2009 BK TP. HCM Chöông 3: Thanh ghi vaø boä nhôù cuûa vi ñieàu khieån PIC 18 F 2220 Noäi dung : 3. 1 Boä thanh ghi. 3. 2 Toå chöùc boä nhôùù. Taøi lieäu tam khaûo: 1. Programming and customizing the PIC Microcontroller. Myke Predko. 1998 2. Embedded Design with the PIC 18 F 452 Microcontroller. John B. Peatman. 2003 3. PIC 18 F 2220/2320/4220/4320 Data Sheet 4. Luaän vaên toát nghieäp N. V. Thaûo, T. V. Quyù. 2008
dce Data bus <8> 2009 Data Latch Data RAM 512 bytes Address Latch Table pointer <2> Inc/dec logic PCLATU PCLATH Address Latch Program Memory (4 Kbytes) Data Latch PORTA PCU PCH Address <12> PCL Program Counter BSR FSR 0 RA 7 PORTB RB 0 Bank 0, F FSR 1 31 level stack RB 7 FSR 2 Table Latch Decode ROM Latch Instruction Register Instruction Decode & Control OSC 2/CLKOUT BK Power-up timer Oscillator Start up timer Power on reset Watchdog Timer Brown out Reset Fail- safe clock monitor Internal Oscillator block TP. HCM OSC 1/CLKIN Inc/dec logic INT RC Oscillator Precision Voltage Reference MCLR PRODH PRODL 8 x 8 Multiply BIT OP WREG PORTK ALU <8> RK 0 RK 7 VDD, VSS
dce Sô ñoà kieán truùc MCU PIC 18 F 2220 2009 Timer 0 (8 - or 16 -bit) CCP 1 BK TP. HCM Timer 1 (16 -bit) CCP 2 Master Synchronous Serial port Timer 2 (8 -bit) Addressable USART Timer 3 (16 -bit) Data EEPROM 256 bytes 10 -bit A/D Converter
dce 2009 BK TP. HCM Baûn ñoà caùc thanh ghi chöùc naêng ñaëc bieät (SFR)
dce 2009 BK TP. HCM Baûng caáu hình thanh ghi RCON
dce 2009 BK TP. HCM Thanh ghi WREG vaø caùc taùc vuï cuûa ALU
dce 2009 BK TP. HCM Caáu truùc boä ñeám chöông trình (PC)
dce Thanh ghi traïng thaùi 2009 U-0 bit 7 BK TP. HCM U-0 R/W-x - - N OV Z DC R/W-x C bit 0 Bit 7 -5 Không quan tâm và xem như bằng 0 Bit 4 N (Negative) Bit này dùng cho các phép tính số học có dấu 1: Nếu kết quả là số dương 0: Nếu kết quả là số âm Bit 3 OV (Overflow) Bit này cũng dùng cho các phép tính số học có dấu 1: Nếu kết quả bị tràn 0: Nếu kết quả không bị tràn Bit 2 Z (Zero) 1: Nếu kết quả của phép tính số học hoặc luận lý bằng 0 0: Nếu kết quả khác 0 Bit 1 DC (Digital Carry/Borrow) dùng cho các lệnh ADDWF, SUBLW và SUBWF 1: Có nhớ theo nhóm 4 bit trong khi tính toán kết quả , kể từ 4 bit thấp 0: Không có nhớ Bit 0 C (Carry/Borrow) dùng cho các lệnh ADDWF, SUBLW và SUBWF 1: Có nhớ từ bit cao của kết quả (MSB) 0: Không có nhớ
dce Thanh ghi INTCON 2009 BK TP. HCM • R/W-0 R/W-0 • GIE/GIEH PEIE/GIEL TMR 0 IE INT 0 IE RBIE • • Bit 7 • • Bit 7 GIE/GIEH (Global Interrupt Enable) Khi IPEN = 0: 1: Cho phép tất cả các interrupt không che mặt nạ 0: Tắt tất cả các ngắt. Khi IPEN = 1: 1: Cho phép tất cả các ngắt. 0: Tắt tất cả các ngắt. • • Bit 6 PEIE/GEIL (Peripheral Interrupt Enable) Khi IPEN = 0 1: Cho phép tất cả các ngắt ngoại vi không che mặt nạ. 0: Tắt tất cả các ngắt ngoại vi. Khi IPEN = 1 1: Cho phép tất cả các ngắt ngoại vi có độ ưu tiên thấp. 0: Tắt tất cả độ ưu tiên ngắt ngoại vi. R/W-0 TMR 0 IF INT 0 IF RBIF Bit 0
dce 2009 BK TP. HCM • • • Bit 5 TMR 0 IE (TMR 0 Overflow Interrupt Enable) 1: Cho phép ngắt khi TMR 0 tràn. 0: Tắt ngắt khi TMR 0 tràn. • • • Bit 4 INT 0 IE (INT 0 External Interrupt Enable) 1: Cho phép ngắt ngoài INT 0. 0: Tắt ngoài INT 0. • • • Bit 3 RBIE (RB Port Change Interrupt Enable) 1: Cho phép ngắt RB port change. 0: Tắt ngắt RB port change. • • • Bit 2 TMR 0 IF (TMR 0 Overflow Interrupt Flag) 1: Thanh ghi TMR 0 IF đã tràn (phải được xóa bằng phần mềm). 0: Thanh ghi TMR 0 IF không tràn. • • • Bit 1 INT 0 IF (INT 0 External Interrupt Flag) 1: Ngắt ngoài INT 0 đã xuất hiện (phải được xóa bằng phần mềm). 0: Ngắt ngoài INT 0 chưa xuất hiện trước đó. • • Bit 0 RBIF (RB Port Change Interrupt Flag) 1: Ít nhất 1 trong các chân RB 7: RB 4 đã thay đổi trạng thái (phải được xóa bằng phần mềm) 0: Không có chân nào trong RB 7: RB 4 thay đổi trạng thái. •
dce 2009 • • Thanh ghi INTCON 2: • • RBPU Bit 7 BK TP. HCM R/W-1 • • • • • R/W-1 R/W-1 NTEDG 0 INTEDG 1 INTEDG 2 U-0 - R/W-1 U-0 R/W-0 TMR 0 IP - RBIP Bit 0 Bit 7 RBPU (PORTB Pull-up Enable) 1: Không cho phép tất cả Port. B kéo lên. 0: Cho phép Port. B kéo lên bởi các giá trị port latch riêng. Bit 6 INTEDG 0 (External Interrupt 0 Edge Select) 1: Ngắt xảy ra khi có cạnh lên của xung Clock. 0: Ngắt xảy ra khi có cạnh xuống của xung Clock. Bit 5 INTEDG 1 (External Interrupt 1 Edge Select) 1: Ngắt xảy ra khi có cạnh lên của xung Clock. 0: Ngắt xảy ra khi có cạnh xuống của xung Clock. Bit 4 INTEDG 2 (External Interrupt 2 Edge Select) 1: Ngắt xảy ra khi có cạnh lên của xung Clock. 0: Ngắt xảy ra khi có cạnh xuống của xung Clock. Bit 3 Không cần quan tâm (Unimplemented), xem như bằng 1 Bit 2 TMR 0 IP (TMR 0 Overflow Interrupt Priority) 1: Ngắt TMR 0 tràn ở chế độ ưu tiên cao. 0: Ngắt TMR 0 tràn ở chế độ ưu tiên thấp. Bit 1 Không cần quan tâm (Unimplemented), xem như bằng 1 Bit 0 RBIP (RB Port Change Interrupt Priority) 1: RB Port thay đổi ngắt ở chế độ ưu tiên cao. 0: RB Port thay đổi ngắt ở chế độ ưu tiên thấp.
dce 2009 • • Thanh ghi INTCON 3: R/W-1 U -0 • • INT 2 IP Bit 7 BK TP. HCM • • • • • INT 1 IP - R/W-1 NT 2 IE R/W-1 U-0 R/W-0 INT 1 IE - INT 2 IF INT 1 IF Bit 0 Bit 7 INT 2 IP (INT 2 External Interrupt Priority) 1: INT 2 ngắt ngoài ở chế độ ưu tiên cao. 0: INT 2 ngắt ngoài ở chế độ ưu tiên thấp. Bit 6 INT 1 IP (INT 1 External Interrupt Priority) 1: INT 1 ngắt ngoài ở chế độ ưu tiên cao. 0: INT 1 ngắt ngoài ở chế độ ưu tiên thấp. Bit 5 Không cần quan tâm (Unimplemented), xem như bằng 0. Bit 4 INT 2 IE (INT 2 External Interrupt Enable) 1: Cho phép INT 2 ngắt ngoài. 0: Không cho phép INT 2 ngắt ngoài. Bit 3 INT 1 IE (INT 1 External Interrupt Enable) 1: Cho phép INT 1 ngắt ngoài. 0: Không cho phép INT 1 ngắt ngoài. Bit 2 Không cần quan tâm (Unimplemented), xem như bằng 0. Bit 1 INT 2 IF (INT 2 External Interrupt Flag) 1: Có INT 2 ngắt ngoài xảy ra (phải xóa bằng phần mềm). 0: Không có INT 2 ngắt ngoài xảy ra. Bit 0 INT 1 IF (INT 1 External Interrupt Flag) 1: Có INT 1 ngắt ngoài xảy ra (phải xóa bằng phần mềm). 0: Không có INT 1 ngắt ngoài xảy ra.
dce 2009 BK TP. HCM Baûn ñoà boä nhôù chöông trình vaø Stack cho PIC 18 FXXX
dce 2009 TABLE READ OPERATION Instruction: TBLRD* Program Memory Table Pointer Table Latch (8 -bit) TBLPTRU TBLPTRH TBLPTRL Program Memory (TBLPTR) BK TP. HCM Note 1: Table Pointer points to a byte in program memory TABLAT
dce 2009 TABLE WRITE OPERATION Instruction: TBLWT* Table Pointer (1) TBLPTRU TBLPTRH TBLPTRL Program Memory Holding Registers Table Latch (8 -bit) TABLAT Program Memory (TBLPTR) BK TP. HCM Note 1: Table Pointer actually points to one of eight holding registers, the address of which is determined by TBLPTRL <2>. The process for physically writing data to the program memory array is discussed in Section 6. 5 “Writing to Flash Program Memory”.
dce 2009 READS FROM FLASH PROGRAM MEMORY Program Memory Odd (High) Byte Even (Low) Byte TBLPTR LSB = 1 BK TP. HCM Instruction Register (IR) TBLPTR LSB = 0 TABLAT Read Register
dce 2009 TABLE WRITES TO FLASH PROGRAM MEMORY TABLAT Write Register . . . 8 TBLPTR = xxxxx 0 BK 8 TBLPTR = xxxxx 1 Holding Register 8 8 TBLPTR = xxxxx 2 Holding Register TP. HCM Program Memory TBLPTR = xxxxx 7 . . . Holding Register
dce 2009 BK TP. HCM Baûn ñoà boä nhôù vaø caùc Bank truy xuaát
dce 2009 BK TP. HCM Stack chöùa ñòa chæ traû veà vaø caùc thanh ghi keát hôïp
dce 2009 Truy caäp tröïc tieáp boä nhôù RAM trong PIC 18 FXXX Direct Addressing BSR<7: 4> 0 0 0 BSR<3: 0> 7 From Opcode (3) 0 0 Bank Select (2) Location Select (3) 00 h 01 h 100 h Data Memory (1) BK TP. HCM 0 Eh E 00 h 0 Fh F 00 h °°° ° ° 0 FFh Bank 0 1 FFh FFFh Bank 14 FFFh Bank 15 Note 1: For register file map detail, see table 5 -1. 2: The acsess bit of the instruction can be used to force an override of the selected bank (BSR<3: 0>) to the Registers of the Access Bank. 3: The MOVFF instruction embeds the entire 12 -bit address in the instruction.
dce 2009 BK TP. HCM Truy caäp boä nhôù RAM giaùn tieáp
dce 2009 BK TP. HCM Taùc vuï cuûa thanh ghi SFR (ñaùnh ñòa chæ giaùn tieáp)
dce 2009 BK TP. HCM Khoâng gian boä nhôù döõ lieäu Data Memory Banks 64 0, 15 128 0, 15 256 0, 15 512 0 – 1, 15 640 0 – 2, 15 768 0 – 2, 15 1024 0 – 3, 15 1280 0 – 4, 15 1536 0 – 5, 15 1792 0 – 6, 15 2048 0 – 7, 15 2304 0 - 8, 15 2560 0 – 9, 15 2816 0 – 10, 15 3072 0 – 11, 15 3328 0 – 12, 15 3584 0 – 13, 15 3840 0 – 14, 15 3968 0 - 15
- Slides: 23