TMOD |= 0x20; // 设置T1定时器,用来产生所要的波特率
// T1工作在定时器模式,时钟来自Fosc的12分频
// 选择让T1工作在方式2,由TH1自动重装TL1
TH1 = 0xfd; // 设置TH1为0xfd,每次装载到TL1后,
// TL1在这个值的基础上,每个时钟加1计数
// 0xfd->0xfe->0xff->0x00
// 每3个时钟周期T1就会溢出1次
// 所以,T1的溢出频率为Fosc/12/3 =
// 22.1184Mhz/12/3 = 614.4KHz
TR1 = 1; // TR1 = 1,使能T1计数
SCON = 0x5a; // SM0 = 0, SM1 = 1, SM2 = 0, REN = 1
// TB8 = 1, RB8 = 0, TI = 1, RI = 0
// 异步通信口的工作方式设为方式1
// 8位异步通信,波特率由T1溢出设定
// REN = 1,允许接收。
// SM2 = 0,不检测停止位
// TI = 1,预设该位为1,表示接口中没有数据正在发送
// ,可写入新数据
// RI = 0,预设该位为0,表示接口中没有数据被接收到
// 这里没有设置SMOD,使用其复位后的缺省值:0
// 因为SMOD为0,所以波特率为T1溢出频率的1/32
// Buadrate = 614.4KHz/32 = 19200BPS
XBYTE[0x8020] = 0x01; // 向EPM7128S中的系统控制寄存器写0x01
// ComSEL0 = 1,ComSEL1 = 0
// 选择232接口为异步通信口的连接对象
|