立即注冊 登錄
返回首頁

uid:197415的個人空間

日志

STC15W系列MCU的串口1的簡單設(shè)置

已有 5731 次閱讀2017-8-24 14:03

以用戶在程序中使用串口1和相關(guān)定時器T1為例:
1. 設(shè)置串口1 的工作模式,SCON 寄存器中的SM0SM1 兩位決定了串口1 的4 種工作模式;

    SM0, SM1: 0,0 方式0 ---同步移位串行方式:移位寄存器

                       0,1 方式1 ---8位UART,波特率可變

                       1,0 方式2 ---9位UART

                       1,1 方式3 ---9位UART,波特率可變

2. 設(shè)置串口1 的波特率,使用定時器T1寄存器 T1H及T1L;

    當串行口1用定時器1作為其波特率發(fā)生器且定時器1工作于模式2(8位自動重裝模式)時,

    Baud=(2^SMOD / 32)*Fosc/(12*(256-TH1))

    定時器1的工作模式: M1, M0 0,0---16位自動重裝定時器,當溢出時將RLTH1和RLTL1存放的值自動重裝入TH1和TL1中

                                                  0,1---16位不可重裝載模式,TL1、TH1全用

                                                  1,0---8位自動重裝載定時器,當溢出時將TH1存放的值自動重裝入TL1

                                                  1,1---定時器/計數(shù)器1此時無效(停止計數(shù))

3. 設(shè)置寄存器AUXR中的位S1ST2/AUXR.0T1x12/AUXR.6,確定定時器1作為串口1的波特率發(fā)生器以及速率是1T還是12T;

    S1ST2: 串口1(UART1)選擇定時器2作波特率發(fā)生器的控制位
                0, 選擇定時器1作為串口1(UART1)的波特率發(fā)生器;
                1, 選擇定時器2作為串口1(UART1)的波特率發(fā)生器,此時定時器1得到釋放,可以作為 獨立定時器使用

    T1x12: 定時器1速度控制位
                0, 定時器1是傳統(tǒng)8051速度,12分頻;
                1, 定時器1的速度是傳統(tǒng)8051的12倍,不分頻

4. 啟動定時器1,讓TR1位為1,T1H/T1L定時器1寄存器就立即開始計數(shù);

    TR1: 定時器T1的運行控制位。該位由軟件置位和清零。當GATE(TMOD.7)=0,TR1=1時就允許T1開始 計數(shù),

            TR1=0時禁止T1計數(shù)。 當GATE(TMOD.7)=1,TR1=1且INT1輸入高電平時,才允許T1計數(shù)。
5. 設(shè)置串口1的中斷優(yōu)先級, 及打開中斷相應(yīng)的控制位是:PS,ES,EA;
6. 如要串口1接收,將REN置1即可, 如要串口1發(fā)送,將數(shù)據(jù)送入SBUF即可,接收完成標志RI,發(fā)送完成標志TI,要由軟件清0;

例程如下:

/**************************通訊端口初始化****************************/
void CommInit()         //初始化串口
{
     AUXR &= ~0x01;      //串口1使用定時器T1
     AUXR &= ~(1<<6);   //定時器T1設(shè)置為1T的12分頻模式

    TMOD=0x20;            //定時器T1使用工作方式2
    TH1=0xfd;               // 串口工作模式1下, 11.0592M晶振波特率計算: Baud=(2^SMOD / 32)*Fosc/(12*(256-X)), 其中Fosc=11059200
    TL1=0xfd;               //計算得到Baud=9600
    TR1=1;                   //開始計時   
    PCON=0x00;           //SMOD=0;
    SCON=0x50;           //串口工作模式1
    TI=1;                     //發(fā)送完成標志
    EA=1;                   //CPU開放中斷
}





路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

返回頂部