1樓:楊必宇
ea總中斷開關,任
bai何中du
斷都無法執行。zhi
et0,開啟t0定時器
dao中斷。內
tr0,啟用t0計數器/定時器。
對於51微控制器,設定了容ea=1和et0=1,這是定時器t0開中斷知,即允許t0中斷。而設定tr0=1,是啟動定時器開始計時/計數,tr0=0,則定時器停止計時/計數,對中斷道是沒有回影響的。
擴充套件資料
微控制器廣泛應用於儀器儀表、家用電器、醫用裝置、航空航天、專用裝置的智慧型化管理及過程控制等領域,大致可分如下幾個範疇:
1、在智慧型儀器儀表上的應用
微控制器具有體積小、功耗低、控制功能強、擴充套件靈活、微型化和使用方便等優點,廣泛應用於儀器儀表中,結合不同型別的感測器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。
2、在工業控制中的應用
用微控制器可以構成形式多樣的控制系統、資料採集系統。例如工廠流水線的智慧型化管理,電梯智慧型化控制、各種報警系統,與計算機聯網構成二級控制系統等。
2樓:
ea總中斷開關,如果ea不開啟,任何中斷都無法執行
et0,在ea開啟的前提下,開啟t0定時器中斷
tr0,開始啟用t0計數器/定時器
這裡面的tmod,th0,tl0,ea,et0,tr0 都是什麼意思呢?求解,求詳細
3樓:匿名使用者
這都是暫存器的名稱。
找到它們在程式裡定義的地方,就能看到它們的位址。
一般是與微控制器程式設計手冊裡的暫存器名稱和位址是一致的。
把暫存器名稱在程式設計手冊裡搜尋一下,就能找到具體說明了。
微控制器eaet0都=1,沒有設定tr0=1(或0)對中段有影響嗎,不設定tr0時,是不是只能計數
4樓:攀登
模式1的工作原理圖
先解釋一下兩張圖的不同:
只是由於定時器工作模式暫存器(tmod)的兩位:[m1,m0]的設定不同,所以定時/計數的模式不同,但是結構上是無差別的。假如[m1,m0]=[0,0],則代表模式0,表示就是13位的定時/計數器,tl0只有低5位參與計數,th0整個8位全都參與計數。
假如[m1,m0]=[0,1]代表模式1,表示tl0、th0全都參與計數。如果你是用c語言程式設計,而不是彙編,初始化設定的時候,就可以通過tmod|=0x00,來選擇模式0,tmod|=0x01,來選擇模式1。提醒一點最好用"|=",而不要用「=」,因為前者是 「賦值位或」因為有或運算,不會改變tmod暫存器中原先其他已經設定好的位,但是後者是「賦值」,就會把tmod中的其他位全都改變。
然後哦解釋一下tr0在控制中斷發生上的作用:
由圖上結構可以看到,因為tr0通過乙個「與」門,然後才(control)控制了通向計數器tl0、th0的開關。所以如果tr0為0,「與」門不會置1的,所以就無法把通向計數器的開關開啟,所以無法讓計數器tl0、th0計數,所以無法讓資料溢位,所以無法讓定時器控制暫存器(tcon)的tf0位置1,所以就無法觸發(interrupt)中斷了。
簡單說呢,上面這個圖中涉及到的暫存器的控制位有:
定時器工作模式暫存器(tmod)中的c/t,負責控制定時模式還是控制計數模式。假如c/t是0,則由內部時鐘輸入,此時外設t0用做定時器。假如c/t是1,則由t0 pin (t0 管腳)輸入,此時外設t0用做計數器。
定時器工作模式暫存器(tmod)中的[m1,m0],負責控制定時器的模式為0,為1,為2,還是為3。
定時器工作模式暫存器(tmod)中的gate,負責決定定時器的觸發是否受外部中斷int0的影響。因為gate通過乙個反相器(也就是非門)後和外部中斷int0通過「或」門形成控制流。gate=0,經過反向,輸出為1,不管int0是0/1,都可以經過「或」門輸出1。
gate=1,經過反向,輸出為0,必須要int0是1,才可以經過「或」門輸出1。
額外多說點,th0和tl0是單獨的計數器,賦上初值以後,可以用來定時。定時器初始化的時候,可以用賦值語句直接賦值,比如模式1,tl0=0xff;th0=0x06。這個是250us的計數器初值設定。
怎麼算的呢?
就是當外部晶振為12m的時候,微控制器內部預設是12分頻,可以得到微控制器內部時鐘頻率f=12m/12=1mhz。根據頻率與週期的關係,微控制器的機器週期t=1/f=1/1m=1us。250us就是250個機器週期。
以模式1為例,初值為多少的時候,經過250個機器週期,就可以讓th0溢位了呢?
因為使用了tl0和th0兩個8位計數器,合在一起就是16位,可以產生0~65525一共65536個數。實際上計數器要65536(2的16次冪)個數才可以溢位。16位計數器的容量是65535,包括0,一共可以表示65536個數。
所以想要計數250個數以後溢位,初值=65535(容量)-250+1(這個1就代表要至少超過容量1個數,才可以溢位)。所以初值的計算也就表示為:初值=65536-250
5樓:匿名使用者
對於51單片bai
機,設定了ea=1和et0=1,這是du定時zhi器t0開中斷,即允許t0中斷。而dao
設定tr0=1,是專啟動定時器開始屬計時/計數,tr0=0,則定時器停止計時/計數,對中斷是沒有影響的。不設定tr0=1,那就是tr0=0,那就是不計數。既然定時器都停止計時/計數了,也不會發生中斷的,即不會中斷的。
舉個例子吧,上課時,老師允許你提問發言,可是你都不去上課,你怎麼發言?是乙個道理。所以,雖然不影響中斷,但卻不會引起中斷。
6樓:匿名使用者
不是只能計數
;baitr0=1,開始du計時/計數,跟中斷zhi
沒關係;ea=enable all所有中斷dao使能回,et0=enable timer0,timer0中斷使能;定時器答中斷是計數滿了溢位後中斷,tr0不開不計時沒法溢位怎麼中斷?
stc89c52微控制器中斷和定時器問題:tmod/th0/tl0/ea/et0/tr0它們之間的關係是什麼啊?
7樓:0427付強
這些暫存器實
bai際試幾次就能深刻明du白他們的用途了,說的話zhi擔心你可能還是不dao能完全理解。
內ea是總中斷開關,當容ea=0時,微控制器不執行任何中斷,因此如果想要微控制器進入中斷,ea必須賦值為1。
et0、et1是定時/計數器t0、t1的中斷開關,其值為0時對應的中斷失效(有爭議)
tr0、tr1是定時/計數器t0、t1的執行控制位,等於1時對應的定時/計數器才開始執行,等於0時停止執行
tmod是設定中斷引數的暫存器,定時/計數器t0、t1的計數模式、控制方式、功能都由這個暫存器控制
th0、tl0時定時/計數器t0的計數變數,計數時,這兩個暫存器會不停的加一,直到溢位引起中斷。通常在這兩個暫存器中設定不同的初始值,從而設定從開始到溢位的時間和次數
這些都是標準mcs-51中的中斷結構,實際上你所使用的stc89c52rc是增強型的51微控制器,它還有t2定時/計數器和對應的控制位。
8樓:匿名使用者
void inittimer0() ---------------定時copy
器0中斷
初始bai化du子程式
------------------------t0工作開始
51微控制器,只寫開定時器中斷,沒寫啟動定時器和兩個都開時有啥區別?一: ea=1 et0=1
9樓:匿名使用者
只寫前兩行證明你將定時器的中斷開啟了,也就是說如果有溢位的話,就可以進入中斷服務了,但是你tr0沒有置1的話,定時器就不會工作,也就是說始終不會有溢位的事件發生。
void inittimer0() { tmod=0x01; th0=th0; tl0=tl0; ea=1; et0=1; tr0=1; }微控制器中的定時,求解釋,急!
10樓:生活如歌
void inittimer0() ---------------定時器0中斷初始化子程式
------------------------t0工作開始權
微控制器中的定時,求解釋,急!
微控制器 程式中的 ea ex et tr th tl什麼意思
11樓:匿名使用者
ea是總中斷允許位,ex是外部中斷允許位(ex0,ex1分別指外部中斷int0,int1),et是內部定時器/計數器中斷允許位,tr定時器/計數器啟動位,它們都是高電平1有效。th、tl分別指定時器/計數器的高8位和低8位(後面加0/1表示定時器/計數器0/1,如th0=255表示給定時器0的高八位賦初值255)。
12樓:匿名使用者
中斷允許位。
ea 中斷允許總控制位
ex 包括ex0外部中斷int0允許位。ex1外部中斷int1允許位et 包括et0計數t0溢位中斷允許位。包括et1計數t1溢位中斷允許位
th tl分別是計數器的高位和地位
tr 計數器的執行控制位
13樓:匿名使用者
呵呵,上面的兄弟都回答得很好了。
微控制器中PSEN和EA的區別是什麼呀
ea訊號是選擇讀取內部還是外部儲存器。ea高電平時,微控制器訪問內部儲存器,但內 在程式暫存器容 pc 值大於0fffh時,自動轉向執行外部儲存器和程式。ea低電平時訪問外部儲存器。這個電平時外加的。而psen只是微控制器訪問外部儲存器的讀選通訊號 即外部儲存器的片選訊號,低電平有效。在由外部儲存器...
微控制器,sbit什麼意思,微控制器C程式設計sbit指令是什麼意思
sbit是c51擴充套件的變數型別,是定義特殊功能暫存器的位變數。典型應用是 sbit p0 1 p0 1 即定義p0 1為p0口的第2位,以便進行位操作。在c語言裡,如果直接寫p1.1,c編譯器並不能識別,而且p1.1也不是一個合法的c語言變數名,所以得給它另起一個名字,這裡起的名為p1 1,可是...
微控制器cpl是什麼,EN微控制器是什麼微控制器?
微控制器cpl指彙編指令,是乙個邏輯運算指令,是微控制器中直接定址位取反的指令,作用是將儲存器的指定資料中的每一位轉變為邏輯反的資料。cpl為微控制器converse position logical指令的簡稱,在微控制器中使用該指令可將指定資料轉變為邏輯反資料,如對微控制器儲存器中的1使用cpl指...