51微控制器為什麼要進行定時擴充套件 有哪些方法?跪求

2022-12-31 06:01:18 字數 2910 閱讀 3134

1樓:匿名使用者

自動控制中,特別是運動控制,需要pwm或者變化的頻率訊號,這些都需要定時器來產生,而微控制器本身一般只有2~3個定時器,需要更多的時候,就需要擴充套件了。可以採用8253來擴充套件,一片8253可以擴充套件2個定時器。

2樓:綰潯漓醬

51定時器的長度是16位,實際定時時間根據晶振不同而略有不同,但整體上說定時時間太短(比如12mhz晶振下,一次最長定時時間只有65ms多),不能滿足實際需要。

要擴充套件辦法很多,最簡單的一種是設立一個引數,每進行一輪定時,則這個引數加1。比如n=0開始,設定定時長度50ms,每進行一輪(也就是定時器中斷一次),n++。

這樣總的定時長度約等於n*50ms,就大大擴充套件了定時器的定時長度。

也可以用ale+外部分頻的方法進行定時,ale會以1/6的晶振頻率輸出方波,如果在外部對這個頻率進行分頻,然後再送回定時器(設定為對外部計數模式),也可以進行定時。

現在稍微好一點的微控制器在內部都有分頻單元,可以在內部就對輸入定時器的頻率進行分頻,這樣定時器的最長定時長度就大大提升了。

mcs-51 微控制器的外部中斷源擴充套件方法有哪些

3樓:

一、採用硬體請求和軟體查詢的方法:

這種方法是:把各個中斷源通過硬體「或非(高有效,如cd4002)」(與,低有效)門引入到微控制器外部中斷源輸入

端(int0或int1),同時再把外部中斷源送到微控制器的某個輸入輸出埠,這

樣當外部中斷時,通過「或非」(與)門引起微控制器中斷,在中斷服務程式中再通

過軟體查詢,進而轉相應的中斷服務程式。顯然,這種方法的中斷優先順序取決於

軟體查詢的次序。其硬體連線和軟體程式設計如下:

void zhongduan (void) interrupt 0 using 3 //中斷函式

//中斷查詢

if(p0_1=1) //中斷查詢

if(p0_2=1) //中斷查詢

ex0=1;開中斷

}二、用普通二極體構成中斷選擇

擴充套件的8個外部中斷源均通過二極體向i n t(x=0或i)請求中斷。當某個外部中斷源請求中斷服務時輸出低電平,微控制器的i nt 經二極體接地電平,微控制器滿足響應外部中斷(i n t)請求條件,響應中斷,程式立即轉向i nt 對應的中斷入口地址處開始執行中斷服務程式,通過軟體查詢pi.0~p1.

7口外中斷源的狀態,以識別提出請求的外擴中斷源,並轉向中斷服務程式為其服務,其查詢順序即為外部擴充套件中斷源的中斷優先順序順序。在圖中,是選用pi.0~pi.

7作為外擴中斷源請求的狀態資訊輸入埠。

有點類似第一種方法。

三、用定時器/計數器作外部中斷

微控制器的定時器/計數器是一個加一計數器,每當計數輸入端有一個「1—0」的負

跳變時,計數器加一,當加一計數器溢位時,就向cpu發出中斷,利用這個特性

來擴充套件中斷的方法是:首先把定時器/計數器設定成計數方式,並預置滿值,把

外部中斷源輸入到p3口第4引腳或第5引腳(計數器輸入端),這樣就可以利用

定時器/計數器作為微控制器外部中斷了。注意這種方法的中斷服務的入口地址應

在000bh或001bh。

四、用專用中斷擴充套件晶片8259a

8259a是可程式設計中斷控制介面,微控制器控制八級中斷。在系統中還可採用級聯方式,一個主片可級聯8個從片,構成64級中斷處理系統。

這樣在程式小於8k的情況,就可以用一片微控制器實現了,而不需要用兩片微控制器控制,還要進行微控制器點對點通訊。

51微控制器定時器什麼時候用方式1,什麼時候用方式2?

4樓:匿名使用者

方式2是自動重灌模式,少了兩條重灌計數器初值的語句,在中斷頻繁的情況下,明顯可以提高cpu的工作效率

例如用定時器模擬pwm波,頻率要想達到100khz,每次中斷間隔只有10us,即使主程式什麼也不幹,中斷程式在10us內完成也很困難,這時採用自動重灌模式就很有效果

但方式2是8位計數器、定時器,一次定時時長沒法和16位模式相比

微控制器應用系統中為什麼要進行系統擴充套件?

5樓:匿名使用者

因為資源不夠了,或者說為了提高價效比。

比如控制100個led燈的亮滅,假設要做的事很簡單,就是控制燈的亮滅。如果直接用標準51,管腳肯定不夠,如果換成腳比較多的晶片就會貴很多,做這麼簡單的事可能不值。這個時候就可以用74hc595的晶片擴充套件系統管腳數量。

這個是擴充套件管腳數量,其他的擴充套件ram、rom、定時器、ad,,,,都可以這麼理解,原來沒有的資源給加擴充套件一下,說白了,是提高了價效比。

51微控制器定時的時候為什麼一定要開啟中斷?

6樓:最近的天涯海角

不一定要開啟中斷吧,如果只是為了單純的延時的話可以利用查詢法,如果定時時間到要採取操作最好還是用中斷

7樓:匿名使用者

1、微控制器的中斷是一個很高明的辦法。沒有中斷時微控制器只會順序執行主程式中的語句。

2、微控制器的定時器有自己的時鐘,開啟51微控制器的定時器後,微控制器一邊順序執行主程式的語句時,一邊定時器在計時。當計到你設定的值後,他需要產生中斷,然後暫停主程式語句,轉到中斷程式中執行你的命令。執行完命令後返回到主程式的順序語句中。

然後知道下一次中斷來臨,再次產生中斷。

3、要讓他能產生中斷,你就必須開中斷。這就像一個控制開關,你不把開關開啟,燈怎麼會亮。

8樓:

也可以不開啊,如果不開就沒多大意義了。開中斷主要是能在第一時間解決問題。

9樓:匿名使用者

不開啟中斷使能位怎麼讓定時器工作啊。就像微控制器不供電它怎麼工作。對吧!

10樓:做而論道

一定要開啟中斷?

樓主怎麼會有這樣的想法?

51微控制器的51是什麼意思,51微控制器什麼意思啊

51微控制器是指8051系列的微控制器,最初由英特爾設計,因為效能較優被廣泛使用,後多家改型。功能雖說千差萬別但核心一樣。51微控制器什麼意思啊 6秒定時,12m晶振時一次定時溢位是實現不了的,需要多次溢位累積才行,所以初值是不確定的,比如可以是 tmod 0x01 th0 65536 50000 ...

51微控制器init什麼意思,51微控制器的“51”是什麼意思?

51微控制器init 一般初始化函式的函式名。用法 類 alloc init init 是建構函式初始化用,他能初始化啥,都初始化為預設值,alloc 之後就是預設值。51微控制器簡介 51系列微控制器是一個統稱。代表時鐘為12分頻,內部儲存器為哈佛結構 資料和 分別儲存 的一系列8位微控制器。代表...

51微控制器與vb通過串列埠通訊,微控制器為什麼只能傳送0至

傳送大數,你只能多次傳送,一次只能傳送一幀,而串列埠傳送的一幀可能是7 8 9位,由你設定而定。51微控制器是8位的,一次只能處理8位資料,也就是一個位元組,一個位元組只能表示0 255的大小的資料。一個位元組確實只能是0 255,但你可以連續發兩個位元組然後在vb裡面組成一個大於255的數。比如發...