51微控制器的特殊暫存器

2021-05-22 11:28:05 字數 4183 閱讀 9851

中斷使能暫存器

通過設定中斷使能暫存器

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都用上。這就...