单品级C语言串口通信问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 14:49:04
这个是我的程序,我想做的事在c8051f000单片机下传输数组的字符到PC机,用串口调试助手接收,但是我的程序无法传输,在循环中i自动加一,但是SBUF和t[i]的值不变,那位给个解释或者答案啊,没多少份,全给了
#include<C8051F000.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
uchar idata t[10]={'M','C','S','-','5','1',0x0d,0x0A,0X00};
main()
{
uint i;
uint j,k;
OSCICN=0X14; /*电源设置*/
OSCXCN=0X67;
while((OSCXCN&&0X08)==0);
for(k=0;k<1000;k++);
OSCICN=0x08;
REF0CN=0x02;
RCLK=1;
TCLK=1;
TR2=1;
TH2=0XFD;
TL2=0XFD; //波特率产生模式
TMOD=0X20; //在11.0592MHZ下波特率设置为9600,则定时器2方式为2,串口方式为1,SMOD=0X00,TMOD=0X20,TH1=0XFD.

TH1=0XFD;
TL1=0XFD;
SCON=0X7c;
PCON=0X00;

TR1=1;
EA=1;
ES=1;

TR1=1;
EA=0; /*关闭看门狗*/
WDTCN=0XDE;
WDTCN=0XAD;
EA=1;

while(1){

这个是我的程序,我想做的事在c8051f000单片机下传输数组的字符到PC机,用串口调试助手接收,但是我的程序无法传输,在循环中i自动加一,但是SBUF和t[i]的值不变,那位给个解释或者答案啊,没多少份,全给了
问题补充:#include<C8051F000.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
uchar idata t[10]={'M','C','S','-','5','1',0x0d,0x0A,0X00};
main()
{
uint i;
uint j,k;
OSCICN=0X14; /*电源设置*/
OSCXCN=0X67;
while((OSCXCN&&0X08)==0);
for(k=0;k<1000;k++);
OSCICN=0x08;
REF0CN=0x02;
RCLK=1;
TCLK=1;
TR2=1;
TH2=0XFD;
TL2=0XFD; //波特率产生模式
TMOD=0X20; //在11.0592MHZ下波特率设置为9600,则定时器2方式为2,串口方式为1,SMOD=0X00,TMOD=0X20,TH1=0XFD.

TH1=0XFD;
TL1=0XFD;
SCON=0X7c;
PCON=0X00;

TR1=1;
EA=1;
ES=1;

TR1=1;
EA=0; /*关闭看门狗*/
WDTCN=0XDE;
WDTCN=0XAD;
EA=1;

while(1){
i=0;
while(t[i]!=0x00){ TI=0;