當前位置:編程學習大全網 - 行動軟體 - 請問AT52C單片機用T2計時器作串口波特率發生器時,波特率9600,各寄存器如何設置?

請問AT52C單片機用T2計時器作串口波特率發生器時,波特率9600,各寄存器如何設置?

//串口工作方式1,9600,8,1,n 定時器1為通訊波特率發生器

SCON = 0x50; //SM1=1串口工作方式1,REN=1允許接收[10URART,T1控制波特率,1位起始,1位停止,無奇偶校驗]

PCON |= 0x80; //SMOD=1,波特率加倍

TMOD |= 0x20; //M1=1,定時器1模式2,8位自動重載時間

TH1 = 0xFA; //波特率:9600 晶振:11.0592MHz

TL1 = 0xFA;

IE |= 0x90; //打開串口1中斷

TR1 = 1; //啟動定時器1

上面的就可以了。

呃,這麽久了還沒解決麽?

#include <AT89X52.H>

void main()

{

T2MOD = 0x01; //自動重載

T2CON = 0x30; //T2用做發送接收時鐘

TH2 = 0xFF; //9600波特率,11.0592Mhz晶振

TL2 = 0xDC;

RCAP2H = 0xFF;

RCAP2L = 0xDC;

SCON = 0x50; //串口方式1,1個起始位,1個停止位,8位數據

TR2 = 1; //啟動T2

while(1)

{

SBUF = 0xaa;

while( TI==0 );

TI = 0;

}

}

仿真通過。波特率9600,1個起始位,1個停止位,8位數據

  • 上一篇:16歲出道,從為父還債,到身家數億,影帝謝霆鋒十大代表作推薦
  • 下一篇:掩護電視劇劇情簡介
  • copyright 2024編程學習大全網