談?wù)剢纹瑱CC語言編程中不經(jīng)意間的一個小錯誤!
我們知道,51單片機有幾個不同的中斷源。
對于一個系統(tǒng)的設(shè)計,通常在初始化程序里面需要定義各個中斷等
比如:
TMOD = 0x21; // T1 mode 2 T0,mode 1 //GATE C/T M1 M0 GATE C/T M1 M0
TL1 = 0xfd; // 0xfa=4800 bps 0xfd=9600 bps
TH1 = 0xfd;
TH0 = -(10000/256);
TL0 = -(10000%256);
PCON = 0; //波特率不變等設(shè)置
SCON = 0x50; //串口1方式1,允許接收
IT0 = 1; //外部中斷0下降沿有效
IT1 = 1; //外部中斷1下降沿有效
TR0 = 1; //啟動定時器0
TR1 = 1; //啟動定時器1
ET0 = 1; //開放定時器0中斷
ES = 0; //串行中斷
EX0 = 0; //外部中斷0
EX1 = 0; //外部中斷1
EA = 1;
可以看到,我們一共有:定時中斷0,定時中斷1,外部中斷0,外部中斷1,串行中斷。
這五個中斷是最基本的中斷源。對于各位的設(shè)計,我相信這一段代碼在不同的程序重通常都不會自己重復(fù)敲打進去了。應(yīng)該是從以前某個代碼中直接復(fù)制過來吧。
此時會有一個小問題存在而被你忽略。
之前已經(jīng)完成的代碼中,你很有可能已經(jīng)使用了全部5個中斷,但是,一個剛開發(fā)的系統(tǒng),也許還只是用到了其中的三個或者兩個中斷,而中斷你全部開啟了。這個意味著什么呢?
51單片機相關(guān)文章:51單片機教程
c語言相關(guān)文章:c語言教程
評論