关于单片机中断
中斷:CPU停止當前任務,去處理中斷內容,處理完后自動恢復以前任務。
單片機有5個中斷源,2個中斷優先級,中斷受兩級控制:
1、CPU開總中斷;
2、中斷源開中斷。
中斷源:引起中斷事件的類型。
5個中斷源:
1、外部中斷請求0,由INT0(P3.2)輸入;
2、外部中斷請求1,由INT1(P3.3)輸入;
3、片內定時器/計數器0溢出中斷請求;
4、片內定時器/計數器1溢出中斷請求;
5、片內串行口發送/接收中斷請求。//很重要,單片機應用中用了很多
?
定時器/計數器控制寄存器(Timer/counter Control Register):用來查看是否產生了外部中斷
?
IT0,IT1(Interrupt Type):外部中斷0、1觸發方式選擇位,由軟件設置。
0-->下降沿觸發方式,INT0/INT1引腳上從高到低的復跳變可引起中斷;
1-->電平觸發方式,INT0/INT1引腳上低電平可引起中斷。
IE0,IE1(Interrupt Edge):外部中斷0、1請求標志位。
當外部中斷0、1依據觸發方式滿足條件產生中斷請求時,由硬件置位(IE0/IE1=1);
當CPU響應中斷時,由硬件清楚(IE0/IE1=0).
TF0,TF1(Timer Overflow):定時器/計數器0、1(T/C0、T/C1)溢出中斷請求標志。
當T/C0、1計數溢出時,由硬件置位(TF0/TF1);
當CPU相應中斷時,由硬件清除(TF0/TF1=0)。
?
串行口控制寄存器SCON(Serial Port Control Register):用來查看是否產生了串口中斷
RI:串行口接收中斷請求標志位。
當串行口接收完一幀數據后請求中斷時,由硬件置位(RI=1).
RI必須由軟件置0.
TI:串行口發送中斷請求標志位。
當串口發送完一幀數據后請求中斷時,由硬件置位(TI=1).
TI必須由軟件置0。
中斷的控制:由中斷允許寄存器IE和中斷優先寄存器IP控制
中斷允許寄存器IE(Interrput Enable Register):實現中斷的開關管理。
EX0,EX1:外部中斷0、1的中斷允許位。
1-->外部中斷0、1開中斷。
0-->外部中斷0、1關中斷。
ET0,ET1:定時器/計數器0、1(T/C0,T/C1)溢出中斷允許位。
1-->開中斷
0-->關中斷
ES:串行口中斷允許位
1-->串行口開中斷
0-->串行口關中斷
ET2:定時器/計數器2(T/C2)溢出中斷允許位
1-->T/C2開中斷
0-->T/C2關中斷
EA:CPU開關中斷寄存器
1-->CPU開中斷
0-->CPU關中斷
中斷優先級寄存器IP(Interrput priority Register):設置中斷源優先級
不做介紹了,書上有
中斷響應:
void function() interrupt 4
{}
0:外部中斷0;
1:定時器/計數器0;
2:外部中斷1;
3:定時器/計數器1;
4:串行口中斷。
轉載于:https://www.cnblogs.com/judes/p/5681576.html
總結
- 上一篇: 梦到杀人代表什么
- 下一篇: iOS开发极光推送显示 开发证书没有通过