11
2020
09

CT107D-串口通信

串口通信能用到的寄存器:SCON PCON TMOD


SCON Serial Control Register 串口控制寄存器 0x98H

SCON的各位定义及作用

SM0    SM1    SM2    REN    TB8    RB8    TI    RI

SM0-SM2 控制着串口工作的方式,REN接收控制位,如果REN为1,则运行接收串口数据

image.png

TB8和RB8分别为发送和接收数据位8,在方式2和3中它会被发送或接收

TI是发送中断标志位,每当发送完成一次数据之后,该位会被硬件置1,需要手动清零,才能继续发送数据

RI是接收中断标志位,每当接收完成一次数据之后,该位会被硬件置1,需要手动清零,才能继续接收数据


PCON Power Control Register 功率控制寄存器 0x87H

PCON的各位定义及作用

SMOD    SMOD0    LVDF    POF    GF1    GF0    PD    IDL

SMOD——S可以被认为是Serial,也就是串口,该位与串口通信有关,该位为0时波特率正常,为1时翻倍


TMOD TIMER/COUNTER MODE CONTROL REGISTER 定时器、计数器模式控制寄存器 0x89H

TMOD分为两半,从第7位至第4位为控制定时器1的GATE C/T M1 M0 从第4位至第0位控制定时器0

GATE位是定时器/计数器控制位,当该为为1时才有效

C/T位为功能选择位,C/T为0时为T模式,即计时器模式,当该位为1时为C模式,即计数器模式

M0和M1为工作方式位,对应如下

image.png


void UartInit(void)		//9600bps@11.0592MHz
{
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率
	AUXR &= 0xBF;		//定时器1时钟为Fosc/12,即12T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//清除定时器1模式位
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xFD;		//设定定时初值
	TH1 = 0xFD;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
}


« 上一篇 下一篇 »

返回顶部
请先 登录 再评论,若不是会员请先 注册