日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8051的特殊功能寄存器

發(fā)布時間:2024/3/24 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8051的特殊功能寄存器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

特殊功能寄存器

????? ? 8051有21個特殊功能寄存器,其中大部分是8位的,還有一些是16位的。我們對51單片機(jī)的操作實(shí)質(zhì)是對特殊功能寄存器的操作。SFR是我們操作的對象,對他們進(jìn)行讀和寫就是在操作51單片機(jī)。

????? ? PSW(程序狀態(tài)字寄存器):保存程序在執(zhí)行過程中一些狀態(tài)。

????????

????? ? CY:進(jìn)位位CY是在執(zhí)行加法(減法)時,如果第7位有進(jìn)位(借位),則將CY置1。

????? ? AC:輔助進(jìn)位位AC,是指第3位向第4位有進(jìn)位(借位)時,將AC置1.

????? ? F0:是用戶標(biāo)志位,留給我們用的

????? ? RS1和RS0是工作寄存器組選擇位,由RS1和RS0控制選擇哪一組工作寄存器工作。

????????

????? ?OV:溢出標(biāo)志位,在加減法運(yùn)算的過程中,當(dāng)?shù)?位或者第7位其中的某一位有進(jìn)位的時候,OV置1.

????????? ?即第6位進(jìn)位和第7位進(jìn)位的異或(D6D7)。

????? ?—:這個是保留位,在一些書中也寫作是F1。和F0位差不多

????? ? P:奇偶校驗(yàn)位,8051進(jìn)行的是偶校驗(yàn)。即當(dāng)累加器ACC的內(nèi)容中1的個數(shù)是奇數(shù)個,那么P就被置1,否則清零。

? ? ? ? 寄存器B:在乘除法運(yùn)算中與累加器A配合使用。MUL? ? AB把累加器A和寄存器B中的8位無符號數(shù)相乘,結(jié)果的高8位存在寄存器B中,低8位存在累加器A中。DIV? ? AB用B除以A,把商存在A中,余數(shù)存在B中。在不做乘除法運(yùn)算時,B還可以作為通用寄存器來使用。

????? ? 累加器A:8051的大多數(shù)指令都需要使用累加器A,他是使用頻率最高的寄存器。外部存儲器的讀寫必須使用A。

????? ? 堆棧指針sp堆棧指針存放當(dāng)前棧的棧頂指針。數(shù)據(jù)在進(jìn)棧之前SP先加1,然后數(shù)據(jù)進(jìn)棧;數(shù)據(jù)在出棧時,先將數(shù)據(jù)彈出,然后SP減1。51的棧是向上生長的。對于8051來說,棧是被放在內(nèi)部的RAM中,因此棧的最大地址是7FH。在系統(tǒng)復(fù)位后SP的初始值是07H。

????? ? 數(shù)據(jù)指針DPTR:數(shù)據(jù)指針是一個16位的寄存器。可分為DPL和DPH兩個8位的寄存器。它是唯一一個直接可以做16位數(shù)據(jù)操作的寄存器。例如:MOV? ? DPTR ,#1000H。

????? ? 端口寄存器:即就是P0到P3這四個特殊功能寄存器。所有的端口都可以位尋址(支持位操作)。也就是說引腳的操作本質(zhì)是對其內(nèi)存映射以后的特殊功能寄存器進(jìn)行的操作。

????? ? 中斷允許寄存器:(IE)8051擁有中斷系統(tǒng),他可以觸發(fā)5個中斷源,以及兩個中斷優(yōu)先級(即就是最多允許兩層的中斷嵌套)。

????????

????? ? EA:控制中斷的總開關(guān),EA置1時中斷總允許打開。否則中斷關(guān)閉。

????? ??ET2:啟用/禁用定時器2的溢出或捕捉中斷(僅對于8052)

????????ES :啟用/禁用串行端口中斷

????????ET1 :啟用/禁用定時器1溢出中斷

????????EX1 :啟用/禁用外部中斷1

????????ET0 :啟用/禁用定時器0溢出中斷

????????EX0 : 啟用/禁用外部中斷0

????? ? 中斷優(yōu)先級寄存器:(IP)8051的中斷有兩個中斷優(yōu)先級,默認(rèn)的優(yōu)先級從高到低是:外部中斷0,定時/計(jì)數(shù)器0,外部中斷1,定時/計(jì)數(shù)器1,串行口,(8052有定時/計(jì)數(shù)器2)。

????????

????? ? 當(dāng)把相應(yīng)的位置1時,優(yōu)先級變高,置0時,優(yōu)先級變低。當(dāng)全為1或者全為0時,優(yōu)先級按照默認(rèn)的優(yōu)先級來執(zhí)行。

????? ? (IP的每個位名字和IE寄存器每個位是相似的)

?????????定時器控制寄存器(TCON):

??????????

????????? ?TF1(TF0):定時/計(jì)數(shù)器T1(TF0)的溢出標(biāo)志,T1(T0)計(jì)數(shù)滿后,該位由硬件置1.并向CPU發(fā)出中斷請求。若CPU開放該中斷,則進(jìn)入中斷服務(wù)子程序,并由硬件將該位清0.

????????? ?TR1(TR0):T1(T0)的運(yùn)行控制位。用軟件控制,置1時,啟動T1(T0);清0時,停止T1(T0)。

????????? ?IE1(IE0):外部中斷1(0)的中斷標(biāo)志位。置1時,向CPU發(fā)出中斷請求。

????????? ?IT1(IT0):外部中斷1(0)的中斷觸發(fā)方式選擇位。ITx = 1時,設(shè)置為邊沿觸發(fā)方式(下降沿);ITx = 0時,設(shè)置為電平觸發(fā)方式(低電平)。在邊沿觸發(fā)方式下,CPU在響應(yīng)中斷請求之后,會由硬件將IEx清0.

????? ? 定時器方式選擇寄存器:(TMOD)該寄存器不能位尋址,只能整個字節(jié)操作。

????????

????? ? 其中高4位是控制定時器T1的,低4位是控制定時器T0的。

????? ? GATE:

???????????當(dāng)GATE = 1 ????????????? ??????則INT0引腳為高電平時且TR0置位,啟動定時器T0; ????????????? ? ????則INT1引腳為高電平時且TR1置位,啟動定時器T1。

????? ? ?? ? ??當(dāng)GATE = 0

????????????????????????? ? 則TR0置位,啟動定時器T0;

????????????????????????? ? 則TR1置位,啟動定時器T1。

????? ? C/T:定時/計(jì)數(shù)器方式選擇位,C/T = 1時,工作在計(jì)數(shù)器模式下;當(dāng)C/T = 0時。工作在定時器模式下。

????? ? M1和M0:定時/計(jì)數(shù)器工作方式選擇位。

????????

????? ? 8051系列單片機(jī)的定時/計(jì)數(shù)器加1工作方式,因此需要將定時/計(jì)數(shù)的初值送到T0(T1)。

????? ? T1和T0是兩個16位的定時器,但是不能直接進(jìn)行16位數(shù)據(jù)的讀和寫,只能分成兩個8位來進(jìn)行讀和寫操作。例如想給T1設(shè)置初值為0C89H,指令書寫應(yīng)該如下:

????????????????????????????????????????? ? MOV? ? TH1,#0CH

????????????????????????????????????????? ? MOV? ? TL1,#89H

? ? ?串行口控制寄存器(SCON):

????? ?

????? ? SM0和SM1是串行口4種工作方式的選擇位,它們控制串行口工作在哪種方式之下。

????????

????? ? SM2是模式2和模式3的多機(jī)通信控制位。

????? ? REN :允許串行口接受位,REN = 1允許接受;REN = 0禁止接受,由軟件置位或清零。

????? ??TB8:在方式2和3,作為第9位數(shù)據(jù)發(fā)送,在雙機(jī)通信中常作為奇偶校驗(yàn)位,在多機(jī)通信中,常作為數(shù)據(jù)幀或地址幀的標(biāo)識,TB8 = 1為地址幀,TB8 = 0為數(shù)據(jù)幀。

????? ? RB8:在模式2和3下,為接收到的第9位數(shù)據(jù)。

????? ? TI:發(fā)送中斷標(biāo)志位(中斷源),硬件置位,軟件清零。

????? ? RI:接受中斷標(biāo)志位(中斷源),硬件置位,軟件清零。

串行口作為一個中斷源,中斷入口地址只有一個(0023H),當(dāng)用中斷方式進(jìn)行發(fā)送和接受時,需要查詢是TI還是RI引發(fā)的中斷請求。

????? ? 串行數(shù)據(jù)緩存器(SBUF):實(shí)際上SBUF是兩個在物理書獨(dú)立的發(fā)送,接受緩沖器,可以同時發(fā)送,接收數(shù)據(jù)。兩個緩沖器共用一個字節(jié)地址99H。可以通過對SBUF的讀和寫來進(jìn)行區(qū)分是哪一個寄存器。

總結(jié)

以上是生活随笔為你收集整理的8051的特殊功能寄存器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。