首先你要寫中斷函數(shù)
創(chuàng)新互聯(lián)一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供網(wǎng)站制作、網(wǎng)站建設(shè)、成都網(wǎng)頁設(shè)計(jì)、微信平臺(tái)小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、成都app開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來見證!
然后在主程序中像調(diào)用子函數(shù)一樣調(diào)用就可以了
舉個(gè)例子吧
#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++;
}
形式如下:
void 中斷名(void) inerrupt 中斷號(hào) using 工作寄存器組
比如外部中斷0
void ext0(void) interrupt 0 using 1 //后面的using 1可以省略,缺省為0
定時(shí)器1
void t1isr() interrupt 3
擴(kuò)展資料:
單片機(jī)內(nèi)部結(jié)構(gòu)
1、CPU
它的名字沒有改,還是稱為CPU(Central Processing Unit)。它是單片機(jī)的核心部件,包括運(yùn)算器和控制器。
運(yùn)算器既是算術(shù)邏輯單元ALU(Arithmetic logic Unit),其功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。
控制器一般由指令寄存器、指令譯碼器、時(shí)序電路和控制電路組成。其作用是完成取指令、將指令譯碼形成各種微操作并執(zhí)行指令,同時(shí)控制計(jì)算機(jī)的各個(gè)部件有條不紊地工作。
2、單片機(jī)內(nèi)部結(jié)構(gòu)之一ROM
“硬盤”,改了名字,稱為程序存儲(chǔ)器,也叫只讀存儲(chǔ)器。用ROM(Read only memery)表示。其作用和計(jì)算機(jī)的硬盤差不多,用來存放用戶編寫的程序。特點(diǎn)是:掉電后不會(huì)丟失數(shù)據(jù)(程序)。
DOS中斷中斷屬于匯編層面的內(nèi)容,可以用asm內(nèi)聯(lián)實(shí)現(xiàn):
在windows visual c++下用__asm關(guān)鍵字。
在gcc下用__asm__宏即可。
示例(vc):
#include?stdio.h
int?main()
{
__asm?int?3h;
return?0;
}
這樣就可以在C里面寫入?yún)R編代碼了。
__asm?關(guān)鍵字用于調(diào)用內(nèi)聯(lián)匯編程序,并且可在 C 或 C++ 語句合法時(shí)出現(xiàn)。?它不能單獨(dú)出現(xiàn)。?必須后跟匯編指令、一組在大括號(hào)中的命令、或者至少一對(duì)空大括號(hào)。?術(shù)語 “__asm?塊”在此處指任何命令或命令組,不管是否在大括號(hào)內(nèi)。
如果不與大括號(hào)一起使用,則?__asm?關(guān)鍵字表示此行的其余部分是一條匯編語言語句。?如果與大括號(hào)一起使用,則該關(guān)鍵字表示大括號(hào)之間的每一行都是一條匯編語言語句。為了與早期版本兼容,_asm?是?__asm?的同義詞。
由于?__asm?關(guān)鍵字是語句分隔符,因此您可以將程序集指令放在同一行中。
在 Visual C++ 2005 之前,指令
__asm int 3
不會(huì)導(dǎo)致在使用?/clr?編譯時(shí)生成本機(jī)代碼;編譯器會(huì)將該指令轉(zhuǎn)換為 CLR 中斷指令。
__asm int 3?現(xiàn)在將導(dǎo)致為函數(shù)生成本機(jī)代碼。?如果您希望函數(shù)導(dǎo)致代碼中出現(xiàn)斷點(diǎn),還希望將函數(shù)編譯為 MSIL,請(qǐng)使用?__debugbreak。
關(guān)于c的中斷使用一般是,定義函數(shù)的時(shí)候在后面加上interrupt
n
其中
n
對(duì)應(yīng)中斷源的編號(hào),其值從
開始,以
80c51
單片機(jī)為例,編號(hào)從
0~4,分別對(duì)應(yīng)外中斷
0.
定時(shí)器0
中斷.外部中斷
1
.定時(shí)器1
中斷.和串行口中斷
.
void
xxxx(void)interrupt
n//中斷服務(wù)函數(shù)
{
要寫的中斷服務(wù)程序.
}
對(duì)于C51單片機(jī),其內(nèi)部總共有五級(jí)中斷源
分別為外部中斷0、定時(shí)器0、外部中斷1、定時(shí)器1及串行中斷。
C51單片機(jī)的中斷使用時(shí),主要是通過中斷服務(wù)號(hào)來決定的。
如你定義一個(gè)中斷服務(wù)函數(shù):
void KEY(void) intterrupt 0
{
}
當(dāng)外部中斷0申請(qǐng)中斷時(shí)
會(huì)自動(dòng)根據(jù)interrupt后面的0,找到上面定義的這個(gè)中斷服務(wù)函數(shù)。
對(duì)于其他四個(gè)中斷源,其對(duì)應(yīng)的中斷號(hào)分別為1、2 、3、4
網(wǎng)頁名稱:c語言中斷服務(wù)函數(shù)的語法 c語言中斷函數(shù)的作用是什么
瀏覽路徑:http://m.kartarina.com/article34/hjgope.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站內(nèi)鏈、商城網(wǎng)站、App設(shè)計(jì)、建站公司、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)