中斷使能暫存器
通過設定中斷使能暫存器
ie 的
ea 位 使能所有中斷 每個中斷源都有單獨的使能位
可通過軟體設定
ie 中相應的使能位在任何時候使能或禁能中斷 中斷使能暫存器
ie 的各
位如下所示
中斷使能暫存器
ie可位定址
位位址0afh
0aeh
0adh
0ach
0abh
0aah
0a9h
0a8h
位符號ea
/et2
eset1
ex1et0
ex0
ea使能標誌位置位則所有中斷使能 復位則禁止所有中斷保留
et2定時器
2 中斷使能
es序列通訊中斷使能
et1定時器
1 中斷使能
ex1外部中斷
1 使能
et0定時器
0 中斷使能
ex0外部中斷 0使能
8051
支援兩個中斷優先順序 有標準的中斷機制, 低優先順序的中斷只能被高優先順序的中斷所中斷 ,而高優先順序的中斷不能被中斷。
中斷優先順序暫存器
每個中斷源都可通過設定中斷優先順序暫存器
ip來單獨設定中斷優先順序 如果每個中斷源的相應位被置位 則該中斷源的優先順序為高
,如果相應的位被復位
, 則該中斷源的優先順序為低
, 如果你覺得兩個中斷源不夠用
,別急以後我會教你如何增加中斷優先順序 表
a-5
示出了
ip 暫存器的各位 此暫存器可位定址
ip暫存器
可位定址
位位址0bfh
0beh
0bdh
0bch
0bbh
0bah
0b9h
0b8h
位符號///
pspt1
px1pt0
px0pt2
定時器
2中斷優先順序
ps序列通訊中斷優先順序
pt1定時器
1中斷優先順序
px1
外部中斷
1 優先順序
pt0定時器
0中斷優先順序
px0外部中斷
0 優先順序
電源控制
pcon
8051
的 chmos
版本可通過軟體設定兩種節電方式空閒模式和低功耗模式 設定電源控制暫存器
pcon
的相應位來進入節電方式 置位
idle
進入空閒模式空閒模式將停止程式執行
ram
中的資料仍然保持 晶振繼續工作 但與
cpu
斷開 定時器和序列口續工作
, 發生中斷將退出中斷模式 執行完中斷程式後 將從程式停止的地方繼續指令的執行
通過置位
pdwn
位來進入低功耗模式 低功耗模式中晶振將停止工作 因此 定時器和
序列口都將停止工作 至少有兩伏的電壓加在晶元上 因此
ram
中的資料仍將儲存退
出低功耗模式只有兩種方式 上電或復位
smod
位可控制序列通訊的波特率 將使由定時器
1 的溢位率或晶振頻率產生的波特率
翻倍 置位
smod
可使工作於方式
1 2 3
定時器產生的波特率翻倍當使用定時器
2 產生
波特率時
smod
將不影響波特率
電源控制暫存器
pcon
不可位定址 編號
中斷源中斷向量
smod
序列口通訊波特率控制位置位使波特率翻倍-保留
-保留-保留
gf1通用標誌位
gf0通用標誌位
pdwn
低功耗標誌位置位進入低功耗模式
idle
空閒標誌位置位進入空閒模式
psw處理器狀態
處理器的狀態儲存在狀態暫存器
psw
中 狀態字中包括進製位用於
bcd
碼處理的輔
助進製位
, 奇偶標誌位
, 溢位標誌位
, 還有前面提到的用於暫存器組選擇的
rs0
和 rs1 , 0
組從位址
00h
開始 1
組從位址
08h
開始 2
組從位址
10h
開始 3
組從位址
18h
開始 這些位址都可通過直接或間接方式進行定址
psw
的結構如下
上電復位
0000h
cy進製標誌位
ac輔助進製標誌位
f0通用標誌位
rs1暫存器組選擇位高位
rs0暫存器組選擇位低位
ov溢位標誌位
usr使用者定義標誌位
p奇偶標誌位
定時器控制暫存器
tcon
可位定址 0
外部中斷0
0003h
gate
c/t m1
m0gate
c/t m1
m0
tf1定時器
1溢位中斷標誌響應中斷後由處理器清零
tr1定時器
1控制位 置位時定時器
1 工作 復位時定時器
1 停止工作
tf0定時器
0溢位標誌位定時器
0 溢位時置位 處理器響應中斷後清除該位
tr0定時器
0控制位 置位時定時器
0 工作 復位時定時器
0 停止工作
ie1外部中斷
1 觸發標誌位當檢測到
p3.3
有從高到低的跳變電平時置位 處
理器響應中斷後 由硬體清除該位
it1中斷
1 觸發方式控制位置位時為跳變觸發 復位時為低電平觸發
ie0外部中斷
1 觸發標誌位當檢測到
p3.3
有從高到低的跳變電平時置位 處
理器響應中斷後 由硬體清除該位
it0中斷
1 觸發方式控制位置位時為跳變觸發 復位時為低電平觸發
定時器控制暫存器
tmod-
不可位定址 1
定時器0
溢位000bh
定時器1
定時器0
gate
當 gate
置位時 定時器僅當
tr=1
並且 int=1
時才工作 如果
gate=0 置位
tr 定時器就開始工作
c/t定時器方式選擇 如果
c/t=1
定時器以計數方式工作
c/t=0
時 以定時方式工作
m1模式選擇位高位
m0模式選擇位低位
序列控制暫存器
scon -
可位定址 2
外部中斷1
0013h
sm0序列模式選擇
sm1序列模式選擇
sm2多機通訊允許位當模式
0 時 此位應該為
0 模式
1 時 當接收到停止位時
該位將置位模式
2 或模式
3 時 當接收的第
9 位資料為
1時 將置位
ren序列接收允許位
tb8在模式
2 和模式
3 中 將被傳送資料的第 9 位
rb8在模式
0中 該位不起作用 在模式
1中 該位為接收資料的停止位 在模式2
和模式3
中 為接收資料的第 9位
ti序列中斷標誌位由軟體清零
ri接收中斷標誌位有軟體清零
51微控制器儲存型別
keil
允許使用者指定程式變數的儲存區 這使使用者可以控制儲存區的使用 編譯器
可識別以下儲存區
3定時器1溢位
001bh
51微控制器auxr暫存器 51微控制器各暫存器位址
自然優先順序 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 ...
51微控制器auxr暫存器 51微控制器之printf
typedef char va list 我先在知道想要在51微控制器使用printf有兩種辦法,一種是用庫自己的printf,一種是寫自己的printf,不過都很簡單,我先介紹一下庫的printf吧。1 首先新增標頭檔案 include 2 配置一下串列埠,但是在串列埠初始化的時候ti必須為1,否...
微控制器暫存器
微控制器暫存器其實就相當於乙個變數,只不過這個變數在固定的位址,有乙個特殊的名稱 當然也不強制 初學者對暫存器的操作比較困難的原因不是組合語言或c語言使用的不熟,而是對暫存器的陌生。微控制器中儲存器的資源是非常寶貴和有限的,所以要盡可能充分的使用這些儲存資源,有多充分呢?就是把每一bit都用上。這就...