51微控制器的中斷與定時計數器嘗試

2021-07-16 17:40:27 字數 2512 閱讀 2847

這是我的第一篇有關51微控制器的部落格,主要記錄我的學習歷程與中間遇到的問題,如有錯漏請指出。

在我理解裡面中斷與定時計數器是這樣的:

中斷是通過檢查p3.2(int0)與p3.3(int1)兩個引腳來觸發的

計數器是通過檢查p3.4(t0)與p3.5(t1)兩個引腳的狀態,要達到一定的次數(一般是記脈衝數)才觸發

定時器不需要檢測引腳,直接計數

先說中斷的**

#include#include#define sdt p0//靜態數碼管定義

unsigned char temp;

unsigned char code sdt_map[10]=;//靜態數碼管字模

void delay10ms(unsigned int c)

void intercongf()

void main() }

void inter0() interrupt 0 //外部中斷0

ex0=1; //在開始和結尾關開中斷,防止中斷執行過程中誤觸

}//void timer0() interrupt 1 {} //定時器中斷0

void inter1() interrupt 2 //外部中斷1

//void timer1() interrupt 3 {} //定時器中斷1

//void serialport() interrupt 4 {} //序列口中斷

其中,sdt為共陽極靜態數碼管,p3.2(int0)與p3.3(int1)兩個引腳分別接兩個共陰的開關k1與k2

這個程式的功能就是無按鍵時,數碼管全亮(0x00),

當按下k1時,數碼管從一走到九

當按下k2時,數碼管熄滅600ms,如果在int0的執行過程中按k2,int0會被中斷(其實是掛起),立刻執行int1,完成int1後再返回int0

然後說說計數器

#include#include#define sdt p0//靜態數碼管定義

sbit pulse=p1^0;

unsigned char temp=0;

unsigned char code sdt_map[10]=;//靜態數碼管字模

void delay10ms(unsigned int c)

void timeconfg()

void main() }

//void inter0() interrupt 0 {} //外部中斷0

void timer0() interrupt 1 //定時器中斷0

//void inter1() interrupt 2 {} //外部中斷1

//void timer1() interrupt 3 {} //定時器中斷1

//void serialport() interrupt 4 {} //序列口中斷

定時器

#include#include#define sdt p0//靜態數碼管定義

unsigned char temp=0, status=0;

unsigned char code sdt_map[10]=;//靜態數碼管字模

void timeconfg()

void main()

} }//void inter0() interrupt 0 {} //外部中斷0

void timer0() interrupt 1 //定時器中斷0

//void inter1() interrupt 2 {} //外部中斷1

//void timer1() interrupt 3 {} //定時器中斷1

//void serialport() interrupt 4 {} //序列口中斷

其實定時器和計數器很相似,只用在tmod裡修改就行

總結:其實中斷,計數器,定時器很相似

共用的暫存器:定時計數器控制暫存器tcon, 中斷優先暫存器ip 和 中斷允許暫存器ie

定時計數器特有的暫存器:工作方式暫存器tmod

附一些有關這些暫存器的資料**自 普中科技,侵刪)

51微控制器的定時 計數器

實現led燈閃爍,如下 include 51微控制器標頭檔案 sbit led p0 0 定義特殊暫存器p0.0 注意 sbit 必須小寫 p 大寫!void main 在上面的程式中,使用for迴圈來實現延時功能,很簡單,但是存在問題 延時時間不準確 嚴重浪費cpu資源 所以我們要使用微控制器的定...

51微控制器的中斷和定時器 計數器

中斷使得高低速裝置可以協調工作 低速裝置完成工作後通過中斷的方式通知高速裝置一次處理一批資料 中斷還可以根據不同的優先順序實現巢狀執行。定時器本質上是個 16 位的自增計數器,當發生溢位時,如果開啟了溢位中斷,微控制器會自動向 cpu 報告這個溢位中斷,處理相應的中斷任務。tcon 的低 4 位用作...

微控制器學習 定時 計數器(1)

1.什麼是定時 計數器?51微控制器中的定時器同時可以用作計數器,所以在此稱為定時 計數器,即它有實現這兩種功能的能力。定時 計數器的核心部件是乙個加法 也有減法 計數器,其本質是對脈衝進行計數。只是計數脈衝 不同 如果計數脈衝來自系統時鐘,則為定時方式,計數器的輸入脈衝是由晶振12分頻獲得 此時為...