ltbytyn 发表于 2015-4-21 17:28
把ES=0;去掉
试过了 不行 串口还是接收不到数据,我把程序写了具体点:
#include
#include
unsigned char idata tab[]; //定义数组用于存放数据
unsigned char j,cnt=0,flag=0;
unsigned char i=0;
void UART_INIT()
{
SCON=0X50; //工作方式1,发送使能
TMOD|=0X21; //定时器1,工作方式2
AUXR&=0x3F; //定时器0,1时钟为Fosc/12,即12T
AUXR&=0xFE; //串口1选择定时器1为波特率发生器
PCON&=0x7F; //波特率不加倍
TH1=0XFC; //波特率9600,时钟频率14.7456MHz
TL1=0XFC;
TH0=0XFB; //定时长度1ms
TL0=0X33;
TR0=1; //定时器0不使能,接收到数据在开始计时
TR1=1; //定时器1使能
PS=1; //串口中断设为高优先级
ES=1; //开串口中断
ET1=0; //禁止定时器1中断
ET0=1; //开定时器0中断
EA=1; //开总中断
}
void delay_1ms(unsigned int t) //软件延时1ms
{
unsigned int a,b;
for(a=0;a