|
|
電源控制寄存器PCON的字節(jié)地址是什么?是什么格式的?它的工作方式是什么?下面由IC解密工程師詳解電源控制寄存器PCON的工作方式等問題:
PCON的字節(jié)地址為87H,無位地址,PCON的格式如圖六所示。需指出的是,對80C31單片機而言,PCON還有幾位有效控制位。 SMOD:波特率加倍位。在計算串行方式1,2,3的波特率時;0---不加倍;1---加倍。 串行中斷的應用特點: 8031單片機的串行I/O端口是一個中斷源,有兩個中斷標志RI和TI,RI用于接收,TI用于發(fā)送。 串行端口無論在何種工作方式下,發(fā)送/接收前都必須對TI/RI清零。當一幀數(shù)據(jù)發(fā)送/接收完后,TI/RI自動置1,如要再發(fā)送/接收,必須先用軟件將其清除。 在串行中斷被打開的條件下,對方式0和方式1來說,一幀數(shù)據(jù)發(fā)送/接收完后,除置位TI/RI外,還會引起串行中斷請求,并執(zhí)行串行中側(cè)目務程序。但對方式2和方式3的接收機而言,還要視SM2和RB8的狀態(tài),才可確定RI是否被置位以及串行中斷的開放: SM2 RB8 接收機中斷標志與中斷狀態(tài) 0 1 激活RI,引起中斷 1 0 不激活RI,不引起中斷 1 1 激活RI,引起中斷 單片機正是利用方式2,3的這一特點,實現(xiàn)多機間的通信。串行端口的常用應用方法見相關(guān)章節(jié)。 波特率的確定: 對方式0來說,波特率已固定成fosc/12,隨著外部晶振的頻率不同,波特率亦不相同。常用的fosc有12MHz和6MHz,所以波特率相應為1000×103和500×103位/s。在此方式下,數(shù)據(jù)將自動地按固定的波特率發(fā)送/接收,完全不用設置。 對方式2而言,波特率的計算式為2SMOD·fosc/64。當SMOD=0時,波特率為fm/64;當SMOD=1時,波特率為fosc/32。在此方式下,程控設置SMOD位的狀態(tài)后,波特率就確定了,不需要再作其它設置。 對方式1和方式3來說,波特率的計算式為2SMOD/32×T1溢出率,根據(jù)SMOD狀態(tài)位的不同,波特率有Tl/32溢出率和T1/16溢出率兩種。由于T1溢出率的設置是方便的,因而波特率的選擇將十分靈活。 前已敘及,定時器Tl有4種工作方式,為了得到其溢出率,而又不必進入中斷服務程序,往往使T1設置在工作方式2的運行狀態(tài),也就是8位自動加入時間常數(shù)的方式。由于在這種方式下,T1的溢出率(次/秒)計算式可表達成: 下面一段主程序和中斷服務程序,是利用串行方式l從數(shù)據(jù)00H開始連續(xù)不斷增大地串行發(fā)送一片數(shù)據(jù)的程序例。設單片機晶振的頻率為6MHZ,波特率為1200位/秒。
ORG 2000H ;1200位/秒的定時器初值 MOV TL1,#0F3H MOV TH1,#0F3H ;使SMOD=0 MOV PCON,#00H ;T1方式2 MOV TMOD,#20H SETB EA CLR ET1 ;關(guān)閉T1中斷 SETB ES ;開串行中斷 SETB TR1 ;開T1定時 MOV SCON,#40H ;串行方式1 CLR A MOV SBUF,A ;串行發(fā)送 JNB T1,$ ;等待發(fā)送完 CLR T1, ;清標志 SJMP $ ORG 0023H ;串行中斷入口地址 MOV SBUF,A ;連續(xù)發(fā)送 JNB T1,$ INC A CLR T1 RET1 ;中斷返回
|
|
|