單片機中有很多種特殊功能,今天宇凡微來為大家介紹”單片機的寄存器是什么?“以下內(nèi)容將詳細分析單片機寄存器的各個參數(shù)。
寄存器是一種特殊的存儲器,主要用于存儲和檢查微機的狀態(tài)。CPU寄存器用于存儲和檢查CPU的狀態(tài),具體包括計算中途數(shù)據(jù)、程序因中斷或子程序分支時的返回地址、計算結(jié)果為零時的負值、計算結(jié)果為零時的信息、進位值等。
由于CPU的通用寄存器在硬件上直接與CPU相連,因此它們的訪問速度比RAM更快,后者通過內(nèi)部總線訪問數(shù)據(jù)。
單片機的外圍功能控制寄存器用于設置外圍功能,例如稱為通用I/O GPIO的I/O端口、定時器、串行通信、AD轉(zhuǎn)換器和DA轉(zhuǎn)換器。有顯示外圍功能狀態(tài)的狀態(tài)寄存器,存儲AD轉(zhuǎn)換器轉(zhuǎn)換結(jié)果的結(jié)果寄存器,以及存儲通信功能中發(fā)送/接收數(shù)據(jù)的發(fā)送/接收數(shù)據(jù)寄存器。
我們可以直接從程序中設置寄存器,但是通常使用廠商們提供的固件庫(設備驅(qū)動),所以寄存器不是直接設置,而是間接設置的。
1、SCON控制寄存器
SM2——多機通信控制位:是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收狀態(tài),當串行口工作于方式2或3,以及SM2=1時,只有當接收到第9位數(shù)據(jù)(RB8)為1時,才把接收到的前8位數(shù)據(jù)送入SBUF,且置位RI發(fā)出中斷申請,否則會將接收到的數(shù)據(jù)放棄。當SM2=0時,就不管第9位數(shù)據(jù)是0還是1,都會將數(shù)據(jù)送入SBUF,并發(fā)出中斷申請。工作于方式0時,SM2必須為0;
REN允許接收位:用于控制數(shù)據(jù)接收的允許和禁止,REN=1時,允許接收,REN=0時,禁止接收;
RB8接收數(shù)據(jù)位8:在方式2和方式3中,RB8存放接收到的第9位數(shù)據(jù),用以識別接收到的數(shù)據(jù)特征;
TB8發(fā)送數(shù)據(jù)位8:在方式2和方式3中,TB8是要發(fā)送的——即第9位數(shù)據(jù)位。在多機通信中同樣亦要傳輸這一位,并且它代表傳輸?shù)牡刂愤€是數(shù)據(jù),TB8=0為數(shù)據(jù),TB8=1時為地址;
RI接收中斷標志位:可尋址標志位。接收完第8位數(shù)據(jù)后,該位由硬件置位,在其他工作方式下,該位由硬件置位,RI=1表示幀接收完成;
在串口中斷處理時,TI,RI都需要軟件清"0",硬件置位后不可能自動清0,此外,在進行緩沖區(qū)操作時,需要ES=0,以防止中斷出現(xiàn)。
2、AUXR輔助寄存器
AUXR.0:S1BRS,如果為1那么串口1的波特率發(fā)生器為獨立波特率發(fā)生器,否則為定時器1
AUXR.1:EXTRAM,為1則可以使用內(nèi)部擴展RAM;
AUXR.2:BRTx12,為1則獨立波特率發(fā)生器不分頻,否則12分頻;
AUXR.3:S2SMOD,為1串口2波特率加倍,否則不加倍;
AUXR.4:BRTR,為1則允許獨立波特率允許,否則不允許;
AUXR.5:UART_M0x6,為1則串口模式0為2分頻,否則為12分頻;
AUXR.6:T1x12,為1則定時器1不分頻,否則12分頻;
AUXR.7:T0x12,為1則定時器0不分頻,否則12分頻。
3、串口寄存器SBUF
SBUF是指串行口中的兩個緩沖寄存器,一個是發(fā)送寄存器,一個是接收寄存器,在物理結(jié)構(gòu)上是完全獨立的,但地址是重疊的。它們都是字節(jié)尋址的寄存器,字節(jié)地址均為99H;
串行發(fā)送數(shù)據(jù)時,CPU向SBUF寫入數(shù)據(jù) SBUF=date; //發(fā)送數(shù)據(jù);
串行接收數(shù)據(jù)時,CPU從SBUF讀出數(shù)據(jù) date=SBUF; //接收數(shù)據(jù)。
推薦閱讀:“揭秘”單片機主要寄存器有哪些?
以上就是深圳宇凡微為大家介紹關于單片機寄存器是什么和單片機寄存器有哪些分類的全部內(nèi)容。我們公司擁有13年的單片機方案開發(fā)經(jīng)驗,能夠快速完成您的各種定制需求,更多詳情請咨詢網(wǎng)站客服或撥打電話!
ALL RIGHT RESERVED 2022. 粵ICP備17095549號 技術(shù)支持: 牛商股份 百度統(tǒng)計 粵公網(wǎng)安備 44030402004503號