TR0是啟動定時器,啟動以后不要再改寫就好每到定時時間進入中斷。進入中斷后要清除中斷使能標志,不是叫你關(guān)閉定時器。這兩種不是一個概念。
創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務赤壁,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
SETB EA ;中斷總允許 SETB EX1 ;外中斷1允許 SETB IT1 ;脈沖方式(當IT1為0時,為電平方式)然后就可以定義你要的初值。邊沿觸發(fā)最大的特點是只在水平的邊緣改變外翻蓋獎勵的那一刻是有效的。
這是單片機c語言中斷函數(shù)的編程格式,()后面的只是告訴編譯系統(tǒng)該函數(shù)是一個中斷函數(shù),具體的執(zhí)行還是按照c語言函數(shù)的執(zhí)行方式去執(zhí)行。
你的外部中斷服務程序如果將后面的中斷向量改了,就可以直接當作串行中斷服務程序來用,有時因為編譯器的問題,單片機并不能按我們設(shè)想的動作執(zhí)行。
這兩個函數(shù)后面 interrupt X 這個表示中斷號,1是定時器0中斷,3是定時器1中斷還有別的。中斷時,會從中斷向量地址處跳到相對應的中斷號的函數(shù)中。
優(yōu)先級高的中斷在執(zhí)行時,如有低優(yōu)先級中斷到達,低優(yōu)先級被掛起。等高優(yōu)先級結(jié)束后,再處理低優(yōu)先級。優(yōu)先級低的中斷在執(zhí)行時,如有高優(yōu)先級中斷到達,開始執(zhí)行高優(yōu)先級中斷。等高優(yōu)先級結(jié)束后,再返回處理低優(yōu)先級。
標準c語言沒有中斷調(diào)用機制,但是不同編譯器都有相應的中斷處理方式,可以使用戶實現(xiàn)中斷功能。
為1即進中斷,在中斷寫零,如此循環(huán)進行。關(guān)閉或者重新開啟TR0,標志A都是硬件自動重新裝載(初始化)0,以使中斷執(zhí)行。所以也能達到效果,但是每次執(zhí)行都重新設(shè)置定時器會比較耗費資源,其實只需要清零標志位就ok了。
中斷是為了使時間更精確。使用中斷一般要先設(shè)置使用哪個定時/計數(shù)器的模式幾,之后再設(shè)置定時器的使能為,再打開總中斷使能位,啟動定時器。
include reg5h void init(void)//聲明中斷初始化 { EA=1;//中斷總開關(guān) EX0=1;//開中斷0開關(guān)。中斷1為,EX1=1;IT1=1;//采用邊沿觸發(fā),下降沿有效。IT1=0為低電平觸發(fā)中斷。