⑴ STC89C52單片機中斷和定時器問題:TMOD/TH0/TL0/EA/ET0/TR0它們之間的關系是什麼啊
這些寄存器實際試幾次就能深刻明白他們的用途了,說的話擔心你可能還是不能完全理解。
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定時/計數器和對應的控制位。
⑵ 51單片機tcom是否還需要ET0=0
tcom是定時器控制寄存器TR0 TR1都是其中的位,負責啟動或停止定時器
ET0是中斷控制寄存器IE中 的一位
默認狀態下 ET0就是0
⑶ 單片機中 INT0,EX0,ET0,IE0.分別表示什麼意思
INT0:外部中斷0觸發方式控制位,1表示邊沿觸發,0表示電平觸發;
EX0:外部中斷0允許位,1表示允許外部中斷0的中斷申請;
ET0:定時/計數器0中斷允許位,1表示允許定時/計數器0的溢出中斷;
IE0:外部中斷0中斷申請標志位,1表示有中斷申請。
(3)et0單片機擴展閱讀:
單片機使用注意事項:
1、降低外時鍾頻率
外時鍾是高頻的雜訊源,除能引起對本應用系統的干擾之外,還可能產生對外界的干擾,以8051為例,最短指令周期1μs時,外時鍾是12mhz。而同樣速度的motorola 單片機系統時鍾只需4mhz微控制器產生的最有影響的高頻雜訊大約是時鍾頻率的3倍。
2、低雜訊系列單片機
改進的技術將、地安排在兩個相鄰的引腳上,外部去耦在pcb設計上更容易安排。
3、時鍾監測電路、看門狗技術與低電壓復位
時鍾監控有效與省電指令stop是一對矛盾。只能使用其中之一。 看門狗技術是監測應用程序中的一段定時中斷低電壓復位技術是監測單片機電源電壓,當電壓低於某一值時產生復位信號。由於單片機技術的發展,單片機本身對電源電壓范圍的要求越來越寬。
電源電壓從當初的5v降至3.3v並繼續下降到2.7v、2.2v、1.8v。在是否使用低電壓復位功能時應根據具體應用情況權衡一下。
4、eft技術
毛刺會成為觸發信號干擾正常的時鍾信號。交替使用施密特電路和rc濾波可以使這類毛刺不起作用,這就是eft技術。
⑷ 單片機中ET0是什麼意思
T0 溢出中斷允許位
ET0=0 禁止T0 中斷
ET0=1 允許T0 中斷
單片機,全稱單片微型計算機(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲器、定時/計數器(Timer/Counter)、各種輸入輸出介面等都集成在一塊集成電路晶元上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬體)和節約成本。它的最大優點是體積小,可放在儀表內部,但存儲量小,輸入輸出介面簡單,功能較低。由於其發展非常迅速,舊的單片機的定義已不能滿足,所以在很多應用場合被稱為范圍更廣的微控制器;由於單晶元微電腦常用於當控制器故又名single chip microcontroller,但是目前在中國大陸仍多沿用「單片機」的稱呼。
⑸ 單片機中EA是什麼意思還有ET0和TR0又是什麼意思 各位小弟求幫助!
EA總中斷開關,任何中斷都無法執行。
ET0,打開T0定時器中斷。
TR0,啟用T0計數器/定時器。
對於51單片機,設置了EA=1和ET0=1,這是定時器T0開中斷知,即允許T0中斷。而設定TR0=1,是啟動定時器開始計時/計數,TR0=0,則定時器停止計時/計數,對中斷道是沒有回影響的。
(5)et0單片機擴展閱讀
單片機廣泛應用於儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程式控制制等領域,大致可分如下幾個范疇:
1、在智能儀器儀表上的應用
單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,廣泛應用於儀器儀表中,結合不同類型的感測器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。
2、在工業控制中的應用
用單片機可以構成形式多樣的控制系統、數據採集系統。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等。
⑹ 單片機T0使用計數功能時,ET0應該怎麼設置
單片機T0使用計數功能時, ET0 可以設置成 ET0=1 或者 ET0=0
如果 ET0=1 計數器 中斷 可以 記錄 中斷 次數,也就是擴展 計數器 位數,計數為 0 - 需要大
如果 ET0=0 計數器, 計數為 0 - 65535 ,
⑺ 單片機EAET0都=1,沒有設定TR0=1(或0)對中段有影響嗎,不設定TR0時,是不是只能計數
模式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
⑻ 51單片機打開定時器中斷中的ET0中E代表的英語是什麼
enable timer0,使能定時器0中斷,E代表英語的enable,它所在寄存器叫IE也就是interrupt enable,同理EX0 :enable exteral0
⑼ 單片機定時 ET0=1什麼意思,,要詳解。。
單片機定時 ET0=1的意思是51單片機的定時器0允許中斷。
ET0是51系列單片機定時器0的中斷允許開關,定時器中斷是為了滿足定時或計數溢出處理的需要而設置的,當發生計數溢出時,表示定時時間已到或者計數值已滿,接著就以計數溢出信號作為中斷請求去置位一個溢出標志位。
這種中斷請求是在單片機晶元內部發生的,不需要在晶元上設置引入端,但是在計數方式時,中斷源可以由外部引入。只有CPU中斷總允許位EA=1時,ET0才可以有效工作,來控制定時器0允許中斷或是禁止中斷。
(9)et0單片機擴展閱讀
定時器工作流程:
定時器工作的流程可以按照這個順序(以51為例用定時器0方式一產生50毫秒的定時)
1、確定使用哪個定時器,使用哪種方式,這一步通過TMOD設置,TMOD的低四位是設置定時器0的,高四位是用來設置定時器1的,其中的M0,M1是用來設置定時器工作在哪種方式,GATE一般用不要設置,C/T是選擇計數模式還是定時模式的,如:TMOD = 0X01,就說明定時器0工作在方式1。
2、接下來就要設置定時的時間,用定時器定時50毫秒,可以用這種方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以這樣理解:因為這是定時器的初值,也就是說計數脈沖就是在這個數的基礎上向上遞增,到達65535後就溢出產生中斷。
3、第三步打開中斷,使用IE寄存器,首先打開總中斷EA = 1,這一步是所有中斷所必須的,然後打開定時器0中斷,ET0 =1。
4、這時准備工作結束,啟動定時器,使用TCON寄存器,TR0 = 1,實現了一個50毫秒的定時。
⑽ 單片機中的TMOD中的 ET0和ET1是什麼意思
ET0和ET1不是在TMOD(定時計數器工作方式控制寄存器)單元中
ET0和ET1是在IE(中斷控制寄存器)單元中
ET0時定時計數器0溢出中斷允許控制位
ET1時定時計數器1溢出中斷允許控制位