形式如下:
成都創(chuàng)新互聯(lián)公司于2013年開始,先為微山等服務(wù)建站,微山等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為微山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
void 中斷名(void) inerrupt 中斷號 using 工作寄存器組
比如外部中斷0
void ext0(void) interrupt 0 using 1 //后面的using 1可以省略,缺省為0
定時器1
void t1isr() interrupt 3
擴展資料:
單片機內(nèi)部結(jié)構(gòu)
1、CPU
它的名字沒有改,還是稱為CPU(Central Processing Unit)。它是單片機的核心部件,包括運算器和控制器。
運算器既是算術(shù)邏輯單元ALU(Arithmetic logic Unit),其功能是進行算術(shù)運算和邏輯運算。
控制器一般由指令寄存器、指令譯碼器、時序電路和控制電路組成。其作用是完成取指令、將指令譯碼形成各種微操作并執(zhí)行指令,同時控制計算機的各個部件有條不紊地工作。
2、單片機內(nèi)部結(jié)構(gòu)之一ROM
“硬盤”,改了名字,稱為程序存儲器,也叫只讀存儲器。用ROM(Read only memery)表示。其作用和計算機的硬盤差不多,用來存放用戶編寫的程序。特點是:掉電后不會丟失數(shù)據(jù)(程序)。
這個問題很泛哦
把上電后只做一次的任務(wù)寫到主函數(shù)里, 比如基本的初始化
把需要不斷循環(huán)做的任務(wù)放到while(1)里,比如輪詢,IO狀態(tài)查詢
把不知道什么時間會發(fā)生(比如外部中斷,按鍵中斷等)以及需要保證準時發(fā)生的任務(wù)(比如定時器時間到)放到中斷里
首先你要寫中斷函數(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++;
}
你要先理解什么是中斷。知道中斷是怎么回事了,你才好理解的。
這塊是講中斷的。
主函數(shù)里面執(zhí)行的都是順序執(zhí)行的,當(dāng)中斷發(fā)生的時候就執(zhí)行中斷程序里面的東西的。串口中斷就是當(dāng)發(fā)送或接收完畢時,產(chǎn)生的中斷,發(fā)生中斷過后,就將主函數(shù)暫停執(zhí)行,保存這個時候正在運行的一些變量,一些內(nèi)存值之類的。然后當(dāng)中斷函數(shù)執(zhí)行完畢過后再回來接著執(zhí)行主函數(shù)里面的東西的。