AT89S52单片机能发送数据,示波器有显示,但串口助手没显示,换了助手也没显示,求大侠
时间:10-02
整理:3721RD
点击:
- #include<AT89X51.h> //包含单片机寄存器的头文件
- unsigned char code Tab[ ]={0x1,0x2,3,4,5,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46};
- //0-9 A-F
- /*****************************************************
- 函数功能:向PC发送一个字节数据
- ***************************************************/
- void Send(unsigned char dat)
- {
- SBUF=dat;
- while(TI==0)
- ;
- TI=0;
- }
- /**************************************************************
- 函数功能:延时约150ms
- **************************************************************/
- void delay(void)
- {
- unsigned char m,n;
- for(m=0;m<200;m++)
- for(n=0;n<250;n++)
- ;
- }
- /*****************************************************
- 函数功能:主函数
- ***************************************************/
- void main(void)
- {
- unsigned char i;
- TMOD=0x20; //TMOD=0010 0000B,定时器T1工作于方式2
- SCON=0x40; //SCON=0100 0000B,串口工作方式1
- PCON=0x00; //PCON=0000 0000B,波特率9600
- TH1=0xfd; //根据规定给定时器T1赋初值
- TL1=0xfd; //根据规定给定时器T1赋初值
- TR1=1; //启动定时器T1
- while(1)
- {
- for(i=0;i<16;i++) //模拟检测数据
- {
- Send(Tab[i]); //发送数据i
- delay(); //150ms发送一次数据
- }
- }
- }
助手
你的程序只是发送数据,没有接收数据,所以从PC发送数据的部分就不用测试了。
助手的选项里除了RXD和TXD外,其他的如DTR,RTS等都不要选择
这里改一下就可以正常发送了。
void Send(unsigned char dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
小编可以采纳4楼的方法试一试,不过是使用串口助手时,要注意选择正确的端口,而且要选中正确的波特率!
谢谢大家,问题已解决