|
中斷基礎(chǔ)知識(shí)
中斷:停下來(lái)正在做的事,去做別的事。CPU終止正在執(zhí)行的程序,轉(zhuǎn)而去做中斷信號(hào)發(fā)生的程序,執(zhí)行完此處程序,回到原位置。
中斷源:MCS-51單片機(jī)共有五個(gè)位置可以產(chǎn)生中斷信號(hào):外部中斷INT0和INT1,定時(shí)器/計(jì)數(shù)器T0和T1,串行中斷。
中斷優(yōu)先級(jí):當(dāng)有多個(gè)中斷源向CPU發(fā)生信號(hào)時(shí),處理中斷需要優(yōu)先級(jí)的設(shè)置。外部中斷INT0優(yōu)先級(jí)最高,串行中斷優(yōu)先級(jí)最低。需要設(shè)置IP寄存器。
中斷源寄存器:TCON和SCON。TCON主要包含了外部中斷觸發(fā)方式和外部中斷請(qǐng)求標(biāo)志。當(dāng)IT0、IT1為0,則是電平觸發(fā)方式(低電平有效);為1時(shí),負(fù)跳變觸發(fā)方式。IE0、IE1在中斷發(fā)出請(qǐng)求后,置為1.中斷完成后,自動(dòng)清零。
中斷允許寄存器:IE,IE寄存器包含了總開(kāi)關(guān)、外部中斷、串行口中斷、定時(shí)器中斷等內(nèi)容。
中斷優(yōu)先級(jí)控制寄存器:IP。對(duì)應(yīng)位置為1的話,高優(yōu)先級(jí);為0,低優(yōu)先級(jí)。
-----之前實(shí)現(xiàn)跑馬燈都需要設(shè)定一個(gè)延時(shí)函數(shù),現(xiàn)在有了定時(shí)器、中斷,不需要設(shè)定延時(shí)函數(shù)
- 用定時(shí)器T0的中斷方式實(shí)現(xiàn)跑馬燈控制
- #include<reg52.h>
- sbit D1=P2^0;
- void main()
- {
- char A;
- EA=1;
- ET0=1;
- TMOD=0x01;
- TH0=(65536-46083)/256;
- TL0=(65536-46083)%256;
- TR0=1;
- A=0xfe;
- D1=A;
- while(1);
- }
- void Time(void) interrupt 1 using 0
- {
- char A;
- A=A<<1;
- if (A !=0xff)
- {
- A=A|1;
- }
- else
- A=0xfe;
- D1=A;
- TH0=(65536-46083)/256;
- TL0=(65536-46083)%256;
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|