中斷大概是這樣的。。。如果有點錯誤不要怪我。。。我以前作過鼠標中斷的東西。。現(xiàn)在有些想不起來了。。。所以。。。呵呵呵。。。

紅安網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),紅安網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為紅安1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的紅安做網(wǎng)站的公司定做!
當程序運行到中斷條件的時候,會向CPU發(fā)信號改變優(yōu)先級(原先運行的東西會放進哪個特定的地方的,作保存),以發(fā)出中斷的那段程序作為最高優(yōu)先,執(zhí)行完成后再由執(zhí)行另外的。。。建議你去看看匯編。。。哈哈哈。。。我沒學(xué)過的。。。
C中實現(xiàn)中斷是用了一個函數(shù):geninterrupt(...)
這個“...”是個16進制的數(shù)字,是中斷號,像鼠標中斷號就是0x33
還要用到類似匯編里寄存器模樣的變量:如_AX,_BX,_CX,_DX...不同的值功能不同。。。哎呀,我都忘完了。。。建議去查下geninterrupt()的用法就OK了。。。
中斷函數(shù)是不需要額外通過代碼調(diào)用的
當中斷條件滿足,單片機會打斷當前執(zhí)行的語句,跳轉(zhuǎn)到中斷函數(shù),然后執(zhí)行完中斷函數(shù)后,再次返回之前被打斷的語句繼續(xù)執(zhí)行
中斷函數(shù)中,每次都會對定時器重新初始化,即頭兩句對TH1和TL1的賦值,這樣每50ms會再次進入一次中斷函數(shù).每20次進入中斷,即經(jīng)過了1秒,然后對全局變量miao自增1
而main函數(shù)則是不斷對變量miao進行輸出
首先你要寫中斷函數(shù)
然后在主程序中像調(diào)用子函數(shù)一樣調(diào)用就可以了
舉個例子吧
#define uchar unsigned char
#define uchar unsigned char
sbit D1=P1^0;
uchar aa;
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(aa==20)
{
D1=~D1;
aa=0;
}
}
}
void T0time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
本文名稱:C語言中斷函數(shù)是從哪開始 c語言 中斷函數(shù)
標題路徑:http://www.chinadenli.net/article42/dopgjhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站收錄、全網(wǎng)營銷推廣、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)