STC15 串口(工作方式1)使用小結


這里暫且不說其他工作方式,以后有時間補上。僅總結下STC15串口工作方式1的一些注意點。

串口1

setp1 波特率發生器:

  T2定時器(默認)、T1定時器: 設置位:S1ST2(AUXR.0),1--T2,0--T1,此位復位值為1。

    12T模式(默認):通過T2x12(AUXR.2),T1x12(AUXR.6)位確定,0--12T模式,1--1T模式;這兩位復位值位0。

            (這里可能有點模糊, 解釋一下:所謂1T模式就是T1X12位置1,相當於T1速度提高12倍,原來計數加1需要12T,現在只需要1T)

    16位自動重裝(默認):即T1定時器工作方式0,STC15這里是自動重裝的。T2的不用設置TCON,固定為16位自動重裝。

      8位自動重裝(可選):如果用8位重裝,只能通過S1ST2位選擇T1定時器。然后把T1定時器設置為工作方式2。為了與傳統8051程序兼容

setp2 設置波特率:

  這一步用T2定時器來說明,T1定時器的設置方法與其完全相同。

  情況1:16位重裝模式下

    波特率 = T2溢出率 / 4

      其中,T2溢出率 = 1 / 溢出周期 = 1 / ( 時鍾周期 * 計數次數 ) = Fosc / 計數次數 ;

    則

      計數次數 = Fosc / 波特率 / 4

      [T2H,T2L] = ( 65536 - 計數次數 ) = 65536 - Fosc / 波特率 / 4

    (Fosc是晶振頻率,如果T2定時器工作在12T模式下Fosc需除以12)

  注意:STC15的16位重裝計數波特率和SMOD無關,與傳統51不同 ,如果用T1的8位重裝計數的話與傳統51計算方法是一樣的。

  情況2 :8位自動重裝計數

    與傳統的相同: 波特率 = ( 2^smod / 32 ) * Fosc / ( 256 - TH1 )

setp3 設置串口模式啟動串口

  串口模式工作方式1 設置SCON為0x40

  開啟定時器2:T2R(AUXR.4)置1

  關閉定時器2中斷允許:ET2(IE2.2)置0

  定時器1的不多講了

 

 

示例:串口1,晶振為FOSC,波特率為BAUD,定時器用定時器1

 

AUXR |= 0x40;
AUXR &= ~0x01;
TMOD &= ~0xF0;

SCON = 0x40;
TL1 = (65536 - (FOSC/4/BAUD));
TH1 = (65536 - (FOSC/4/BAUD))>>8;
TR1 = 1;
ET1 = 0;
ES = 1;
REN=1;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM