最近买了STC12C2052AD单片机,做个数模转换用。可是在用串口把数据发送出来的时候出了一些问题!!求助!!
串口程序:
#include"STC12C2052AD.h"
#include"intrins.h"
unsigned char s=0;
unsigned char Ori_data[4]={95,43,54,65};
unsigned char Out_Data[6]={0,32,64,128,160,192};
bit flag;
void initUART(void)//串口初始化
{
TMOD=0x20;//定时器1,工作方式2
PCON=0x00;//波特率不倍增
SCON=0x50;//串口工作方式1,8位自动重装载
EA=1; //开总中断
ES=1; //开串口中断
TH1=0xfd;//自动重装值和初始值
TL1=0xfd;
TR1=1; //定时器1开
AUXR=0x00;
}
void main(void)
{
flag=0;
initUART();
while(1) ;//if(flag==1){ sendchar(Out_Data[0]);flag=0;}
}
void inser() interrupt 4 using 3//串口中断服务程序
{
EA=0;
s=SBUF;
RI=0;
SBUF=s;
while(!TI);
TI=0;
EA=1;
}
把编译好的Hex文件下载到单片机里,串口测试的时候,发送的数据与返回的就是不一样!!!
试过把这段程序烧到STC89C52RC,便可以达到预期目标!!!请问这是怎么回事??
晶振:11.0592Mhz
------解决方案--------------------
sendchar的定义呢?估计是1T单片机的问题,有延迟没有做好