单片机串行

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:24:11
网友你们好:在下的问题想了半个月了弄不明白为什么?还请指点一下
做了一个单片机向PC发送数据的程序:当外部设备向单片机P1.1输入0V电压时,发送一个数据,当向单片机P1.1输入5V电压时,单片机向PC发送另外一数据。硬件电路经检测电压正确,软件仿真程序也正确,但就是PC端串口调试助手不显示接受数据?

#include <reg51.h>
#include"intrins.h"
#define Pe P1^1

void init_serial( void ) ;
void Delay1ms(unsigned char m);
void send_string( unsigned char *P);
unsigned char MM[]="liuyan\n\r";
void main(void)
{
Delay1ms(100);
init_serial(); //串行口初始化
send_string("Kunming Kings Electronics \n\r");
send_string(MM);
while(1)
{
if (Pe==0)
{
//send_char('5');
send_string("--200--\n\r"); //向串口发送字符串
}
else
{
// send_char('6');
send_string("--666--\n\r");//向串口发送字符串
}
Delay1ms(200);

}

}
/* ---------串行口初始化--------- */
void init_serial( void )

/*--------向串口发送字符串--------*/
void send_string( unsigned char *P)
{

while(*P!='\0')
{
SBUF=*P;
while (TI== 0 ); TI= 0;
P++;

}
}
//while (TI== 0 ); TI= 0;
//这句应该有问题吧

你没有用到中断,你定义IE有什么用啊。你的发送程序应该没错。我也是初学者,期待你的问题的解决。

什么都没有没法看啊,最好有板子的原理图可以看一下,

你把修改后的程序发上来,我看下.