打印

增强型单片机的疑惑?

[复制链接]
1766|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shaowei2072009|  楼主 | 2013-6-27 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在在做载波通信,用的是晓程的PL4000,内嵌8051.外部晶振是9.6M的,分频给8051为4.8M,写了简单的测试程序,但是串口一直都只能收到一般的数据或者数据包(数据包完整)。
#include <PL3107.h>

#define u8 unsigned char
#define u16 unsigned int
u8 flag ,rec_flag=0;
u8 ser_rec[20];

void init()
{
          PCON = 0x0C0;
        TMOD = 0x20;          //定时器1工作在方式2,定时器0工作在方式1
//        TMOD1 = 0x32;          //定时器2工作在方式2,定时器0工作在方式1       
//        TH2=0xE1;                  //实现波特率4800(系统时钟9.6MHZ)         (F6/ 2400)
//        TL2=0xE1;                  //实现波特率4800(系统时钟9.6MHZ)          (FB/FA 4800)
        TH1=0x0FB;                  //实现波特率4800(系统时钟9.6MHZ)         (F6/ 2400)
        TL1=0x0FB;                  //实现波特率4800(系统时钟9.6MHZ)          (FB/FA 4800)
        TCON=0x50;                          //启动定时器
//        TCON1=0x10;                          //启动定时器
        SCON = 0x50;
//        SCON1 = 0x50;
        EA=1;                          //单片机中断允许
        ES=1;                          //允许串行口中断
}
void sendonebyte(u8 dat)
{
//        ES = 0;
        SBUF = dat;
        while(!TI);
        TI=0;
//        ES = 1;
}
void main()
{       
          init();
        while(1)
        {
        //        sendonebyte(0x65);
                /* if(flag == 1)
                {
                        sendonebyte(0x65);
                        flag=0;
                        //for(i=0;i<14;i++)
                        //{
                          // sendonebyte(ser_rec[i]);
                        //}
                       
                } */
        }
}
void ser() interrupt 4
{
         u8 temp;       
         RI = 0;
               
                temp = SBUF;
                sendonebyte(temp);

}用串口助手看发送数据量时,大概发送100个但是返回接收到的只有50多一点

  

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

108

帖子

0

粉丝