微控制器學習札記5 定時器和中斷配置

2021-08-10 16:57:32 字數 2251 閱讀 8223

這一節,解釋一下上一節的那個程式,用到什麼,我們就學什麼。

所謂的特殊功能暫存器,簡單點就是8個開關,8個開關的不同組合開關狀態會實現不同的功能,有些外設在使用前必須要設定,有的暫存器必須8個位一起操作,這叫不可位定址,有的可以單獨操作,比如ea = 1;這個是開啟總中斷使能位,如果全部操作8位可以寫ie = 0x80;ea是ie暫存器的第7位。而那些不可位定址的暫存器想單獨操作,就必須用到與或非(& | !)來處理,這個待會講。 ②

typedef 的作用是重新定義變數名字,這個是參與到程式編譯中的,比如你原來定義unsigned char ,如果你寫錯了,寫成unsiged char 編譯器是不會編譯通過的,#define 是用來進行簡單的替換,不參與程式編譯,也就是說,如果寫錯了,也不會提示。

③  51微控制器在定義引腳的時候,要用sbit來定義,照著寫就好

④ stc15w系列微控制器的io配置

從上圖可以看出,io可以被配置為4種模式,分別是準雙向口,推挽輸出,高阻輸入,和開漏模式。比如p0口,用p0m0 和p0m1這2個暫存器就可以設定成不同的模式,當然,你要是問內部原理,就需要了解數位電路,鎖存器,觸發器和場效電晶體等知識,上電復位後,大部分io是準雙向模式,有些特殊的被配置為其他模式,使用之前要進行初始化才能用。

⑤關於switch語句

學微控制器,買書籍是少不了的,c程式設計,譚浩強這本不錯,switch是一條多選一語句,包含多個分支case,這個case 可以是字元,可以是數字,每條語句用break結尾,預設是default: break;如果條件不匹配,直接退出。

⑥  好了,接下來的全是重點內容,定時器和中斷,這個慢慢講,牽扯的東西實在是太多了

定時器和中斷不是乙個東西,但是在實際程式設計中一起使用,以上就是定時器0的配置步驟,其他定時器都差不多,暫存器可能不一樣,有的可位定址,有的不能。

來講一下 & | !的用法,這個用法在stm32上廣泛使用,很多人搞不懂為什麼這麼用,tmod這個暫存器是乙個不可位定址的暫存器,如圖所示:

我之前寫過一篇帖子專門討論過 & |這個問題,我把他複製過來,相信很多人都能看明白

接下來,講一下定時器初值和計算,很多的教程在這方面講得亂七八糟

以上這種表示寫法表示定時器0 在12mhz的晶振下,1ms溢位一次,這個玩意是怎麼算出來的呢?我們知道,微控制器的晶振是12mhz情況下,微控制器的時鐘週期和頻率互為倒數,也就是(1 / 12 000 000)s,又因為標準51微控制器定義12個時鐘週期是乙個機器週期,也就是(12/ 12000 000)s,也就是每個機器週期是1us,那麼1000us自然就是1ms,依然沒聽明白是吧?呵呵,接著看下面:

這裡可以把定時器當計數器來處理,每個機器週期,累加1,如果我想定時1ms,該怎麼處理呢?x*1us = 1000us,也就是說需要計數1000個就夠了,而我們這個定時器是乙個16位的,最大計數65535,那只要我們從(65536 - 1000)  = 64536開始計數就可以了,計數1000個然後溢位就能到1ms的定時, 64536換成16進製制是0xfc18,看下公示的設定:

至於上面這種寫法,是等價的,8位的暫存器最大計數就是到255,共計256個數,還可以這麼寫,都一樣。

可能很多人注意到了,定時器0的過載模式,我們在中斷裡面重新賦值了,這叫自動過載嗎?這不是,如果使能了過載,就可以不寫這兩句,但是因為習慣的原因,加上也無所謂。

關於中斷,中斷是一種處理問題的機制,屬於見縫插針,我稱之為「偷時間的賊」,每次偷不多,一點點,一點點就把事情辦好了,效率極高。每乙個中斷都有乙個中斷入口標號,使用的時候,像下面這樣宣告下就可以使用了。

好了,就到這裡吧,下一節,繼續測試硬體電路。。。晚安

微控制器 中斷系統和定時器

1.cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 2.cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 3.待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 其中一些說明 說明 t0 tcon.0 外部中斷0觸...

微控制器定時器學習彙總

1時鐘週期 1 晶振頻率m 1機器週期 12 51系列12t,若1t則為1 x時鐘週期 12 1 x 1 晶振頻率m 1 us 1 12 us 1us機器週期脈衝數 晶振頻率f 12 假設12mhz晶振工作在51微控制器12t模式下,需要使用定時器進行50ms定時操作,定時器工作在方式1 12m的晶...

51微控制器 定時器

定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...