
这是电路图
串口初始化:
void init_com(){
TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率
TH1 = 0xFD; // 波特率9600
SCON = 0xd0; // 设定串行口工作方式3
PCON &= 0xef; // 波特率不倍增
TR1 = 1; // 启动定时器1
IE = 0x0;
}
void send_char(unsigned char ch)
// 传送一个字符
{
delayms(2);
check_sum(ch);
TB8=P;
SBUF = ch;
while(!TI); // 等特数据传送
TI = 0; // 清除数据传送标志
}
//计算校验和
void check_sum(unsigned char d)
{
unsigned char i=0;
unsigned char sum=0;
for(i=0;i<8;i++)
{
if(d&0x1==1)sum++;
d>>=1;
}
if(sum%2==0)P=1;
else P=0;
}
void send_char(unsigned char ch)
// 传送一个字符
{
delayms(2);
check_sum(ch);
TB8=P;
SBUF = ch;
while(!TI); // 等特数据传送
TI = 0; // 清除数据传送标志
}
发送数据53 80 50 c0 到PC机上,用串口精灵可以看到,但发送到MMC上没反应,帮忙看看哪地方出问题了!MMC的20-23引脚一直低电平!