自然優先順序
int0
高tf0
int1
tf1ri/ti
tf2/exf2
低定時器
計數器控制暫存器
tcon
tcon.7
tcon.6
tcon.5
tcon.4
tcon.3
tcon.2
tcon.1
tcon.0
tf1tr1
tf0tr0
ie1it1
ie0it0
timer1
中斷標誌
cpu設定
timer1
啟動開關
tr1=1;啟動
timer1
tr1=0;關閉
timer1
timer0
中斷標誌
cpu設定
timer0
啟動開關
tr0=1;啟動
timer1
tr0=0;關閉
timer0
int1
中斷標誌
cpu設定
int1
訊號種類
it1=1
;負邊沿觸發
it1=0
;低電平觸發
int0
中斷標誌
cpu設定
int0
訊號種類
it0=1
;負邊沿觸發
it0=0
;低電平觸發
定時器計數器功能
外部中斷功能
定時器計數器方式暫存器
tmod
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
gate
c/tm1
m0gate
c/tm1
m0timer1
timer0
gate
門控開關
gate=0
;設為內部啟動,只要
trx=1
即可啟用
timerx
gate=1
設為外部啟動,
需要trx=1
同時intx
引腳為高電平才可啟用
timerx
c/t定時器
計數器切換開關
c/t=0
;設定為內部定時器,記數內部系統時鐘
分頻的訊號
c/t=1
;設定為外部計數器,計數訊號由
t0/t1
引腳輸入
m1m0
定時器計數器模式選擇開關
mode 0
:兩個位定時器
計數器mode 1
:兩個位定時器
計數器mode 2
:兩個位自動重灌定時器
計數器mode 3
:乙個位定時器
計數器,乙個
位定時器
51微控制器auxr暫存器 51微控制器之printf
typedef char va list 我先在知道想要在51微控制器使用printf有兩種辦法,一種是用庫自己的printf,一種是寫自己的printf,不過都很簡單,我先介紹一下庫的printf吧。1 首先新增標頭檔案 include 2 配置一下串列埠,但是在串列埠初始化的時候ti必須為1,否...
51微控制器的特殊暫存器
中斷使能暫存器 通過設定中斷使能暫存器 ie 的 ea 位 使能所有中斷 每個中斷源都有單獨的使能位 可通過軟體設定 ie 中相應的使能位在任何時候使能或禁能中斷 中斷使能暫存器 ie 的各 位如下所示 中斷使能暫存器 ie可位定址 位位址0afh 0aeh 0adh 0ach 0abh 0aah ...
微控制器暫存器
微控制器暫存器其實就相當於乙個變數,只不過這個變數在固定的位址,有乙個特殊的名稱 當然也不強制 初學者對暫存器的操作比較困難的原因不是組合語言或c語言使用的不熟,而是對暫存器的陌生。微控制器中儲存器的資源是非常寶貴和有限的,所以要盡可能充分的使用這些儲存資源,有多充分呢?就是把每一bit都用上。這就...