TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
2.1 TỔNG QUAN VỀ PIC
2.1.1 PIC LÀ GÌ?
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay.
2.1.2 TẠI SAO LÀ PIC MÀ KHÔNG PHẢI CÁC HỌ VI ĐIỀU KHIỂN KHÁC
Hiện nay trên thị trường có rất nhiều loại vi điều khiển khác như 8051, Motorola 68HC, AVR, ARM, .Ngoài họ 8051 được hướng dẫn 1 cách căn bản ở môi trường đại học, bản thân em đã chọn vi điều khiển PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:
Họ vi điều khiển này có thể tìm mua dễ dàng ở Việt Nam.Giá thành không quá đắt.Có đầy đủ các tính năng của 1 vi điều khiển khi hoạt động độc lập.Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống : họ vi điều khiển 8051. Số lượng người sử dụng hộ vi điều khiển PIC hiện nay tại Việt Nam cũng như trên thế giới khá rộng rãi. Điều này tạo thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: Số lượng tài liệu, số lượng các ứng dụng đã mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được chỉ dẫn khi gặp khó khăn,Sự hỗ trợ của nhà sản suất về trình biên dịch, các công cụ lập trình, nạp chương trình từ dơn giản đến phức tạp, .Các tính năng đa dạng của vi điều khiển PIC không ngừng được phát triển và hoàn thiện.
Tài liệu gồm 173 trang rất cơ bản về PIC và PIC16F877A
                
              
                                            
                                
            
 
            
                 173 trang
173 trang | 
Chia sẻ: banmai | Lượt xem: 3575 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang tài liệu Tổng quan về vi điều khiển PIC - PIC16F877A, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
noái hoaøn toaøn töông töï nhö caùc öùng duïng söû duïng 2 LED ôû ví duï 
4.7, chæ vieäc noái theâm 4 LED 7 ñoaïn maéc song song vôùi hai LED tröôùc ñoù vaø keát noái theâm 4 
“coâng taéc” duøng BJT vaøo PORTB ñeå ñieàu khieån queùt LED. 
 Tieáp theo laø vaán ñeà veà chöông trình vieát cho vi ñieàu khieån. Caùch “phaân coâng” ñoái vôùi 
chöông trình seõ khoâng coù gì thay ñoåi, töùc laø chöông trình chính seõ laøm nhieäm vuï hieån thò LED 
vaø chöông trình ngaét seõ thöïc hieän coâng vieäc caäp nhaät caùc giaù trò caàn hieån thò. Tuy nhieân coù 
moät soá vaán ñeà phaùt sinh nhö sau: 
 Thöù nhaát, laøm sao taïo ra thôøi gian ñònh thôøi 1 giaây?? Timer ta söû duïng laø 
Timer1 16 bit vôùi boä chia taàn soá prescaler coù caùc tæ soá chia laø 1:1, 1:2, 1:4, 1:8 vaø ñöôïc ñieàu 
khieån bôûi thanh ghi T1CON (xem laïi Timer1 ñeå bieát theâm chi tieát). Giaù trò ñeám toái ña cuûa 
Timer1 seõ laø 65534, trong khi neáu ta söû duïng oscillator 4 MHz (moãi xung leänh coù thôøi gian 1 
uS) thì Timer1 caàn phaûi ñeám ñeán giaù trò 1 000 000, vaø neáu ta coù huy ñoäng toái ña khaû naêng 
chia taàn soá cuûa prescaler (1:8 ) thì giaù trò ñeám cuõng phaûi ñaït ñeán 1 000 000/8 = 125 000 (vaãn 
coøn lôùn hôn raát nhieàu so vôùi giaù trò ñeám toái ña cuûa Timer1. Moät giaûi phaùp cho vaán ñeà naøy laø 
duøng theâm moät thanh ghi ñeám phuï( thanh ghi count). Cuï theå nhö sau: ta cho Timer1 ñeám töø 0 
ñeán 25000, do ñoù ta caàn 5 laàn ñeám nhö vaäy (5 laàn ngaét Timer1 xaûy ra) ñeå ñaït ñöôïc giaù trò 
ñeám 125 000. Nhö vaäy tröôùc khi caäp nhaät giaù trò giaây, ta caàn kieåm tra xem bieán phuï count ñaõ 
baèng 5 hay chöa, neáu baèng roài thì môùi taêng giaù trò giaây vaø reset laïi bieán count. 
 Thöù hai, laøm sao caäp nhaät giaù trò giôø??? Caùc giaù trò phuùt vaø giaây taêng töø 0 ñeán 
60 neân thuaät toaùn duøng ñeå caäp nhaät laø töông ñoái ñôn giaûn (töông töï nhö thuaät toaùn ôû öùng duïng 
4.7, chæ coù ñieàu ta khoâng so saùnh haøng chuïc vôùi 10 maø so saùnh vôùi 6), coøn giaù trò giôø chæ taêng 
töø 0 ñeán 24. Giaûi thuaät ñeà ra laø ta khoâng caäp nhaät töøng haøng ñôn vò vaø haøng chuïc cuûa giaù trò 
giôø nhö ñoái voái phuùt vaø giaây, thay vaøo ñoù giaù trò giôø seõ ñöôïc caäp nhaät vaøo moät thanh ghi, sau 
ñoù duøng thuaät toaùn taùch haøng chuïc vaø haøng ñôn vò cuûa giôø nhö ôû öùng duïng 4.6 (chöông trình 
4.3.2) ñeå hieån thò caùc giaù trò thanh ghi chöùa giaù trò giôø ra LED 7 ñoaïn. 
 Ñeán ñaây ta ñaõ coù theå vieát chöông trình cho öùng duïng theo caùc giaûi thuaät ñeà ra ôû treân. 
Chöông trình cuï theå seõ ñöôïc vieát nhö sau: 
------------------------------------------------------------------------------------------------------------ 
; Ghi chuù veà chöông trình 
;----------------------------------------------------------------------------------------------------------- 
 ; Chöông trình 4.5.3 
 ; Chöông trình öùng duïng PIC16F877A vaø LED 7 ñoaïn ñeå laøm ñoàng hoà ñieän töû 
 ; Timer söû duïng: Timer1 
;------------------------------------------------------------------------------------------------------------ 
; Khai baùo vi ñieàu khieån 
;------------------------------------------------------------------------------------------------------------ 
processor 16f877a 
include 
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & 
_WRT_OFF & _LVP_OFF & _CPD_OFF 
;----------------------------------------------------------------------- 
; Khai baùo bieán 
;----------------------------------------------------------------------- 
 count1 EQU 0x20 ; Caùc thanh ghi duøng cho 
 counta EQU 0x21 ; chöông trình con delay_1ms 
 countb EQU 0x22 
 hang_don_vi_giay EQU 0x23 ; Caùc thanh ghi chöùa caùc giaù trò 
 hang_chuc_giay EQU 0x24 ; giôø, phuùt, giaây caàn hieån thò 
 hang_don_vi_phut EQU 0x25 
 hang_chuc_phut EQU 0x26 
 gio EQU 0x27 
 hang_don_vi_gio EQU 0x28 
 hang_chuc_gio EQU 0x29 
 count EQU 0x30 ; Caùc thanh ghi phuï 
 display_reg EQU 0x31 
 xx EQU 0x32 
 xx1 EQU 0x33 
 W_save EQU 0x34 ; Caùc thanh ghi duøng ñeå löu laïi giaù 
 PCLATH_save EQU 0x35 ; trò caùc thanh ghi quan troïng khi 
 STATUS_save EQU 0x36 ; thöïc thi chöông trình ngaét 
 FSR_save EQU 0x37 
 ORG 0x0004 
 GOTO ISR 
;----------------------------------------------------------------------------- 
; Chöông trình ngaét 
;----------------------------------------------------------------------------- 
ISR 
;--------------------------------------------------------------------------- 
; Ñoaïn chöông trình baét buoäc khi baét ñaàu chöông trình ngaét 
;-------------------------------------------------------------------------- 
 MOVWF W_save 
 SWAPF STATUS,W 
 CLRF STATUS 
 MOVWF STATUS_save 
 MOVF PCLATH,W 
 MOVWF PCLATH_save 
 CLRF PCLATH 
 MOVF FSR,W 
 MOVWF FSR_save 
;-------------------------------------------------------------------------------- 
; Kieåm tra caùc côø ngaét 
;-------------------------------------------------------------------------------- 
 BTFSS PIR1,TMR1IF ; kieåm tra côø ngaét cuûa Timer1 
 GOTO exit_int 
 BCF T1CON,TMR1ON ; taïm thôøi taét Timer1 ñeå khôûi taïo laïi 
;-------------------------------------------------------------------------------- 
; Caùc thao taùc chính cuûa chöông trình ngaét 
;-------------------------------------------------------------------------------- 
 CLRF TMR1L ; Khôûi taïo laïi caùc giaù trò chöùa trong thanh 
 CLRF TMR1H ; ghi TMRH vaø TMRL 
 MOVLW 0x61 ; Ñöa vaøo caùc thanh ghi ñeám cuûa Timer1 
 MOVWF TMR1H ; giaù trò 25000 (25000 -> 61A8h) 
 MOVLW 0xA8 
 MOVWF TMR1L 
 BSF T1CON,TMR1ON ; Baät Timer1 
 BCF PIR1,TMR1IF ; xoùa côø ngaét ñeå tieáp tuïc nhaän bieát thôøi ñieåm tieáp 
 ; theo ngaét xaûy ra 
 INCF count ; bieán ñeám phuï 
 MOVLW d'5' ; so saùnh count vôùi giaù trò 5 
 XORWF count,0 
 BTFSS STATUS,Z 
 GOTO exit_int ; neáu chöa baèng 5, thoaùt khoûi ngaét 
 CLRF count ; neáu ñaõ baèng 5, reset laïi bieán count 
 INCF hang_don_vi_giay,1 ; taêng haøng ñôn vò cuûa bieán giaây 
 MOVLW 0x0A ; so saùnh vôùi 10 
 XORWF hang_don_vi_giay,0 ; caäp nhaät haøng chuïc cuûa giaù trò giaây 
 BTFSS STATUS,Z 
 GOTO exit_int 
 CLRF hang_don_vi_giay 
 INCF hang_chuc_giay,1 
 MOVLW 0x06 ; so saùnh giaù trò haøng chuïc giaây vôùi 6 
 XORWF hang_chuc_giay,0 
 BTFSS STATUS,Z 
 GOTO exit_int 
 CLRF hang_chuc_giay ; caäp nhaät giaù trò phuùt 
 INCF hang_don_vi_phut,1 
 MOVLW 0x0A ; so saùnh haøng ñôn vò cuûa giaù trò phuùt vôùi 10 
 XORWF hang_don_vi_phut,0 
 BTFSS STATUS,Z 
 GOTO exit_int 
 CLRF hang_don_vi_phut 
 INCF hang_chuc_phut,1 
 MOVLW 0x06 ; so saùnh haøng chuïc cuûa giaù trò phuùt vôùi 6 
 XORWF hang_chuc_phut,0 
 BTFSS STATUS,Z 
 GOTO exit_int 
 CLRF hang_chuc_phut 
 INCF gio,1 ; caäp nhaät giaù trò giôø 
 MOVLW 0x18 
 XORWF gio,0 
 BTFSS STATUS,Z 
 GOTO exit_int 
 CLRF gio 
 GOTO exit_int 
;---------------------------------------------------------------------------------------------------------------- 
; Ñoaïn chöông trình baét buoäc duøng ñeå keát thuùc chöông trình ngaét 
;---------------------------------------------------------------------------------------------------------------- 
exit_int 
 MOVF FSR_save,W 
 MOVWF FSR 
 MOVF PCLATH_save,W 
 MOVWF PCLATH 
 SWAPF STATUS_save,W 
 MOVWF STATUS 
 SWAPF W_save,1 
 SWAPF W_save,0 
 RETFIE 
 ORG 0x0000 
 GOTO start 
 ORG 0x050 
;--------------------------------------------------------------------------------------------------- 
; Chöông trình chính 
;--------------------------------------------------------------------------------------------------- 
start 
;--------------------------------------------------------------- 
; Khôûi taïo caùc PORT ñieàu khieån 
;--------------------------------------------------------------- 
 BCF STATUS,RP1 
 BSF STATUS,RP0 
 MOVLW 0x00 ; PORTD <-output 
 MOVWF TRISD 
 MOVLW b'11000000' ; PORTB <- output 
 MOVWF TRISB ; Ta caàn 6 pin ôû PORTB ñeå ñieàu khieån queùt LED 
 BCF STATUS,RP0 
 CLRF PORTD 
 MOVLW b'00111111' ; Taét taát caû caùc LED 
 MOVWF PORTB 
;----------------------------------------------------------------- 
; Khôûi taïo Timer1 
;----------------------------------------------------------------- 
 CLRF T1CON 
 CLRF INTCON 
 CLRF TMR1H 
 CLRF TMR1L 
 BSF STATUS,RP0 ; Choïn BANK1 
 CLRF PIE1 
 BSF PIE1,TMR1IE ; Cho pheùp ngaét Timer1 
 BCF STATUS,RP0 ; Choïn BANK0 
 CLRF PIR1 ; xoùa taát caû caùc côø ngaét 
 MOVLW 0X30 ; prescaler 1:8, xung ñeám laø xung leänh, taïm thôøi 
 MOVWF T1CON ; taét Timer1 
 MOVLW 0x61 ; Khôûi taïo caùc giaù trò trong thanh ghi TMR1H 
 MOVWF TMR1H ; vaø TMR1L (TMR1H:TMR1L = 25000) 
 MOVLW 0xA8 
 MOVWF TMR1L 
 BSF T1CON,TMR1ON ; Baät Timer1 
 BSF INTCON,TMR1IE ; Cho pheùp ngaét Timer1 
 BSF INTCON,PEIE ; Cho pheùp ngaét ngoaïi vi 
 BSF INTCON,GIE ; Cho pheùp toaøn boä caùc ngaét 
;-------------------------------------------------------------------------------- 
; Khôûi taïo caùc bieán 
;-------------------------------------------------------------------------------- 
 CLRF gio 
 CLRF hang_chuc_gio 
 CLRF hang_don_vi_gio 
 CLRF hang_don_vi_phut 
 CLRF hang_chuc_phut 
 CLRF hang_chuc_giay 
 CLRF hang_don_vi_giay 
 CLRF count 
;-------------------------------------------------------------------------------- 
; Voøng laëp chính 
;-------------------------------------------------------------------------------- 
main 
 CALL hien_thi 
 GOTO main 
hien_thi 
 CALL chuyen_ma_gio ; goi chöông trình con chuyen_ma_gio 
 MOVF hang_chuc_gio,0 ; Hieån thò giaù trò giôø ra LED 
 CALL table 
 MOVWF PORTD 
 MOVLW b'11011111' 
 MOVWF PORTB 
 CALL delay_1ms 
 MOVF hang_don_vi_gio,0 
 CALL table 
 MOVWF PORTD 
 MOVLW b'11101111' 
 MOVWF PORTB 
 CALL delay_1ms 
 MOVF hang_chuc_phut,0 ; Hieån thò giaù trò phuùt ra LED 
 CALL table 
 MOVWF PORTD 
 MOVLW b'11110111' 
 MOVWF PORTB 
 CALL delay_1ms 
 MOVF hang_don_vi_phut,0 
 CALL table 
 MOVWF PORTD 
 MOVLW b'11111011' 
 MOVWF PORTB 
 CALL delay_1ms 
 MOVF hang_chuc_giay,0 ; Hieån thò giaù trò giaây ra LED 
 CALL table 
 MOVWF PORTD 
 MOVLW b'11111101' 
 MOVWF PORTB 
 CALL delay_1ms 
 MOVF hang_don_vi_giay,0 
 CALL table 
 MOVWF PORTD 
 MOVLW b'11111110' 
 MOVWF PORTB 
 CALL delay_1ms 
 RETURN 
table ; Baûng döõ lieäu duøng ñeå chuyeån ñoåi 
 ADDWF PCL,1 ; töø maõ thaäp phaân sang maõ LED 7 ñoaïn 
 RETLW 0xC0 
 RETLW 0xF9 
 RETLW 0xA4 
 RETLW 0xB0 
 RETLW 0x99 
 RETLW 0x92 
 RETLW 0x82 
 RETLW 0xF8 
 RETLW 0x80 
 RETLW 0x90 
delay_1ms ; Chöông trình con taïo thôøi gian delay 1ms 
 MOVLW d'1' 
 MOVWF count1 
d2 MOVLW 0xC7 
 MOVWF counta 
 MOVLW 0x01 
 MOVWF countb 
delay_1 
 DECFSZ counta,1 
 GOTO $+2 
 DECFSZ countb,1 
 GOTO delay_1 
 DECFSZ count1,1 
 GOTO d2 
 RETURN 
chuyen_ma_gio ; chöông trình con duøng ñeå taùch rôøi giaù trò haøng 
 MOVF gio,0 ; chuïc vaø haøng ñôn vò cuûa thanh ghi chöa giaù trò 
 MOVWF display_reg ; giôø vaø chuyeån sang maõ thaäp phaân 
 ANDLW 0x0F ; Keát quaû chuyeån ñoåi ñöôïc löu trong thanh ghi 
 MOVWF hang_don_vi_gio ; hang_don_vi_gio vaø hang_phut_gio 
 MOVLW 0xF0 
 ANDWF display_reg,0 
 MOVWF hang_chuc_gio 
 SWAPF hang_chuc_gio,1 
 MOVF hang_don_vi_gio,0 
 CALL chuyen_ma 
 MOVWF hang_don_vi_gio 
 BTFSC xx1,0 
 INCF hang_chuc_gio,1 
 MOVF hang_chuc_gio,0 
 CALL chuyen_ma 
 MOVWF hang_chuc_gio 
 RETURN 
chuyen_ma ; chöông trình con chuyeån töø maõ HEX sang 
 MOVWF xx ; maõ thaäp phaân 
 MOVLW 0x00 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x01 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x02 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x03 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x04 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x05 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x06 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x07 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x08 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x09 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO nho_hon_10 
 MOVLW 0x0A 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO bang_10 
 MOVLW 0x0B 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO bang_11 
 MOVLW 0x0C 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO bang_12 
 MOVLW 0x0D 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO bang_13 
 MOVLW 0x0E 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO bang_14 
 MOVLW 0x0F 
 XORWF xx,0 
 BTFSC STATUS,Z 
 GOTO bang_15 
nho_hon_10 
 MOVLW 0x00 
 MOVWF xx1 
 MOVF xx,0 
 RETURN 
bang_10 
 MOVLW 0x01 
 MOVWF xx1 
 RETLW 0x00 
bang_11 
 MOVLW 0x01 
 MOVWF xx1 
 RETLW 0x01 
bang_12 
 MOVLW 0x01 
 MOVWF xx1 
 RETLW 0x02 
bang_13 
 MOVLW 0x01 
 MOVWF xx1 
 RETLW 0x03 
bang_14 
 MOVLW 0x01 
 MOVWF xx1 
 RETLW 0x04 
bang_15 
 MOVLW 0x01 
 MOVWF xx1 
 RETLW 0x05 
END ; Keát thuùc chöông trình 
 Thöïc ra ta coù nhieàu phöông phaùp khaùc ñeå taïo thôøi gian ñònh thôøi 1s baèng caùch söû duïng 
caùc ñaëc tính cuûa Timer1, chaúng haïn ta coù theå söû duïng oscillator ngoaïi vi khaùc cho Timer1 maø 
khoâng caàn duøng chung vôùi oscillator cuûa vi ñieàu khieån. Ta cuõng coù theå söû duïng caùc Timer 
khaùc cho öùng duïng naøy vaø tuøy theo ñaëc ñieåm caáu taïo cuûa töøng Timer ta coù theå xaùc ñònh ñöôïc 
caùc giaù trò thích hôïp ñeå taïo thôøi gian ñònh thôøi 1s. 
 Tuy nhieân duø söû duïng phöông phaùp naøo ñi nöõa ta cuõng khoâng theå taïo ra ñoàng hoà ñieän 
töû coù ñoä chính xaùc tuyeät ñoái khi sdöû duïng vi ñieàu khieån do thôøi gian thöïc thi leänh cuûa vi ñieàu 
khieån sau moãi thôøi gian ñònh thôøi khoâng theå ñöôïc xaùc ñònh moät caùch chính xaùc. Tuy nhieân 
ñaây cuõng laø öùng duïng hoaøn chænh nhaát vaø mang tính thöïc tieãn nhieàu nhaát so vôùi caùc öùng duïng 
tröôùc. 
PHUÏ LUÏC 1 SÔ ÑOÀ KHOÁI CAÙC PORT CUÛA VI ÑIEÀU KHIEÅN PIC16F877A 
P1.1 PORTA 
Sô ñoà khoái RA3:RA0 Sô ñoà khoái RA4.
Sô ñoà khoái RA5 
P1.2 PORTB
Sô ñoà khoái RB3:RB0 Sô ñoà khoái RB7:RB4
P1.3 PORTC 
Sô ñoà khoâi RC7:RC5 vaø RC2:RC0 
 Sô ñoà khoái RC4:RC3
P1.4 PORTD P1.5 PORTE 
 Sô ñoà khoái RD7:RD0 Sô ñoà khoái RE2:RE0 
PHUÏ LUÏC 2 THANH GHI SFR (SPECIAL FUNCTION REGISTER) 
P2.1 Thanh ghi TMR0: ñòa chæ 01h, 101h. 
 Thanh ghi 8 bit chöùa giaù trò cuûa boä ñònh thôøi Timer0. 
P2.2 Thanh ghi PCL: ñòa chæ 02h, 82h, 102h, 182h. 
 Thanh ghi chöùa 8 bit thaáp cuûa boä ñeám chöông trình (PC). 
P2.3 Thanh ghi STATUS: ñòa chæ 03h, 83h, 103h, 183h 
Bit 7: IRP bit choïn bank boä nhôù döõ lieäu caàn truy xuaát (duøng cho ñòa chæ giaùn tieáp). 
 IRP = 0: bank 2,3 (töø 100h ñeán 1FFh) 
 IRP = 1: bank 0,1 (töø 00h ñeán FFh) 
Bit 6,5:RP1:RP0 hai bit choïn bank boä nhôù döõ lieäu caàn truy xuaát (duøng cho ñòa chæ tröïc 
tieáp) 
Bit 4: bit chæ thò traïng thaùi cuûa WDT(Watch Dog Timer) 
 =1 khi vi ñieàu khieån vöøa ñöôïc caáp nguoàn, hoaëc sau khi leänh 
CLRWDT hay SLEEP ñöôïc thöïc thi. 
 =0 khi WDT bò traøn 
 Bit 3: bit chæ thò trang thaùi nguoàn 
 = 1 khi vi ñieàu khieån ñöôïc caáp nguoàn hoaëc sau leänh CLRWDT 
 = 0 sau khi leänh SLEEP ñöôïc thöïc thi 
 Bit 2: Z bit Zero 
 Z =1 khi keát quaû cuûa pheùp toaùn hay logic baèng 0 
 Z = 0 khi keát quaû cuûa pheùp toaùn hay logic khaùc 0 
 Bit 1: DC Digit carry/Borrow 
 DC = 1 khi keát quaû pheùp toaùn taùc ñoäng leân 4 bit thaáp coù nhôù. 
 DC = 0 khi keát quaû pheùp toaùn taùc ñoäng leân 4 bit thaáp khoâng coù nhôù. 
 Bit 0 C Carry/borrow 
 C =1 khi keát quaû pheùp toaùn taùc ñoäng leân bit MSB coù nhôù. 
 C=0 khi keát quaû pheùp toùan taùc ñoäng leân bit MSB khoâng coù nhôù. 
P2.4 Thanh ghi SFR: ñòa chæ 04h. 
 Thanh ghi chöùa con troû ñòa chæ giaùn tieáp cuûa boä nhôù döõ lieäu. 
P2.5 Thanh ghi PORTA: ñòa chæ 05h. 
 Thanh ghi chöùa giaù trò nhaän vaøo hay xuaát ra PORTA. 
P2.6 Thanh ghi PORTB: ñòa chæ 06h, 106h. 
 Thanh ghi chöùa giaù trò nhaän vaøo hay xuaát ra PORTB. 
P2.7 Thanh ghi PORTC: ñòa chæ 07h. 
 Thanh ghi chöùa giaù trò nhaän vaøo hay xuaát ra PORTC 
P2.8 Thanh ghi PORTD: ñòa chæ 08h. 
 Thanh ghi chöùa giaù trò nhaän vaøo hay xuaát ra PORTD. 
P2.9 Thanh ghi PORTE: ñòa chæ 09h. 
 Thanh ghi chöùa giaù trò nhaän vaøo hay xuaát ra PORTE. 
P2.10 Thanh ghi PCLATCH: ñòa chæ 0Ah, 8Ah, 10Ah, 18Ah. 
 Thanh ghi ñoùng vai troø laø buffer ñeäm trong quaù trình ghi giaù trò leân 5 bit cao cuûa boä 
ñeám chöông trình PC. 
P2.11 Thanh ghi INTCON: ñòa chæ 0Bh, 8Bh, 10Bh, 18Bh. 
 Thanh ghi chöùa caùc bit ñieàu khieån vaø caùc bit côø hieäu khi timer0 bò traøn, ngaét ngoaïi vi 
RB0/INT vaø ngaét interrput-on-change taïi caùc chaân cuûa PORTB. 
 Bit 7 GIE Global Interrupt Enable bit 
 GIE = 1 cho pheùp taát caû caùc ngaét. 
 GIE = 0 khoâng cho pheùp taát caû caùc ngaét. 
 Bit 6 PEIE Pheripheral Interrupt Enable bit 
 PEIE = 1 cho pheùp taát caû caùc ngaét ngoaïi vi 
 PEIE = 0 khoâng cho pheùp taát caû caùc ngaét ngoaïi vi 
 Bit 5 TMR0IE Timer0 Overflow Interrupt Enable bit 
 TMR0IE = 1 cho pheùp ngaét Timer0 
 TMR0IE = 0 khoâng cho pheùp ngaét Timer0 
 Bit 4 RBIE RB0/INT External Interrupt Enable bit 
 RBIE = 1 cho pheùp ngaét ngoaïi vi RB0/INT 
 RBIE = 0 khoâng cho pheùp ngaét ngoaïi vi RB0/INT 
 Bit 3 RBIE RB Port change Interrupt Enable bit 
 RBIE = 1 cho pheùp ngaét RB Port change 
 RBIE = 0 khoâng cho pheùp ngaét RB Port change 
 Bit 2 TMR0IF Timer0 Interrupt Flag bit 
TMR0IF = 1 thanh ghi TMR0 bò traøn (phaûi xoùa baèng chöông 
trình) . 
TMR0IF = 0 thanh ghi TMR0 chöa bò traøn. 
 Bit 1 INTF BR0/INT External Interrupt Flag bit 
INTF = 1 ngaét RB0/INT xaûy ra (phaûi xoùa côø hieäu baèng chöông 
trình). 
 INTF = 0 ngaét RB0/INT chöa xaûy ra. 
 Bit 0 RBIF RB Port Change Interrupt Flag bit 
RBIF = 1 ít nhaát coù moät chaân RB7:RB4 coù söï thay ñoåi traïng 
thaùi.Bit naøy phaûi ñöôïc xoùa baèng chöông trình sau khi ñaõ kieåm tra laïi 
caùc giaù trò cuûa caùc chaân taïi PORTB. 
 RBIF = 0 khoâng coù söï thay ñoåi traïng thaùi caùc chaân RB7:RB4. 
P2.12 Thanh ghi PIR1: ñòa chæ 0Ch 
 Thanh ghi chöùa côø ngaét cuûa caùc khoái ngoaïi vi. 
 Bit 7 PSPIF Parallel Slave Port Read/Write Interrupt Flag bit 
PSPIF = 1 vöøa hoaøn taát thao taùc ñoïc hoaëc ghi PSP (phaûi xoùa baèng 
chöông trình). 
PSPIF = 0 khoâng coù thao taùc ñoïc ghi PSP naøo dieãn ra. 
 Bit 6 ADIF ADC Interrupt Flag bit 
 ADIF = 1 hoaøn taát chuyeån ñoåi ADC. 
 ADIF = 0 chöa hoaøn taát chuyeån ñoåi ADC. 
 Bit 5 RCIF USART Receive Interrupt Flag bit 
 RCIF = 1 buffer nhaän qua chuaån giao tieáp USART ñaõ ñaày. 
 RCIF = 0 buffer nhaân qua chuaån giao tieáp USART roãng. 
 Bit 4 TXIF USART Transmit Interrupt Flag bit 
 TXIF = 1 buffer truyeàn qua chuaån giao tieáp USART roãng. 
 TXIF = 0 buffer truyeàn qua chuaån giao tieáp USART ñaày. 
 Bit 3 SSPIF Synchronous Serial Port (SSP) Interrupt Flag bit 
 SSPIF = 1 ngaét truyeàn nhaän SSP xaûy ra. 
 SSPIF = 0 ngaét truyeàn nhaän SSP chöa xaûy ra. 
 Bit 2 CCP1IF CCP1 Interrupt Flag bit 
 Khi CCP1 ôû cheá ñoä Capture 
 CCP1IF=1 ñaõ caäp nhaät giaù trò trong thanh ghi TMR1. 
 CCP1IF=0 chöa caäp nhaät giaù trò trong thanh ghi TMR1. 
 Khi CCP1 ôû cheá ñoä Compare 
 CCP1IF=1 giaù trò caàn so saùnh baèng vôùi giaù trò chöùa trong TMR1 
 CCP1IF=0 giaù trò caàn so saùnh khoâng baèng vôùi giaù trò trong TMR1. 
 Bit 1 TMR2IF TMR2 to PR2 Match Interrupt Flag bit 
TRM2IF = 1 giaù trò chöùa trong thanh ghi TMR2 baèng vôùi giaù trò chöùa 
trong thanh ghi PR2. 
TRM2IF = 0 giaù trò chöùa trong thanh ghi TMR2 chöa baèng vôùi giaù trò 
chöùa trong thanh ghi PR2. 
 Bit 0 TMR1IF TMR1 Overflow Interrupt Flag bit 
TMR1IF = 1 thanh ghi TMR1 bò traøn (phaûi xoùa baèng chöông trình). 
 TMR1IF = 0 thanh ghi TMR1 chöa bò traøn. 
P2.13 Thanh ghi PIR2: ñòa chæ 0Dh 
 Bit 7, 5, 2, 1: khoâng quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 6 CMIF Comparator Interrupt Flag bit 
 CMIF = 1 tín hieäu ngoõ vaøo boä so saùnh thay ñoåi. 
 CMIF = 0 tín hieäu ngoõ vaøo boä so saùnh khoâng thay ñoåi. 
 Bit 4 EEIF EEPROM Write Operation Interrupt Flag bit 
 EEIF = 1 quaù trình ghi döõ lieäu leân EEPROM hoaøn taát. 
 EEIF = 0 quaù trình ghi döõ lieäu leân EEPROM chöa hoaøn taát hoaëc chöa 
baét ñaàu. 
 Bit 3 BCLIF Bus Collision Interrupt Flag bit 
 BCLIF = 1 Bus truyeàn nhaän ñang baän khi (ñang coù döõ lieäu truyeàn ñi 
trong bus) khi SSP haït ñoäng ôû cheá ñoä I2C Master mode. 
 BCLIF = 0 Bus truyeàn nhaän chöa bò traøn (khoâng coù döõ lieäu truyeàn ñi 
trong bus). 
 Bit 0 CCP2IF CCP2 Interrupt Flag bit 
 ÔÛ cheá ñoä Capture 
 CCP2IF = 1 ñaõ caäp nhaät giaù trò trong thanh ghi TMR1. 
 CCP2IF = 0 chöa caäp nhaät giaù trò trong thanh ghi TMR1. 
 ÔÛ cheá ñoä Compare 
 CCP2IF = 1 giaù trò caàn so saùnh baèng vôùi giaù trò chöùa trong TMR1. 
 CCP2IF = 0 giaù trò caàn so saùnh chöa baèng vôùi giaù trò chöùa trong TMR1. 
P2.14 Thanh ghi TMR1L: ñòa chæ 0Eh 
 Thanh ghi chöùa 8 bit thaáp cuûa boä ñònh thôøi TMR1. 
P2.15 Thanh ghi TMR1H: ñòa chæ 0Fh 
 Thanh ghi chöùa 8 bit cao cuûa boä ñònh thôøi TMR2. 
P2.16 Thanh ghi T1CON: ñòa chæ 10h 
 Thanh ghi ñieàu khieån Timer1. 
 Bit 7,6 Khoâng quan taâm vaø mang giaù trò maëc ñònh baèng 0. 
 Bit 5,4 T1CKPS1:T1CKPS0 Timer1 Input Clock Prescaler Select bit 
11 tæ soá chia taàn soá cuûa prescaler laø 1:8 
10 tæ soá chia taàn soá cuûa prescaler laø 1:4 
01 tæ soá chia taàn soá cuûa prescaler laø 1:2 
00 tæ soá chia taàn soá cuûa prescaler laø 1:1 
Bit 3 T1OSCEN Timer1 Oscillator Enable Control bit 
 T1OSCEN = 1 cho pheùp Timer1 hoaït ñoäng vôùi xung do oscillator cung caáp. 
 T1OSCEN = 0 khoâng cho pheùp Timer1 hoaït ñoäng vôùi xung do oscillator cung 
caáp (taét boä chuyeån ñoåi xung beân trong Timer1). 
Bit 2 Timer1 Ïternal Clock Input Synchronization Control bit 
 Khi TMR1CS = 1: 
 = 1 khoâng ñoàng boä xung clock ngoaïi vi ñöa vaøo Timer1. 
 = 0 ñoàng boä xung clock ngoaïi vi ñöa vaøo Timer1. 
 Khi TMR1CS = 0 
 Bit khoâng ñöôïc quan taâm do Timer1 söû duïng xung clock beân 
trong. 
Bit 1 TMR1CS Timer1 Clock Source Select bit 
 TMR1CS = 1 choïn xung ñeám laø xung ngoaïi vi laáy töø pin RC0/T1OSC/T1CKI 
(caïnh taùc ñoäng laø caïnh leân). 
 TMR1CS = 0 choïn xung ñeám laø xung clock beân trong (FãOSC/4). 
Bit 0 TMR1ON Timer1 On bit 
 TMR1ON = 1 cho pheùp Timer1 hoaït ñoäng. 
 TMR1ON = 0 Timer1 ngöng hoaït ñoäng. 
P2.17 Thanh ghi TMR2: ñòa chæ 11h 
 Thanh ghi chöùa giaù trò boä ñeám Timer2. 
P2.18 Thanh ghi T2CON: ñòa chæ 12h 
 Thanh ghi ñieàu khieån Timer2. 
 Bit 7 Khoâng quan taâm vaø maëc ñònh mang giaù trò 0 
 Bit 6-3 TOUTPS3:TOUTPS0 Timer2 Output Postscaler Select bit 
 Caùc bit naøy ñieàu khieån vieäc löïa choïn tæ soá chia taàn soá cho postscaler. 
 0000 tæ soá 1:1 
 0001 tæ soá 1:2 
 0010 tæ soá 1:3 
 …………………… 
1111 tæ soá 1:16 
Bit 2 TMR2ON Timer2 On bit 
 TMR2ON = 1 baät Timer2. 
 TMR2ON = 0 taét Timer2. 
Bit 1,0 T2CKPS1:T2CKPS0 Timer2 Clock Prescaler Select bit 
 Caùc bit naøy ñieàu khieån tæ soá chi taàn soá cuûa prescaler 
00 tæ soá 1:1 
01 tæ soá 1:4 
1x tæ soá 1:16 
P2.19 Thanh ghi SSPBUF: ñòa chæ 13h 
 Thanh ghi ñeäm döõ lieäu 8 bit cho chuaån giao tieáp MSSP. 
P2.20 Thanh ghi SSPCON: ñòa chæ 14h 
 Thanh ghi ñieàu khieån chuaån giao tieáp MSSP. 
Khi MSSP ôû cheá ñoä SPI: 
Bit 7 WCOL Write Collition Detect bit 
 WCOL = 1 döõ lieäu môùi ñöôïc ñöa vaøo thanh ghi SSPBUF trong khi chöa truyeàn 
xong döõ lieäu tröôùc ñoù. 
 WCOL = 0 khoâng coù hieän töôïng treân xaûy ra. 
Bit 6 SSPOV Receive Overflow Indicalor bit (bit naøy chæ coù taùc duïng ôû cheá ñoä SPI 
Slave mode). 
 SSPOV = 1 döõ lieäu trong bufer ñeäm (thanh ghi SSPBUF) bò traøn (döõ lieäu cuõ 
chöa ñöôïc ñoïc thì coù döõ lieäu môùi gi ñeø leân). 
 SSPOV = 0 khoâng coù hieän töôïng treân xaûy ra. 
Bit 5 SSPEN Synchronous Serial Port Enable bit 
 SSPEN = 1 cho pheùp coång giao tieáp MSSP (caùc pin SCK, SDO, SDI vaø ). 
 SSPEN = 0 khoâng cho pheùp coång giao tieáp MSSP. 
Bit 4 CKP Clock Polarity Select bit 
 CKP = 1 traïng thaùi chôø cuûa xung clock laø möùc logic cao. 
 CKP = 0 traïng thaùi chôø cuûa xung clock laø möùc logic thaáp. 
Bit 3-0 SSPM3:SSPM0 Synchronous Serial Mode Select bit 
 Caùc bit naøy ñoùng vai troø löïa choïn caùc cheá ñoä hoaït ñoäng cuûa MSSP. 
0101 Slave mode, xung clock laáy töø pin SCK, khoâng cho pheùp pin ñieàu khieån 
 ( laø pin I/O bình thöôøng). 
0100 SPI Slave mode, xung clock laáy töø pin SCK, cho pheùp pin ñieàu khieån . 
0011 SPI Master mode, xung clock baèng (ngoõ ra TMR2)/2. 
0010 SPI Master mode, xung clock baèng (FOSC/64). 
0001 SPI Master mode, xung clock baèng (FOSC/16). 
0000 SPI Master mode, xung clock baèng (FOSC/4). 
Caùc traïng thaùi khoâng ñöôïc lieät keâ hoaëc khoâng coù taùc duïng ñieàu khieån hoaëc chæ 
coù taùc duïng ñoái vôùi cheá ñoä I2C mode. 
Khi MSSP ôû cheá ñoä I2C 
Bit 7 WCOL Write Collition Detect bit 
 Khi truyeàn döõ lieäu ôû cheá ñoä I2C Master mode: 
 WCOL = 1 ñöa döõ lieäu truyeàn ñi vaøo thanh ghi SSPBUF trong khi cheá ñoä 
truyeàn döõ lieäu cuûa I2C chöa saün saøng. 
 WCOL = 0 khoâng xaûy ra hieän töôïng treân. 
 khi truyeàn döõ lieäu ôû cheá ñoä I2C Slave mode: 
 WCOL = 1 döõ lieäu môùi ñöôïc ñöa vaøo thanh ghi SSPBUF trong khi döõ lieäu cuõ 
chöa ñöôïc truyeàn ñi. 
 WCOL = 0 khoâng coù hieän töôïng treân xaûy ra. 
 ÔÛ cheá ñoä nhaän döõ lieäu (Master hoaëc Slave): 
 Bit naøy khoâng coù taùc duïng chæ thi caùc traïng thaùi. 
Bit 6 SSPOV Receive Overflow Indicator Flag bit. 
 Khi nhaän döõ lieäu: 
 SSPOV = 1 döõ lieäu môùi ñöôïc nhaän vaøo thanh ghi SSPBUF trong khi döõ lieäu cuõ 
chöa ñöôïc ñoïc. 
 SSPOV = 0 khoâng coù hieän töôïng treân xaûy ra. 
 Khi truyeàn döõ lieäu: 
 Bit naøy khoâng coù taùc duïng chæ thò caùc traïng thaùi. 
Bit 5 SSPEN Synchronous Serial Port Enable bit 
 SSPEN = 1 cho pheùp coång giao tieáp MSSP (caùc pin SDA vaø SCL). 
 SSPEN = 0 khoâng cho pheùp coång giao tieáp MSSP. 
 Caàn chuù yù laø caùc pin SDA vaø SCL phaûi ñöôïc ñieàu khieån traïng thaùi baèng caùc bit 
töông öùng trong thanh ghi TRISC tröôùc ñoù). 
Bit 4 CKP SCK Release Control bit 
 ÔÛ cheá ñoä Slave mode: 
 CKP = 1 cho xung clock taùc ñoäng. 
 CKP = 0 giöõ xung clock ôû möùc logic thaáp (ñeå baûo ñaûm thôøi gian thieát laäp döõ 
lieäu). 
Bit 3,0 SSPM3:SSPM0 
 Caùc bit naøy ñoùng vai troø löïa choïn caùc cheá ñoä hoaït ñoäng cuûa MSSP. 
 1111 I2C Slave mode 10 bit ñòa chæ vaø cho pheùp ngaét khi phaùt hieän bit Start vaø 
bit Stop. 
 1110 I2C Slave mode 7 bit ñòa chæ vaø cho pheùp ngaét khi phaùt hieän bit Start vaø 
bit Stop. 
 1011 I2C Firmwave Controlled Master mode (khoâng cho pheùp cheá ñoä Slave). 
 1000 I2C Master mode, xung clock = FOSC/(4*(SSPADD+1)). 
 0111 I2C Slave mode 10 bit ñòa chæ. 
 Caùc traïng thaùi khoâng ñöôïc lieät keâ hoaëc khoâng coù taùc duïng ñieàu khieån hoaëc chæ coù taùc 
duïng ñoái vôùi cheá ñoä SPI mode. 
P2.21 Thanh ghi CCPR1L: ñòa chæ 15h 
 Thanh ghi chöùa 8 bit thaáp cuûa khoái CCP1. 
P2.22 Thanh ghi CCPR1H: ñòa chæ 16h 
 Thanh ghi chöùa 8 bit cao cuûa khoái CCP1. 
P2.23 Thanh ghi CCP1CON vaø thanh ghi CCP2CON: ñòa chæ 17h (CCP1CON) vaø 1Dh 
(SSP2CON) 
 Thanh ghi ñieàu khieån khoái CCP1. 
 Bit 7,6 Khoâng coù taùc duïng vaø maëc ñònh mang giaù trò 0. 
Bit 5,4 CCPxX:CCPxY: PWM least Significant bits (caùc bit naøy khoâng coù taùc duïng ôû 
cheá ñoä Capture vaø Compare) 
 ÔÛ cheá ñoä PWM, ñaây laø 2 bit MSB chöùa giaù trò tính ñoä roäng xung (duty cycle) 
cuûa khoái PWM (8 bit coøn laïi ñöôïc chöùa trong thanh ghi CCPRxL). 
Bit 3-0 CCPxM3:CCPxM0 CCPx Mode Select bit 
Caùc bit duøng ñeå xaùc laäp caùc cheá ñoä hoaït ñoäng cuûa khoái CCPx 
0000 khoâng cho pheùp CCPx (hoaëc duøng ñeå reset CCPx) 
0100 CCPx hoaït ñoäng ôû cheá ñoä Capture, “hieän töôïng” ñöôïc thieát laäp laø moãi 
caïnh xuoáng taïi pin duøng cho khoái CCPx. 
0101 CCPx hoaït ñoäng ôû cheá ñoä Capture, “hieän töôïng” ñöôïc thieát laäp laø moãi 
caïnh leân taïi pin duøng cho khoái CCPx. 
0110 CCPx hoaït ñoäng ôû cheá ñoä Capture, “hieän töôïng” ñöôïc thieát laäp laø moãi 
caïnh leân thöù 4 taïi pin duøng cho khoái CCPx. 
0111 CCPx hoaït ñoäng ôû cheá ñoä Capture, “hieän töôïng” ñöôïc thieát laäp laø moãi 
caïnh leân thöù 16 taïi pin duøng cho khoái CCPx. 
1000 CCPx hoaït ñoäng ôû cheá ñoä Compare, ngoõ ra ñöôïc ñöa leân möùc cao vaø bit 
CCPxIF ñöôïc set khi caùc giaù trò caàn so saùnh baèng nhau. 
1001 CCPx hoaït ñoäng ôû cheá ñoä Compare, ngoõ ra ñöôïc xuoáng möùc thaáp vaø bit 
CCPxIF ñöôïc set khi caùc giaù trò caàn so saùnh baèng nhau. 
1010 CCPx hoaït ñoäng ôû cheá ñoä Compare, khi caùc giaù trò caàn so saùnh baèng 
nhau, ngaét xaûy ra, bit CCPxIF ñöôïc set vaø traïng thaùi pin output khoâng bò aûnh 
höôûng. 
1011 CCPx hoaït ñoäng ôû cheá ñoä Compare, khi caùc giaù trò caàn so saùnh baèng 
nhau, xung trigger ñaëc bieät (Trigger Special Event) seõ ñöôïc taïo ra, khi ñoù côø 
ngaét CCPxIF ñöôïc set, caùc pin output khoâng thay ñoåi traïng thaùi, CCp1 reset 
Timer1, CCP2 reset Timer1 vaø khôûi ñoäng khoái ADC. 
11xx CCPx hoaït ñoäng ôû cheá ñoä PWM. 
P2.24 Thanh ghi RCSTA: ñòa chæ 18h 
 Thanh ghi chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån quaù trình nhaän döõ lieäu qua 
chuaån giao tieáp USART. 
Bit 7 SPEN Serial Port Enable bit 
 SPEN = 1 Cho pheùp coång giao tieáp USART (pin RC7/RX/DT vaø RC6/TX/CK). 
 SPEN = 0 khoâng cho pheùp coång giao tieáp USART. 
Bit 6 RX9 9-bit Receive Enable bit 
 RX9 = 1 nhaän 9 bit döõ lieäu. 
 RX9 = 0 nhaän 8 bit döõ lieäu. 
Bit 5 SREN Single Receive Enable bit 
 ÔÕ cheá ñoä USART baát ñoàng boä: bit naøy khoâng caàn quan taâm. 
 ÔÛ cheá ñoä USART Master ñoàng boä: 
 SREN = 1 cho pheùp chöùc naêng nhaän 1 byte döõ lieäu (8 bit hoaëc 9 bit). 
 SREN = 0 khoâng cho pheùp chöùc naêng nhaän 1 byte döõ lieäu. 
Bit 4 CREN Continous Receive Enable bit 
 ÔÛ cheá ñoä baát ñoàng boä: 
 CREN = 1 cho pheùp nhaän 1 chuoãi döõ lieäu lieân tuïc. 
 CREN = 0 khoâng cho pheùp nhaän 1 chuoãi döõ lieäu lieân tuïc. 
 ÔÛ cheá ñoä baát ñoàng boä: 
 CREN = 1 cho pheùp nhaän döõ lieäu cho tôùi khi xoùa bit CREN. 
 CREN = 0 khoâng cho pheùp nhaän chuoãi döõ lieäu. 
Bit 3 ADDEN Address Detect Enable bit 
 ÔÛ cheá ñoä USART baát ñoàng boä 9 bit 
 ADDEN = 1 cho pheùp xaùc nhaän ñòa chæ, khi bit RSR ñöôïc set thì ngaét ñöôïc 
cho pheùp thöïc thi vaø giaù trò trong buffer ñöôïc nhaän vaøo. 
 ADDEN = 0 khoâng cho pheùp xaùc nhaän ñiz5 chæ, caùc byte döõ lieäu ñöôïc nhaän 
vaøo vaø bit thöù 9 coù theå ñöôïc söû duïng nhö laø bit parity. 
 Bit 2 FERR Framing Eror bit 
 FERR = 1 xuaát hieän loãi “Framing” trong quaù trình truyeàn nhaän döõ lieäu. 
 FERR = 0 khoâng xuaát hieän loãi “Framing” trong quaù trình truyeàn nhaän döõ lieäu. 
 Bit 1 OERR Overrun Error bit, 
 OERR = 1 xuaát hieän loãi “Overrun” 
 OERR = 0 khoâng xuaát hieän loãi “Overrun” 
 Bit 0 RX9D 
 Bit naøy chöùa bit döõ lieäu thöù 9 cuûa döõ lieäu truyeàn nhaän. 
P2.25 Thanh ghi XTREG: ñòa chæ 19h 
 Thanh ghi ñoùng vai troø laø buffer ñeäm 8 bit trong quaù trình truyeàn döõ lieäu thoâng qua 
chuaån giao tieáp USART. 
P2.26 Thanh ghi RCREG: ñòa chæ 1Ah 
Thanh ghi ñoùng vai troø laø buffer ñeäm trong quaù trình nhaän döõ lieäu qua chuaån giao tieáp 
USART. 
P2.27 Thanh ghi CCPR2L: ñòa chæ 1Bh 
 Thanh ghi chöùa 8 bit thaáp cuûa khoái CCP2. 
P2.28 Thanh ghi CCPR2H: ñòa chæ 1Ch 
 Thanh ghi chöùa 8 bit cao cuûa khoái CCP2. 
P2.29 Thanh ghi ADRESH: ñòa chæ 1Eh 
 Thanh ghi chöùa byte cao cuûa keát quaû quaù trình chuyeån ñoåi ADC. 
P2.30 Thanh ghi ADCON0: ñòa chæ 1Fh 
 Ñaây laø moät trong hai thanh ghi ñieàu khieån khoái chuyeån ñoåi ADC. Thanh ghi coøn laïi laø 
thanh ghi ADCON1 (ñòa chæ 9Fh) 
 Bit 7,6 ADCS1:ADCS0 A/D Conversion Clock Select bit 
Bit 5-3 CHS2:CHS0 Analog Channel Select bit 
 Caùc bit naøy duøng ñeå choïn keânh chuyeån ñoåi ADC 
 000 keânh 0 (AN0) 
 001 keânh 1 (AN1) 
 010 keânh 2 (AN2) 
 011 keânh 3 (AN3) 
100 keânh 4 (AN4) 
101 keânh 5 (AN5) 
110 keânh 6 (AN6) 
111 keânh 7 (AN7) 
Bit 2 A/D Conversion Status bit 
 Khi ADON = 1 
 = 1 A/D ñang hoaït ñoäng (set bit naøy seõ laøm khôûi ñoäng ADC vaø töï xoùa 
khi quaù trình chuyeån ñoåi keát thuùc). 
 = 0 A/D khoâng hoaït ñoäng. 
 Bit 1 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 0 ADON A/D On bit 
 ADON = 1 baät A/D 
 ADON = 0 taét A/D 
P2.31 Thanh ghi OPTION_REG: ñòa chæ 81h, 181h 
Thanh ghi naøy cho pheùp ñieàu khieån chöùc naêng pull-up cuûa caùc pin trong PORTB, xaùc 
laäp caùc tham soá veàxung taùc ñoäng, caïnh taùc ñoäng cuûa ngaét ngoaïi vi vaø boä ñeám Timer0. 
 Bit 7 PORTB pull-up enable bit 
 = 1 khoâng cho pheùp chöùc naêng pull-up cuûa PORTB 
 = 0 cho pheùp chöùc naêng pull-up cuûa PORTB 
 Bit 6 INTEDG Interrupt Edge Select bit 
 INTEDG = 1 ngaét xaûy ra khi caïnh döông chaân RB0/INT xuaát hieän. 
 INTEDG = 0 ngaét xaûy ra khi caïnh aâm chaân BR0/INT xuaát hieän. 
 Bit 5 TOCS Timer0 Clock Source select bit 
 TOSC = 1 clock laáy töø chaân RA4/TOCK1. 
TOSC = 0 duøng xung clock beân trong (xung clock naøy baèng vôùi xung clock 
duøng ñeå thöïc thi leänh). 
 Bit 4 TOSE Timer0 Source Edge Select bit 
 TOSE = 1 taùc ñoäng caïnh leân. 
 TOSE = 0 taùc ñoäng caïnh xuoáng. 
 Bit 3 PSA Prescaler Assignment Select bit 
 PSA = 1 boä chia taàn soá (prescaler) ñöôïc duøng cho WDT 
 PSA = 0 boä chia taàn soá ñöôïc duøng cho Timer0 
Bit 2:0 PS2:PS0 Prescaler Rate Select bit 
 Caùc bit naøy cho pheùp thieát laäp tæ soá chia taàn soá cuûa Prescaler. 
P2.32 Thanh ghi TRISA: ñòa chæ 85h 
 Thanh ghi ñieàu khieån xuaát nhaäp cuûa caùc pin trong PORTA. 
P2.33 Thanh ghi TRISB: ñòa chæ 86h, 186h 
 Thanh ghi ñieàu khieån xuaát nhaäp cuûa caùc pin trong PORTB. 
P2.34 Thanh ghi TRISC: ñòa chæ 87h 
 Thanh ghi ñieàu khieån xuaát nhaäp cuûa caùc pin trong PORTC. 
P2.35 Thanh ghi TRISD: ñòa chæ 88h 
 Thanh ghi ñieàu khieån xuaát nhaäp cuûa caùc pin trong PORTD. 
P2.36 Thanh ghi TRISE: ñòa chæ 89h 
 Thanh ghi ñieàu khieån xuaát nhaäp cuûa caùc pin trong PORTE, ñieàu khieån coång giao tieáp 
song song PSP (Parallel Slave Port). 
Bit 7 BIF Input Buffer Full Status bit 
 BIF = 1 moät Word döõ lieäu vöøa ñöôïc nhaän vaø ñang chôø CPU ñoïc vaøo. 
 BIF = 0 chöa coù Word döõ lieäu naøo ñöôïc nhaän. 
Bit 6 OBF Output Buffer Full Status bit 
 OBF = 1 Buffer truyeàn döõ lieäu vaãn coøn chöùa döõ lieäu cuõ vaø vaãn chöa ñöôïc ñoïc. 
 OBF = 0 Buffer truyeàn döõ lieäu ñaõ ñöôïc ñoïc. 
Bit 5 IBOV Input Buffer Overflow Detect bit 
 IBOV = 1 döõ lieäu ñöôïc ghi leân buffer trong khi döõ lieäu cuõ vaãn chöa ñöôïc ñoïc. 
 IBOV = 0 buffer chöa bò traøn. 
Bit 4 PSPMODE Parallel Slave Port Mode Select bit 
PSPMODE = 1 Cho pheùp PSP, PORTD ñoùng vai troø laø coång giao tieáp song 
song PSP. 
 PSPMODE = 0 Khoâng cho pheùp PSP. 
Bit 3 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
Bit 2 Bit2 Direction Control for pin . 
 Bit2 = 1 Input 
 Bit2 = 0 Output 
Bit 1 Bit1 Direction Control for pin 
 Bit1 = 1 Input 
 Bit1 = 0 Output 
Bit 0 Bit0 Direction Control for pin 
 Bit0 = 1 Input 
 Bit0 = 0 Output 
P2.37 Thanh ghi PIE1: ñòa chæ 8Ch 
 Thanh ghi chöùa caùc bit cho pheùp caùc ngaét ngoaïi vi. 
Bit 7 PSPIE Parallel Slave Port Read/Write Interrupt Enable bit 
 PSPIE = 1 cho pheùp ngaét PSP read/write. 
 PSPIE = 0 khoâng cho pheùp ngaé PSP read/write. 
Bit 6 ADIE ADC (A/D converter) Interrupt Enable bit 
 ADIE = 1 cho pheùp ngaét ADC. 
 ADIE = 0 khoâng cho pheùp ngaét ADC. 
Bit 5 RCIE USART Receive Interrupt Enable bit 
 RCIE = 1 cho pheùp ngaét nhaän USART 
 RCIE = 0 khoâng cho pheùpn gaét nhaän USART 
Bit 4 TXIE USART Transmit Interrupt Enable bit 
 TXIE = 1 cho pheùp ngaét truyeàn USART 
 TXIE = 0 khoâng cho pheùp ngaét truyeàn USART 
Bit 3 SSPIE Synchronous Serial Port Interrupt Enable bit 
 SSPIE = 1 cho pheùp ngaét SSP 
 SSPIE = 0 khoâng cho pheùp ngaét SSP 
Bit 2 CCP1IE CCP1 Interrupt Enable bit 
 CCP1IE = 1 cho pheùp ngaét CCP1 
 CCP1IE = 0 khoâng cho pheùp ngaét CCP1 
Bít 1 TMR2IE TMR2 to PR2 Match Interrupt Enable bit 
 TMR2IE = 1 cho pheùp ngaét. 
 TMR2IE = 0 khoâng cho pheùp ngaét. 
Bit 0 TMR1IE TMR1 Overflow Interrupt Enable bit 
 TMR1IE = 1 cho pheùp ngaét. 
TMR1IE = 0 khoâng cho pheùp ngaét. 
P2.38 Thanh ghi PIE2: ñòa chæ 8Dh 
 Thanh ghi chöùa caùc bit cho pheùp caùc ngaét ngoïai vi. 
 Bit 7, 5, 2, 1 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 6 CMIE Comparator Interrupt Enable bit 
 CMIE = 1 Cho pheùp ngaét cuûa boä so saùnh. 
 CMIE = 0 Khoâng cho pheùp ngaét. 
 Bit 4 EEIE EEPROM Write Operation Interrupt Enable bit 
 EEIE = 1 Cho pheùp ngaét khi ghi döõ lieäu leân boä nhôù EEPROM. 
 EEIE = 0 Khoâng cho pheùp ngaét khi ghi döõ lieäu leân boä nhôù EEPROM. 
 Bit 3 BCLIE Bus Collision Interrupt Enable bit 
 BCLIE = 1 Cho pheùp ngaét. 
 BCLIE = 0 Khoâng cho pheùp ngaét. 
 Bit 0 CCP2IE CCP2 Interrupt Enable bit 
 CCP2IE = 1 Cho pheùp ngaét. 
 CCP2IE = 0 Khoâng cho pheùp ngaét. 
P2.39 Thanh ghi PCON: ñòa chæ 8Eh 
 Thanh ghi ñieàu khieån 
chöùa caùc côø hieäu cho bieát traïng thaùi caùc cheá ñoä reset cuûa vi ñieàu khieån. 
 Bit 7, 6, 5, 4, 3, 2 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 1 Power-on Reset Status bit 
 = 1 khoâng coù söï taùc ñoäng cuûa Power-on Reset. 
 = 0 coù söï taùc ñoäng cuûa Power-on reset. 
 Bit 0 Brown-out Reset Status bit 
 = 1 khoâng coù söï taùc ñoäng cuûa Brown-out reset. 
 = 0 coù söï taùc ñoäng cuûa Brown-out reset. 
P2.40 Thanh ghi SSPCON2: ñòa chæ 91h 
 Thanh ghi ñieàu khieån caùc cheá ñoä hoaït ñoäng cuûa chuaån giao tieáp I2C. 
 Bit 7 GCEN General Call Enable bit 
 GCEN = 1 Cho pheùp ngaét khi ñòa chæ 0000h ñöôïc nhaän vaøo thanh ghi SSPSR 
(ñòa chæ cuûa cheá ñoä General Call Address). 
 GCEN = 0 Khoâng cho pheùp cheá ñoä ñòa chæ treân. 
 Bit 6 ACKSTAT Acknowledge Status bit (bit naøy chæ coù taùc duïng khi truyeàn döõ lieäu 
ôû cheá ñoä I2C Master mode). 
 ACKSTAT = 1 nhaän ñöôïc xung töø I2C Slave. 
 ACKSTAT = 0 chöaq nhaän ñöôïc xung . 
 Bit 5 ACKDT Acknowledge Data bit (bit naøy chæ coù taùc duïng khi nhaän döõ lieäu ôû cheá 
ñoä I2C Master mode). 
 ACKDT = 1 chöa nhaän ñöôïc xung . 
 ACKDT = 0 Ñaõ nhaän ñöôïc xung . 
 Bit 4 ACKEN Acknowledge Sequence Enable bit (bit naøy chæ coù taùc duïng khi nhaän 
döõ lieäu ôû cheá ñoä I2C Master mode) 
 ACKEN = 1 cho pheùp xung xuaát hieän ôû 2 pin SDA vaø SCL khi keát thuùc 
quaù trình nhaän döõ lieäu. 
 ACKEN = 0 khoâng cho pheùp taùc ñoäng treân. 
 Bit 3 RCEN Receive Enable bit (bit naøy chæ coù taùc duïng ôû cheá ñoä I2C Master mode). 
 RCEN = 1 Cho pheùp nhaän döõ lieäu ôû cheá ñoä I2C Master mode. 
 RCEN = 0 Khoâng cho pheùp nhaän döõ lieäu. 
 Bit 2 PEN Stop Condition Enable bit 
 PEN = 1 cho pheùp thieát laäp ñieàu kieän Stop ôû 2 pin SDA vaø SCL. 
 PEN = 0 khoâng cho pheùp taùc ñoäng treân. 
 Bit 1 RSEN Repeated Start Condition Enable bit 
 RSEN = 1 cho pheùp thieát laäp ñieàu kieän Start laëp laïi lieân tuïc ôû 2 pin SDA vaø 
SCL. 
 RSEN = 0 khoâng cho pheùp taùc ñoäng treân. 
 Bit 0 SEN Start Condition Enable/Stretch Enable bit 
 ÔÛ cheá ñoä Master mode: 
 SEN = 1 cho pheùp thieát laäp ñieàu kieän Start ôû 2 pin SDA vaø SCL. 
 SEN = 0 khoâng cho pheùp taùc ñoäng treân. 
 ÔÛ cheá ñoä Slave mode: 
 SEN = 1 cho pheùp khoùa xung clock töø pin SCL cuûa I2C Master. 
 Khoâng cho pheùp taùc ñoäng treân. 
P2.41 Thanh ghi PR2: ñòa chæ 92h 
 Thanh ghi duøng ñeå aán ñònh tröôùc giaù trò ñeám cho Timer2. Khi vi ñieàu khieån ñöôïc 
reset, PR2 mang giaù trò FFh. Khi ta ñöa moät giaù trò vaøo thanh ghi PR2, Timer2 seõ ñeám töø 00h 
cho ñeán khi giaù trò boä ñeám cuûa Timer2 baèng vôùi giaù trò cuûa boä ñeám trong thanh ghi PR2. Nhö 
vaäy maëc ñònh Timer2 seõ ñeám töø 00h ñeán FFh. 
P2.42 Thanh ghi SSPADD: ñòa chæ 93h 
 Thanh ghi chöùa ñòa chæ cuûa vi ñieàu khieån khi hoaït ñoäng ôû chuaån giao tieáp I2C Slave 
mode. Khi khoâng duøng ñeå chöùa ñòa chæ (I2C Master mode) SSPADD ñöôïc duøng ñeå chöùa giaù 
trò taïo ra xung clock ñoàng boä taïi pin SCL. 
P2.43 Thanh ghi SSPSTAT: ñòa chæ 94h 
 Thanh ghi chöùa caùc bit traïng thaùi cuûa chuaån giao tieáp MSSP. 
Khi MSSP hoaït ñoäng ôû cheá ñoä SPI: 
 Bit 7 SMP Sample bit 
 SPI Master mode: 
 SMP = 1 döõ lieäu ñöôïc laáy maãu (xaùc ñònh trang thaùi logic) taïi thôøi ñieåm cuoái 
xung clock. 
 SMP = 0 döõ lieäu ñöôïc laáy maãu taïi thôøi ñieåm giöõa xung clock. 
 SPI Slave mode: bit naøy phaûi ñöôïc xoùa veà 0. 
 Bit 6 CKE SPI Clock Select bit 
 CKE = 1 SPI Master truyeàn döõ lieäu khi xung clock chuyeån töø traïng thaùi tích 
cöïc ñeán traïng thaùi chôø. 
 CKE = 0 SPI Master truyeàn döõ lieäu khi xung clock chuyeån töø traïng thaùi chôø 
ñeán traïng thaùi tích cöïc. 
 (traïng thaùi chôø ñöôïc xaùc ñònh bôûi bit CKP (SSPCON). 
 Bit 5 bit. 
 Bit naøy chæ coù taùc duïng ôû cheá ñoä I2C mode. 
 Bit 4 P Stop bit 
 Bit naøy chæ söû duïng khi MSSP ôû cheá ñoä I2C. 
 Bit 3 S Start bit 
 Bit naøy chæ coù taùc duïng khi MSSP ôû cheá ñoä I2C. 
 Bit 2 bit information 
 Bit naøy chæ coù taùc duïng khi MSSP ôû cheá ñoä I2C. 
 Bit 1 UA Update Address bit 
 Bit naøy chæ coù taùc duïng khi MSSP ôû cheá ñoä I2C. 
 Bit 0 BF Buffer Status bit 
 BF = 1 thanh ghi ñeäm SSPBUF ñaõ coù döõ lieäu. 
 BF = 0 thanh ghi ñeäm SSPBUF chöa coù döõ lieäu. 
Khi hoaït ñoäng ôû cheá ñoä I2C 
 Bit 7 SPM Slew Rate Control bit 
 SPM = 1 duøng toác ñoä chuaån (100 KHz vaø 1 MHz). 
 SPM = 0 duøng toác ñoä cao ( 400 KHz). 
 Bit 6 CKE MSBus Select bit 
 CKE = 1 cho pheùp MSBus. 
 CKE = 0 khoâng cho pheùp MSBus. 
 Bit 5 bit 
 I2C Master mode: khoâng quan taâm. 
 = 1 byte vöøa truyeàn ñi hoaëc nhaän ñöôïc laø döõ lieäu. 
 = 0 byte vöøa truyeàn ñi hoaëc nhaän ñöôïc laø ñòa chæ. 
 Bit 4 P Stop bit 
 P = 1 vöøa nhaän ñöôïc bit Stop. 
 P = 0 chöa nhaän ñöôïc bit Stop. 
 Bit 3 S Start bit 
 S = 1 vöøa nhaän ñöôïc bit Start. 
 S = 0 chöa nhaän ñöôïc bit Start. 
 Bit 2 bit information 
 I2C Slave mode: 
 = 1 ñoïc döõ lieäu. 
 = 0 ghi döõ lieäu. 
 I2C Master mode: 
 = 1 ñang truyeàn döõ lieäu. 
 = 0 khoâng truyeàn döõ lieäu. 
 Bit 1 UA Update Address 
 Bit naøy chæ coù taùc duïng ñoái vôùi cheá ñoä I2C Slave mode10 bit ñòa chæ. 
 UA = 1 vi ñieàu khieån caàn caäp nhaät theâm ñòa chæ töø thanh ghi SSPADD. 
 UA = 0 khoâng caàn caäp nhaät theâm ñòa chæ. 
 Bit 0 BF Buffer Full Status bit 
 BF = 1 Thanh ghi SSPBUF ñang chöùa döõ lieäu truyeàn ñi hoaëc nhaän ñöôïc. 
 BF = 0 thanh ghi SSPBUF khoâng coù döõ lieäu. 
P2.44 Thanh ghi TXSTA: ñòa chæ 98h 
 Thanh ghi chöùa caùc bit traïng thaùi vaø ñieàu khieån vieäc truyeàn döõ lieäu thoâng qua chuaån 
giao tieáp USART. 
 Bit 7 CSRC Clock Source Select bit 
 ÔÛ cheá ñoä baát ñoàng boä: khoâng caàn quan taâm. 
 ÔÛ cheá ñoä ñoàng boä: 
 CSRC = 1 Master mode (xung clock ñöôïc laáy töø boä taïo xung BRG). 
 CSRC = 0 Slave mode (xung clock ñöôïc nhaän töø beân ngoaøi). 
 Bit 6 TX-9 9-bit Transmit Enable bit 
 TX-9 = 1 truyeàn döõ lieäu 9 bit. 
 TX-9 = 0 truyeàn döõ lieäu 8 bit. 
 Bit 5 TXEN Transmit Enable bit 
 TXEN = 1 cho pheùp truyeàn. 
 TXEN = 0 khoâng cho pheùp truyeàn. 
 Bit 4 SYNC USART Mode Select bit 
 SYNC = 1 daïng ñoàng boä 
 SYNC = 0 daïng baát ñoàng boä. 
 Bit 3 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 2 BRGH High Baud Rate Select bit 
 Bit naøy chæ coù taùc duïng ôû cheá ñoä baát ñoàng boä. 
 BRGH = 1 toác ñoä cao. 
 BRGL = 0 toác ñoä thaáp. 
 Bit 1 TRMT Transmit Shift Register Status bit 
 TRMT = 1 thanh ghi TSR khoâng coù döõ lieäu. 
 TRMT = 0 thanh ghi TSR coù chöùa döõ lieäu. 
 Bit 0 TX9D 
 Bit naøy chöùa bit döõ lieäu thöù 9 khi döõ lieäu truyeàn nhaän laø 9 bit. 
P2.45 Thanh ghi SPBRG: ñòa chæ 99h 
 Thanh ghi chöùa giaù trò taïo xung clock cho boä taïo xung BRG (Baud Rate Generator). 
Taàn soá xung clock do BRG taïo ra ñöôïc tính theo caùc coâng thöùc trong baûng sau: 
 Trong ñoù X laø giaù trò chöùa trong thanh ghi SRBRG. 
Thanh ghi CMCON: ñòa chæ 9Ch 
 Thanh ghi ñieàu khieån vaø chæ thò caùc traïng thaùi cuõng nhö keát quaû cuûa boä so saùnh. 
 Bit 7 C2OUT Comparator 2 (C2) Output bit 
 Khi C2INV = 0 
 C2OUT = 1 khi (pin VIN+ cuûa C2)> (pin VIN- cuûa C2). 
 C2OUT = 0 khi (pin VIN+ cuûa C2) < (pin VIN- cuûa C2). 
 Khi C2INV = 1 
 C2OUT = 1 khi (pin VIN+ cuûa C2)< (pin VIN- cuûa C2). 
 C2OUT = 0 khi (pin VIN+ cuûa C2) > (pin VIN- cuûa C2). 
 Bit 6 C1OUT Comparator 1 (C1) Output bit 
 Khi C1INV = 0 
 C1OUT = 1 khi (pin VIN+ cuûa C1)> (pin VIN- cuûa C1). 
 C1OUT = 0 khi (pin VIN+ cuûa C1) < (pin VIN- cuûa C1). 
 Khi C1INV = 1 
 C1OUT = 1 khi (pin VIN+ cuûa C1)< (pin VIN- cuûa C1). 
 C1OUT = 0 khi (pin VIN+ cuûa C1) > (pin VIN- cuûa C1). 
 Bit 5 C2INV Comparator 2 Output Conversion bit 
 C2INV = 1 ngoõ ra C2 ñöôïc ñaûo traïng thaùi. 
 C2INV = 0 ngoõ ra C2 khoâng ñaûo traïng thaùi. 
 Bit 4 C1INV Comparator 1 Output Conversion bit 
 C1INV = 1 ngoõ ra C1 ñöôïc ñaûo traïng thaùi. 
 C1INV = 0 ngoõ ra C1 khoâng ñaûo traïng thaùi. 
 Bit 3 CIS Comparator Input Switch bit 
 Bit naøy chæ coù taùc duïng khi CM2:CM0 = 110 
 CIS = 1 khi pin VIN- cuûa C1 noái vôùi RA3/AN3 vaø 
 pin VIN- cuûa C2 noái vôùi RA2/AN2 
 CIS = 0 khi pin VIN- cuûa C1 noái vôùi RA0/AN0 vaø 
 pin VIN- cuûa C2 noái vôùi RA1/AN1 
 Bit 2-0 CM2:CM0 Comparator Mode bit 
 Caùc bit naøy ñoùng vai troø trong vieäc thieát laäp caùc caáu hình hoaït ñoäng cuûa boä 
Comparator. Caùc daïng caáu hình cuûa boä Comparator ñöïôc trình baøy trong baûng sau: 
Trong ñoù: A laø ngoõ vaøo Analog, khi ñoù giaù trò cuûa caùc pin naøy ñoïc töø caùc PORT luoân baèng 0. 
 B laø ngoõ vaøo Digital. 
P2.46 Thanh ghi CVRCON: ñòa chæ 9Dh 
 Thanh ghi ñieàu khieån boä taïo ñieän aùp so saùnh khi boä Comparator hoaït ñoäng vôùi caáu 
hình ‘110’. 
 Bit 7 CVREN Comparator Voltage Reference Enable bit. 
 CVREN = 1 boä taïo ñieän aùp so saùnh ñöôïc caáp ñieän aùp hoaït ñoäng. 
 CVREN = 0 boä taïo ñieän aùp so saùnh khoâng ñöôïc caáp ñieän aùp hoaït ñoäng. 
 Bit 6 CVROE Comparator VREF Output Enable bit 
 CVROE = 1 ñieän aùp do boä taïo ñieän aùp so saùnh taïo ra ñöôïc ñöa ra pin RA2. 
 CVROA = 0 ñieän aùp do boä taïo ñieän aùp so saùnh taïo ra khoâng ñöôïc ñöa ra ngoaøi. 
 Bit 5 CVRR Comparator VREF Range Selection bit 
 CVRR = 1 moät möùc ñieän aùp coù giaù trò VDD/24 (ñieän aùp do boä taïo ñieän aùp so 
saùnh taïo ra coù giaù trò töø 0 ñeán 0.75VDD). 
 CVRR = 0 moät möùc ñieän aùp coù giaù trò VDD/32 (ñieän aùp do boä taïo ñieän aùp so 
saùnh taïo ra coù giaù trò töø 0.25 ñeán 0.75VDD). 
 Bit 4 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 3-0 CVR3:CVR0 Caùc bit choïn ñieän aùp ngoõ ra cuûa boä taïo ñieän aùp so saùnh. 
 Khi CVRR = 1: 
 Ñieän aùp taïi pin RA2 coù giaù trò CVREF = (CVR/24)*VDD. 
 Khi CVRR = 0 
 Ñieän aùp taïi pin RA2 coù giaù trò CVREF = (CVR/32)*VDD + ¼VDD. 
P2.47 Thanh ghi ADRESL: ñòa chæ 9Eh 
 Thanh ghi chöùa caùc bit thaáp cuûa keát quaû boä chuyeån ñoåi A/D (8 bit cao chöùa trong 
thanh ghi ADRESH ñòa chæ 1Eh). 
P2.48 Thanh ghi ADCON1: ñòa chæ 9Fh 
 Thanh ghi chöùa caùc bit ñieàu khieån boä chuyeån ñoåi ADC (ADC coù hai thanh ghi ñieàu 
khieån laø ADCON1 vaø ADCON0). 
 Bit 7 ADFM A/D Result Format Select bit 
 ADFM = 1 Keát quaû ñöôïc löu veà phía beân phaûi 2 thanh ghi ADRESH:ADRESL 
(6 bit cao mang giaù trò 0). 
 ADFM = 0 Keát quaû ñöôïc löu veà phía beân traùi 2 thanh ghi ADRESH:ADRESL 
(6 bit thaáp mang giaù trò 0). 
 Bit 6 ADCS2 A/D Conversion Clock Select bit 
 ADCS2 keát hôïp vôùi 2 bit ADCS1:ADCS0 trong thanh ghi ADCON0 ñeå ñieàu 
khieån vieäc choïn xung clock cho khoái chuyeån ñoåi ADC. 
 Bit 5,4 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 3-0 PCFG3:PCFG0 A/D Port Configuration Control bit 
 Caùc bit naøy ñieàu khieån vieäc choïn caáu hình hoaït ñoäng caùc coång cuûa boä chuyeån 
ñoåi ADC. 
 Trong ñoù A laø ngoõ vaøo Analog. 
 D laø ngoõ vaøo Digital. 
 C/R laø soá ngoõ vaøo Analog/soá ñieän aùp maãu. 
P2.49 Thanh ghi EEDATA: ñòa chæ 10Ch 
 Thanh ghi chöùa byte thaáp cuûa döõ lieäu trong quaù trình ghi ñoïc treân boä nhôù döõ lieäu 
EEPROM. 
P2.50 Thanh ghi EEADR: ñòa chæ 10Dh 
 Thanh ghi chöùa byte thaáp cuûa ñòa chæ trong quaù trình ghi ñoïc treân boä nhôù döõ lieäu 
EEPROM. 
P2.51 Thanh ghi EEDATH: ñòa chæ 10Eh 
 Thanh ghi chöùa byte cao cuûa döõ lieäu trong quaù trình ghi ñoïc treân boä nhôù döõ lieäu 
EEPROM (thanh ghi naøy chæ söû duïng 6 bit thaáp). 
P2.52 Thanh ghi EEADRH: ñòa chæ 10Fh 
 Thanh ghi chöùa byte cao cuûa ñòa chæ trong quaù trình ghi ñoïc treân boä nhôù döõ lieäu 
EEPROM (thanh ghi naøy chæ söû duïng 4 bit thaáp). 
P2.53 Thanh ghi EECON1: ñòa chæ 18Ch 
 Thanh ghi ñieàu khieån boä nhôù EEPROM. 
 Bit 7 EEPGD Program/Data EEPROM Select bit 
 EEPGD = 1 truy xuaát boä nhôù chöông trình. 
 EEPGD = 0 truy xuaát boä nhôù döõ lieäu. 
 Bit 6-4 Khoâng caàn quan taâm vaø maëc ñònh mang giaù trò 0. 
 Bit 3 WRERR EEPROM Error Flag bit 
 WRERR = 1 quaù trình ghi leân boä nhôù bò giaùn ñoaïn vaø khoâng theå tieáp tuïc (do 
caùc cheá ñoä Reset WDT hoaëc ). 
 WRERR = 0 quaù trình ghi leân boä nhôù hoaøn taát. 
 Bit 2 WREN EEPROM Write Enable bit 
 WREN = 1 cho pheùp ghi. 
 WREN = 0 khoâng cho pheùp ghi. 
 Bit 1 WR Write Control bit 
 WR = 1 ghi döõ lieäu. Bit naøy chæ ñöôïc set baèng chöông trình vaø töï ñoäng xoùa veà 0 
khi quaù trình ghi döõ lieäu hoaøn taát. 
 WR = 0 hoaøn taát quaù trình ghi döõ lieäu. 
 Bit 0 RD Read Control bit 
 RD = 1 ñoïc döõ lieäu. Bit naøy chæ ñöôïc set baèng chöông trình vaø töï ñoäng xoùa veà 0 
khi quaù trình ñoïc döõ lieäu hoaøn taát. 
 RD = 0 quaù trình ñoïc döõ lieäu khoâng xaûy ra. 
P2.54 Thanh ghi EECON2: ñòa chæ 18Dh. 
 Ñaây laø moät trong 2 thanh ghi ñieàu khieån boä nhôù EEPROM. Tuy nhieân ñaây khoâng phaûi 
laø thanh ghi vaät lí thoâng thöôøng vaø khoâng cho pheùp ngöôi1 söû duïng truy xuaát döõ lieäu treân 
thanh ghi. 
TAØI LIEÄU THAM KHAÛO 
 PIC16F877A DATASHEET WWW.MICROCHIP.COM 
 MIDRANGE PICmicro FAMILY WWW.MICROCHIP.COM 
CAÙC TRANG WEB 
 WWW.MICROCHIP.COM 
 WWW.DIENDANDIENTU.COM 
 WWW.PICVIETNAM.NET 
 VAØ CAÙC TRANG WEB KHAÙC 
            Các file đính kèm theo tài liệu này:
 vi_dieu_khien_pic_8479.pdf vi_dieu_khien_pic_8479.pdf