定時器與中斷概念

 
定時/計數器學習筆記
 
一、基本概念
1、 89C51有兩個計數器T0和T1,89C52還有一個T2。每個計數器都是由兩個8位的RAM 單元組成的,即每個計數器都是16 位的計數器,最大的計數容量是216=65536,記住是從0-65535。
2、 提供給定時器的計數源又是從哪裏來的呢?就是由單片機的晶振經過12 分頻後獲得的一個脈衝源。一個12M 的晶振,它提供給計數器的脈衝時間間隔是就是1us。
3、 預置數計數法。如果每個脈衝是1微秒,則計滿65536個脈衝需時65.536毫秒。但是如果只需要10毫秒就可以了,怎麼辦?只要在計數器裏預先放進55536,這樣只需要計數65536-55536=10000次,也就是10毫秒了。
 
二、控制字
1、特殊功能寄存器TMOD89H
用於T1
用於T0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
GATE:0用於內部脈衝;1用於外部脈衝。
C/T:0用於定時器;1用於計數器。
M1M0:工作方式
 
範圍
特性
工作方式0
13位,8192次
爲了和51 的前輩48系列兼容
工作方式1
16位,65536
16位,其他特性與工作方式0相同,比較常用
工作方式2
8位,256次
自動再裝入預置數,預置數放在T0(或T1)的高8位中,只有低8 位參與計數,通常用於波特率發生器
工作方式3
8位,256次
TH0只能作爲定時器用,TL0可作定時器或計數器。溢出標記:TL0 還是用原來的T0的標記,而TH0則借用T1的標記,因此只有在T1 以工作方式2 運行時,才讓T0 工作於方式3。
 
2、特殊功能寄存器TCON88H
用於定時/計數器
用於中斷
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TR0/TR1:定時器的開關。
TF0/TF1:計數溢出後由0變爲1。
3、T2定時器。89C52支持T2定時/計數器。
T2操作模式
RCLK+TCLK
CP/RL2
MODE
0
0
16-bit Auto-reload,TL2增量溢出
0
1
16-bit Capture
1
X
Baud Rate Generator
 
 
 
 
 

中斷學習筆記
 
一、基本概念
1、 89C51單片機中共有5 箇中斷源:兩個外部中斷,兩個定時/計數器中斷(溢出),一個串行口中斷。
2、 單片機中斷系統中有兩種不同類型的中斷:一種稱爲非屏蔽中斷,用戶不能用軟件方法加以禁止;另一種稱爲屏蔽中斷,本文描述的都是這種類型。
3、  
二、控制字
1、 外部中斷。單片機的12、13(P3.2、P3.3)腳引入,名稱爲INT0、INT1。以上的TCON寄存器用於控制外部中斷。
IT0:INT0的觸發方式。0表示低電平觸發;1表示負跳變觸發。
IE0:有外部中斷進入時,該位置1。CPU響應後自動清0。
2、 內部中斷。TCON寄存器,定時器中已描述。
3、 串行口中斷。
4、 中斷允許寄存器
中斷允許寄存器
EA
X
ET2
ES
ET1
EX1
ET0
EX0
EA:總開關
ET2:定時/計數器2控制位,89C52支持。
其他:定時/計數器0、1和外部中斷0、1控制位。
5、 中斷入口地址
²        外中斷0(INT0):0003H
²        定時器0(T0) :000BH
²        外中斷1(INT1):0013H
²        定時器1(T1) :001BH
²        串口中斷 :0023H
6、 中斷函數。比如T0的中斷函數示例如下:
void t0() interrupt 1 using 0{};
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章