Bộnhớ dữ liệu EEPROM (Data EEPROM Memory)
1.2.3. Ngắt (Interrupts)
Dũng Pic18Fxxxx này cungcấp cho người sử dụng nhiều nguồnngắt và
trưngưu tiờn ngắtlà hầuhết cỏcngắt đều cú cả mức ưutiờn cao và thấp. Ngắt ưu tiờn
cao ở địa chỉ 0008h, ngắt ưu tiờn thấp ở địa chỉ 0018h.Những ngắt ưu tiờn c ao thực
hiệnngắtcũncỏcngắtưu tiờnthấpphảiđượcgọitrongchươngtrỡnh. Cútấtcảmườithanh ghisửdụngdểđiềukhiểnhoạtdộngngắtgồm:
•RCON •INTCON •INTCON2 •INTCON3 •PIR1,PIR2 •PIE1,PIE2 •IPR1,IPR2
Núichungcỏcnguồnngắtcú3bitdểđiềukhiểnhoạtđộngngắt; •Flagbit:đểxỏcđịnhsựkiệnngắtxảyra.
•Enablebit:Chophộpthực hiệnngắttạiđịachỉFlagbittrỏtới. •Prioritybit :Đểchọnmứcưutiờnchongắt
Ngồiraở cỏcthanh ghichứcnăngcụ thểphụcvụchocỏcngắtthỡcú cỏcb itriờng
vớicỏcchứcnănggiỳpngườilậptrỡnhcú thểquảnlývàsửdụngcỏcngắthiệu quả.
Hỡnh1.10Pic18Interruplogic
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
23
ViđiềukhiểnPic iểnPic
Bõygiờchỳngtasẽtỡmhiểucấutrỳcmọtsốthanh ghiđiểnhỡnhsửdụng
phụcvụ
hoạtđộngngắt:
INTCONRegisters
ThanhghinàychophộpdọcghicỏcngắtvàchophộpưutiờnngắtcúcờFl agbit.
INTCON1Registers
bit7(GIE/GIEH):bitchophộpngắttồncục. KhiIPEN=0:
− Giỏtrị1:Chophộptồnbộhoạt độngngắt.
− Giỏtrị0:Khụngthựchiệntồnbộhoạtđộngngắt. KhiIPEN =1:
− Giỏ trị 1: Cho phộp tồn bộ hoạt động ngắt với mức ưu tiờn
cao.
− Giỏtrị0:Khụngthựchiệntồnbộhoạt độngngắttừ n goạivi.
bit6(PEIE/GIEL): bitchophộpcỏcngắttừngoạivithựchiện. KhiIPEN=0:
− Giỏtrị1:Chophộptồnbộhoạt độngngắttừ ngoạivi. − Giỏtrị0:Khụngthựchiệntồnbộhoạtđộngngắttừng oạivi.
KhiIPEN=1:
− Giỏ trị 1: Cho phộp tồn bộ hoạt động ngắt từ ngoại
vi với
mứcưutiờnthấp.
− Giỏ trị0: Khụngthực hiệntồnbộhoạt độngngắttừ n
goạivi
bit5(TMR0IE): bitchophộpngắtbỏotrànTMR0
− Giỏtrị1:ChophộpngắtbỏotrànTMR0.
− Giỏtrị0:KhụngchophộpngắtbỏotrànTMR0.
bit4 (INT0IE):bitchophộpngắtngồi INT0
− Giỏtrị1:ChophộpngắtngồiINT0.
− Giỏtrị0:KhụngchophộpngắtngồiINT0
bit3(RBIE):bitchophộpthayđổiRBPort
− Giỏtrị1:Chophộpngắtthay đổiRBPort.
− Giỏtrị0:KhụngchophộpngắtthayđổiRBPort. bit2(TMR0IF):bitcờngắtbỏotrànTMR0
− Giỏ trị 1: thanh ghi TMR0 xảy ra tràn (cú thể xoỏ bằ
ng phần
mềm).
− Giỏtrị0:Khụngxảyra trànthanhghiTMR0.
bit1(INT0IF):bitcờbỏongắtngồiINT0
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
24
ViđiềukhiểnPic iểnPic
− Giỏ trị 1: xảy ra ngắt ngồi INT0 (cú thể xoỏ bằn
g phần
mềm).
− Giỏtrị0:Khụngxảyra ngắtngồiINT0.
bit0(RBIF):bitcờbỏothayđổiRBPort
− Giỏtrị 1:cú thayđổitrạngthỏi củachõnmanggiỏtrị n hỏnhất
củaRB<7:4>(cúthểxoỏbằngphầnmềm).
− Giỏtrị0:KhụngcúthayđổtrạngthỏicỏcchõnRB<7:4 >.
INTCON2Registers
bit7(RBPU):bitchophộpkộolờncổngPORTB.
− Giỏtrị1:tồn bộPORTBkhụngđượckộolờn.
− Giỏ trị 0: Cho phộp tồn bộ PORT B được kộo lờn b ơỉi một
giỏtrịcổngchốtriờnglẻ..
bit6(INTEDG0): bitlựachọnbiờnngắtngồisố0. − Giỏtrị1:tăngbiờn độngắt. − Giỏtrị0:giảmbiờnđộngắt bit5(INTEDG1): bitlựachọnbiờnngắtngồisố1.
− Giỏtrị1:tăngbiờn độngắt. − Giỏtrị0:giảmbiờnđộngắt bit4 (INTEDG2): bitlựachọnbiờnngắtngồisố2.
− Giỏtrị1:tăngbiờn độngắt. − Giỏtrị0:giảmbiờnđộngắt bit3(Unimplemented):manggiỏtrị“0”
bit2(TMR0IP):bitưutiờnngắtbỏotrànTMR0 − Giỏtrị1:mứcưutiờncao − Giỏtrị0:mứcưutiờnthấp. bit1(Unimplemented):manggiỏtrị“0” bit0(RBIP):bitưutiờnngắtthayđổiRBPort
− Giỏtrị1:mứcưutiờncao − Giỏtrị0:mứcưutiờnthấp.
INTCON3Registers
PhạmVănCường -HồngVănQũn.Lớp ĐKTĐ1-K49
25
ViđiềukhiểnPic iểnPic
bit7(INT2IP):bitưutiờnngắtngồiINT2. − Giỏtrị1:mứcưutiờncao − Giỏtrị0:mứcưutiờnthấp. bit6(INT1IP):bitưutiờnngắtngồiINT1.
− Giỏtrị1:mứcưutiờncao − Giỏtrị0:mứcưutiờnthấp. bit5(Unimplemented):manggiỏtrị“0”
bit4 (INT2IE): bitchophộpngắtngồi INT2.
− Giỏtrị1:ChophộpngắtngồiINT2thựchiện.
− Giỏtrị0:KhụngchophộpngắtngồiINT2thựchiện.
bit3(INT1IE): bitchophộpngắtngồiINT1.
− Giỏtrị0:KhụngchophộpngắtngồiINT1thựchiện. bit2(Unimplemented):manggiỏtrị“0”
bit1(INT2IF):bitcờbỏongắtngồiINT2
− Giỏ trị 1: xảy ra ngắt ngồi INT2 (cú thể xoỏ bằn
g phần
mềm).
− Giỏtrị0:Khụngxảyra ngắtngồiINT2.
bit0(INT1IF):bitcờbỏongắtngồiINT1
− Giỏ trị 1: xảy ra ngắt ngồi INT1 (cú thể xoỏ bằn
g phần
mềm).
− Giỏtrị0:Khụngxảyra ngắtngồiINT1.
PIRRegisters
Cỏc thanh ghi này xỏc định cờ ngắt cho thiếtbị ngoại vi. Cựng lỳc cú ha i thanh
ghiphụcvụchohaithiếtbịngoạivilàPIR1và PIR2.
PIR1Registers
bit 7 (PSPIF): bit cờ thực hiện ngắt khi đọc/viết cổng song song ph
ụ thuộc
(ParallelSlavePort)
−Giỏ trị 1: hoạt độngđọc hoặc viết cú thể dưa tới(cúthể x
oỏ bằng
phầnmềm)
−Giỏtrị0:Khụngcúhoạtdộngđọcviết. bit6(ADIF):A/DConverterInterruptFlagbit
−Giỏtrị 1: Mộthoạtđộngchuyển đổiA/D hồntất(cúthể
xoỏ bởi
phầnmềm).
− Giỏtrị 0:HoạtđộngchuyểnđổiA/Dchưahồntất. bit5(RCIF):bitcờbỏongắtnhậnEUSART.
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
26
ViđiềukhiểnPic iểnPic
−Giỏ trị 1:EUSART nhận từ bộ đệm và RCREG là đầy(đ
ược xoỏ
khiRCREGđượcđọc)
−Giỏtrị0:EUSARTnhậntừbộđệmlàrỗng. bit4(TXIF):bitcờbỏongắtviệctruyềntừEUSART
−Giỏtrị 1:EUSARTtruyềntớibộđệm vàTXREGlàđầy(đ
ượcxoỏ
khiTXREG đượcviết)
− Giỏtrị0:EUSARTnhậntừbộđệmlàrỗng.
bit3(SSPIF):bitcờbỏongắtcổngMasterSynchronousSerial Port
− Giỏ trị 1:Hoạt động truyền/nhận hồn tất (cú thể xúa b
ởi phần
mềm)
−Giỏtrị0:đangđợitruyềnnhận. bit2(CCP1IF):bitcờbỏongắtCCP1
LựachọnkiểuCapture:
−Giỏ trị 1: thanh ghi TMR1 theo kiểu capture xảy ra (phải
xoỏ bởi
phầnmềm)
−Giỏtrị0:KhụngxảyrakiểucapturetrờnvớithanhghiTMR1 .
Lựachọnkiểu Compare:
−Giỏ trị 1: thanh ghi TMR1 theo kiểu compare xảy ra (phải
xoỏ bởi
phầnmềm)
−Giỏtrị0:KhụngxảyrakiểucomparetrờnvớithanhghiTMR 1.
LựachọnkiểuPWM:khụngsửdụngkiểulựachonnày.
bit1(TMR2IF):bitcờbỏongắtliờnkếtTMR2tớiPR2
−Giỏ trị 1:Xảy ra liờn kết TMR2 tới PR2 (phải được xoỏ b
ởi phần
mềm)
−Giỏtrị0:KhụngxảyraliờnkếtTMR2tớiPR2. bit0(TMR1IF):bitcờbỏongắttrànTMR1
−Giỏtrị1:thanhghiTMR1đĩtràn(phảiđượcxoỏbởiphầnmề m)
−Giỏtrị0:Khụngcú tràntrờnthanhghiTMR1.
bit7(OSCFIF): bitcờbỏongắtkhicúlỗibộdaođộngOscillator
−Giỏ trị 1:thiết bị bộ dao động lỗi, xung đầu vào tỏc động thay đổi tới
INTOSC(phảiđượcxúabởiphầnmềm).
−Giỏtrị0:Xungthiếtbịhoạtđộng. bit6(CMIF):Bitcờbỏongắtbộsosỏnh.
−Giỏtrị1:Đầuvàobộsosỏnhlàthayđổi(phảixoỏbởiphầnmềm). −Giỏtrị0:Khụngcúthayđổiđầuvàobộsosỏnh.
bit5(Unimplemented):manggiỏtrị‘0’
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
27
ViđiềukhiểnPic iểnPic
bit4(EEIF):bitcờbỏongắthoạt độngviếtdữliệubộnhớEEPROM/Flash −Giỏtrị1:Hoạtđộngviếthồntất(phảixoỏbởiphầnmềm).
−Giỏtrị0:Hoạtđộngviếtchưahồntấthoặcchưabắtđầu. bit3(BCLIF): bitcờbỏongắtcúxungđộtBus
−Giỏtrị1:xảyraxungđộttrờnBus(phảixoỏbởiphầnmềm) −Giỏtrị0:KhụngxảyraxungđộtBus.
bit2(HLVDIF):Bitcờbỏongắtcú dũđiệnỏp(High/Low-Voltage)
−Giỏ trị 1: điều kiện xảy ra điện ỏp mức cao/thấp (hướng xavs đ
ịng bởi
VDIRMAGbit,HLVDCON<7>)
−Giỏtrị0:Khụngxảyravớimứcđiện ỏpcao/thấp. bit1(TMR3IF):bitcờbỏotrànTMR3
−Giỏtrị1:CútràntrờnthanhghiTMR3(phảixúabởiphầnmềm) −Giỏtrị0: Khụngcútrànthanh ghiTMR3.
bit0(CCP2IF):bitcờbỏongắttrờnCCP2 LựachọnkiểuCapture:
−Giỏ trị 1: thanh ghi TMR1 theo kiểu capture xảy ra (phải
xoỏ bởi
phầnmềm)
−Giỏtrị0:KhụngxảyrakiểucapturetrờnvớithanhghiTMR1 .
LựachọnkiểuCompare:
−Giỏ trị 1: thanh ghi TMR1 theo kiểu compare xảy ra (phải
xoỏ bởi
phầnmềm)
−Giỏtrị0:KhụngxảyrakiểucomparetrờnvớithanhghiTMR 1.
LựachọnkiểuPWM:khụngsửdụngkiểulựachonnày.
PIERegisters
Giống như cỏc thanh ghi PIR nhưng thanh ghi PIE dựng cho phộp ngắt
ở thiết
bịngoạivivà cũnggồm haithanhghiPIE1vàPIE2.
PIE1Registers
bit7(PSPIE):bitchophộpngắtkhiđọc/viếtquacổngsongsongphụ thuộ c
−Giỏtrị1:chophộpngắtkhiđọc/viếtquacổngsụngsongphụ thuộc −Giỏtrị0:khụngchophộpngắtkhiđọc/viếtquacổngsụngsongphụ thuộc
bit6(ADIE):BitchophộpngắtkhicúchuyểnđổiA/D −Giỏtrị1:chophộpngắtkhicúchuyểnđổiA/D
−Giỏtrị0:Khụngchophộpngắtkhicúchuyển đổiA/D
bit5(RCIE):BitchophộpngắtkhiấUSARTnhận
−Giỏtrị1:chophộpngắtkhiEUSART nhận
−Giỏtrị0:KhụngchophộpngắtkhiEUSARTnhận
bit4(TXIE):BitchophộpngắtkhiEUSARTtruyền
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
28
ViđiềukhiểnPic iểnPic
−Giỏtrị1:chophộpngắtkhiEUSARTtruyền
−Giỏtrị0:KhụngchophộpngắtkhiEUSARTtruyền
bit3(SSPIE):bitchophộpngắtkhigiaotiếpcổngMasterSynchronous −Giỏtrị1:chophộpngắtkhigiaotiếpcổngMasterSynchronous −Giỏtrị0:KhụngchophộpngắtkhigiaotiếpcổngMasterSynchron ous.
bit2(CCP1IE):BitchophộpngắtCCP1 −Giỏtrị1:chophộpngắtCCP1
−Giỏtrị0:KhụngchophộpngắtCCP1.
bit1(TMR2IE):bitchophộpngắtkhicúliờnkếtTMR2tớiPR2. −Giỏtrị1:chophộpngắtkhicúliờnkếtTMR2tớiPR2.
bit0(TMR1IE):bitchophộpngắtkhicú trànTMR1 −Giỏtrị1:chophộpngắtkhicú trànTMR1
−Giỏtrị0: Khụngchophộpngắtkhicú trànTMR1
PIE2Registers
bit7(OSCFIE): bitchophộpngắtkhicúlỗibộdaođộngOscillator −Giỏtrị1:chophộp
−Giỏtrị0:Khụngchophộp
bit6(CMIE):Bitchophộp bỏongắtbộsosỏnh. −Giỏtrị1:chophộp .
−Giỏtrị0:Khụngchophộp . bit5(Unimplemented):manggiỏtrị‘0’
bit4(EEIE):bitchophộpbỏongắthoạtđộngviếtdữliệubộnhớEEPRO M/Flash
−Giỏtrị1:chophộp
−Giỏtrị0:Khụngchophộp
bit3(BCLIE):bitchophộpbỏongắtcúxungđộtBus −Giỏtrị1:chophộp
−Giỏtrị0:Khụngchophộp.
bit2(HLVDIE):Bitchophộpbỏongắtcúdũ điệnỏp(High/Low-Voltage) −Giỏtrị1:chophộp.
−Giỏtrị0:Khụngchophộp.
bit1(TMR3IE):bitchophộpbỏotrànTMR3
−Giỏtrị1:chophộp.
−Giỏtrị0: Khụngchophộp.
bit0(CCP2IE):bitchophộpbỏongắttrờnCCP2 −Giỏtrị1:chophộp.
−Giỏtrị0: Khụng chophộp.
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
29
ViđiềukhiểnPic iểnPic
IPRRegisters
Giống như cỏc thanh ghi PIR,PIE để phuc vụ hoạt động ngắt, thanh
dựng xỏc định giỏ trị ưu tiờn cho phộp ngắt ở thiết bị ngoại vi và cũng g
ồm hai
thanhghiIPR1vàIPR2.
IPR1Registers
bit7(PSPIP):bitưutiờnngắtkhiđọc/viếtquacổngsụngsongphụthuộc −Giỏtrị1:mứcưutiờn cao.
−Giỏtrị0:mứcưutiờn thấp.
bit6(ADIP):Bitưu tiờnngắtkhicúchuyểnđổiA/D −Giỏtrị1:mứcưutiờn cao.
−Giỏtrị0:mứcưutiờn thấp.
bit5(RCIE):BitchophộpngắtkhiấUSARTnhận
−Giỏtrị1:mứcưutiờn cao. −Giỏtrị0:mứcưutiờn thấp.
bit4(TXIP):Bitưu tiờnngắtkhiEUSARTtruyền −Giỏtrị1:mứcưutiờn cao.
−Giỏtrị0:mứcưutiờn thấp.
bit3(SSPIP):bitưutiờnngắtkhigiaotiếpcổngMasterSynchronous −Giỏtrị1:mứcưu tiờncao.
−Giỏtrị0:mứcưutiờn thấp. bit2(CCP1IP):BitưutiờnngắtCCP1
−Giỏtrị1:mứcưutiờncao. −Giỏtrị0:mứcưutiờn thấp.
bit1(TMR2IP):bitưutiờnngắtkhicúliờn kếtTMR2tớiPR2. −Giỏtrị1:mứcưutiờncao.
−Giỏtrị0:mứcưutiờn thấp.
bit0(TMR1IP):bitưutiờnngắtkhicútràn TMR1 −Giỏtrị1:mứcưutiờn cao.
−Giỏtrị0:mứcưutiờn thấp.
PhạmVănCường-Hồng VănQũn.Lớp ĐKTĐ1-K49
30
ViđiềukhiểnPic iểnPic
bit7(OSCFIP): bitưutiờnngắtkhicúlỗibộdaođộngOscillator −Giỏtrị1:mứcưutiờncao.
−Giỏtrị0:mứcưutiờn thấp.
bit6(CMIP):Bitưutiờnbỏongắtbộsosỏnh. −Giỏtrị1:mứcưutiờncao.
−Giỏtrị0:mứcưutiờn thấp. bit5(Unimplemented):manggiỏtrị‘0’
bit4(EEIP):bitưutiờnbỏongắthoạtđộngviếtdữ liệubộnhớEEPROM/F lash
−Giỏtrị1:mức ưutiờncao. −Giỏtrị0:mứcưutiờn thấp.
bit3(BCLIP):bitưutiờnbỏongắtcúxungđộtBus −Giỏtrị1:mứcưu tiờncao.
−Giỏtrị0:mứcưutiờn thấp.
bit2(HLVDIP):Bitưutiờnbỏongắtcúdũđiện ỏp(High/Low-Voltage) −Giỏtrị1:mứcưu tiờncao.
−Giỏtrị0:mứcưutiờn thấp.
bit1(TMR3IP):bitưutiờnbỏotràn TMR3 −Giỏtrị1:mứcưutiờn cao.
−Giỏtrị0:mứcưutiờn thấp.
bit0(CCP2IP):bitưutiờnbỏongắttrờnCCP2 −Giỏtrị1:mứcưutiờn cao.
−Giỏtrị0:mứcưutiờn thấp.
RCONRegister
Thanh ghi này cú bit cờ (Flag bit) sử dụng để xỏc định ngưyờn nhõn R eset và
khởi dộng cỏc trạng thỏi Idle và Sleep. Thanh ghi này chứa bit IPEN ch
o phộp
mứcưutiờnngắt.
bit7(IPEN):bitchophộpưutiờnngắt −Giỏtrị1:chophộpmứcưutiờnngắt
−Giỏtrị0:khụngchophộpmứcưutiờnngắt
VớiBOREN1:BOREN0=01:
− Giỏtrị1:ChophộpBOR
− Giỏtrị0:KhụngchophộpBOR
VớiBOREN1:BOREN0=00,10or11khụngchophộpvà manggiỏ
trị“0”
bit5(Unimplemented):manggiỏtrị‘0’ bit4(RI):bitcờcủacấutrỳclệnhRESET
−Giỏtrị1:KhụngthựchiệncấutrỳclệnhRESET
−Giỏtrị0:khụngthực hiệncấutrỳclệnhRESETđẻRESETthiếtbị.
PhạmVănCường- HồngVănQũn.Lớp ĐKTĐ1-K49
31
ViđiềukhiểnPic iểnPic
bit3(TO):BitcờbỏobộđịnhthờiWatchdogTime-out
−Giỏtrị1:Cấpnguồnđiện bởicấutrỳclệnh CLRWDThoặcSLEEP
.
−Giỏtrị0:XảyratrờnbộđịnhthờiWDTtime-out. bit2(PD):Bitcờbỏodũmấtnguồn
−Giỏtrị1:Cấpnguồnđiệnbởicấutrỳclệnh CLRWDT.
−Giỏtrị0:ThựchiệnthiếtlậpbởicấutrỳclệnhSLEEP. bit1(POR):bitdểRESETtrậngthỏinguồnkhichạy
−Giỏtrị1:KhụngxảyraRESETnguồn(đượcthiột lậpbởivichương trỡnh).
−Giỏ trị 0:Xảy ra RESET nguồn(cần phải thiết lập bởi phần mềm