关于单片机空闲模式对串行通讯的影响的解释
在单片机进入空闲模式后,内部时钟不向CPU提供,而只提供给中断、串行口、定时器部分。
所以串行口有时钟的供给,在接收时是不会出现错误的,通过下面的实验也证实在空闲模式下的串行接收的数据无错误!
void main(void)
{
TMOD=0x20;
TH1=0xfd; //9600
TL1=0xfd;
EA=1;
SCON=0x50;
PCON=PCON & 0x7F;
TR1=1;
ES=1;
while(1)
PCON=PCON | 0x01; //进入空闲模式
}
void SEND_INT(void) interrupt 4
{
unsigned char i;
WDT_CONTR=0x34;
RI=0;
i=SBUF;//接收
TI=0;
SBUF=i;//验证接收
while(!TI);
TI=0;
}
所以串行口有时钟的供给,在接收时是不会出现错误的,通过下面的实验也证实在空闲模式下的串行接收的数据无错误!
void main(void)
{
TMOD=0x20;
TH1=0xfd; //9600
TL1=0xfd;
EA=1;
SCON=0x50;
PCON=PCON & 0x7F;
TR1=1;
ES=1;
while(1)
PCON=PCON | 0x01; //进入空闲模式
}
void SEND_INT(void) interrupt 4
{
unsigned char i;
WDT_CONTR=0x34;
RI=0;
i=SBUF;//接收
TI=0;
SBUF=i;//验证接收
while(!TI);
TI=0;
}