Ngắt (Interrupts)

Một phần của tài liệu Thiết kế bộ điều khiển PID số trên nền vi điều khiển PIC năm 2014 (Trang 39)

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

Một phần của tài liệu Thiết kế bộ điều khiển PID số trên nền vi điều khiển PIC năm 2014 (Trang 39)