导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:求助![Vieirawin]

 *第8542篇: C51编程:求助!

  
楼 主:Vieirawin 2003年2月28日03:31
 C51编程:求助!
哪位高人能帮忙看一下我的小程序,很短,就是不断发送字符'h'和'y'到PC端.在KEILC51下调
试没有问题,但在单片机AT89C52中,PC端串口精灵收不到任何数据!

#include "Atmel/AT89X52.h" //用AT89C52,开发环境Keil C51 7.0

#define BUFF_LEN 2   //每次发送两个字节

unsigned char g_cBuff[BUFF_LEN];

void initClock(void) //设置T0,用T0溢出TF0置位时TF0=0,TR0=0,然后发送两个字节,而后
重新开始T0
{   
    TR0  = 0;
    TF0  = 0;
    TCON = 0x00;
    TH0  = 0x00;
    TL0  = 0x00;
    TR0  = 1;
}
void initComm(void)//9600波特率,1位停止位,8位数据,无奇偶校验(11.0952M的晶振)
{  
    SCON = 0x50; //串口工作方式1
    PCON = 0x00; //设置串口波特率9600,1位停止位,8位数据      
    TH1  = 0xfd; //设置T1初始值
    TL1  = 0xfd; //设置T1初始值
    TR1  = 1;
}
//向串口发送一个字符
void sendCharComm(unsigned char ch)  
{
    SBUF=ch;
    while(TI==0);
    TI=0;
}
//向串口发送一个字符串,strlen为该字符串长度
void sendStringComm(unsigned char *str,unsigned int strlen)
{
    unsigned int k;
    for(k=0;k < strlen;k++)   sendCharComm(*(str + k));
}
void main(void)
{
    g_cBuff[0] = 'h';
    g_cBuff[1] = 'y';
    TMOD = 0x21; //设置T0和9600波特率发生器T1
    initComm();
    initClock(); 
    for(;;)
    {
        while(TF0)
       {
            TR0 = 0;
        TF0 = 0;
            sendStringComm(g_cBuff, BUFF_LEN);
            initClock();
       }
    }   
}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:我在写Rtl8019as的发送程序,请问如何使用两个发送缓存,一次可以存储两个数据包,应该如何处理?

[下一篇主题]:C51编程:接收不到AT89C52发送的字符,不知原因,以下是程序?