导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[nankang]求教:用串口精灵给89C52发送数据,怎



No.95892
作者:nankang
邮件:nankang99@126.com
ID:57184
登陆:2次
文章数:2篇
最后登陆IP:221.196.56.80
最后登陆:2006/8/22 19:55:54
注册:2006/7/20 22:14:10
财富:108
发帖时间:2006/7/22 16:34:35
发贴者IP:221.238.226.70
标题:nankang:求教:用串口精灵给89C52发送数据,怎么只能发送一次呢
摘要:No.95892求教:用串口精灵给89C52发送数据,怎么只能发送一次呢 我通过串口精灵给AT89C52发数据 ,可是只是单片机上电后第一次发送成功,再发就不对了,不知道为什么啊。弄了快一周了,课题进度在那 着急啊拜托这里的高人给看看,程序有点长。多谢了!!一定帮我看看啊,我现在没有师兄,导师不在,急死了。程序可能看不清楚,我们再讨论。


#include   <reg52.h>  
#include  <math.h>  
#define T0 10
sbit P10=P2^0;//脉冲
sbit P11=P2^1; //方向
sbit P12=P2^2; //细分
sbit P13=P2^3;//等于0时脱机模式
sbit P15=P2^5;//动力
sbit P16=P2^6;//雪地模式
sbit P17=P2^7;//巡航模式 
 

unsigned int code StepTim[2][10]={{300,200,100,100,100,100,100,100,100,100},
                          {500,500,300,300,300,300,300,300,300,300}};
unsigned int idata ComWord[7];

unsigned int data StepNum,realStep;              
char temp;
unsigned char flag=0,speed,targetspeed;
void InitialUart(void);

//初始化波特率

    
void InitialUart(void)
{EA=0;
 TR2=0;
TMOD=0x11;            //set timer0/1 operate in MODE1 (16-bit timer)
T2CON=0x30;      //enable timer2 as serial transmit and receive clock
PCON=0;        //SMOD=0
SCON=0x50;    //|SM0|SM1|SM2|REN|TB8|TB9|TI|RI|
RCAP2L=0xB8;
RCAP2H=0xFF;      //reload value----to set Baudrate=4800
TL2=0xB8;
TH2=0xFF;
TR2=1;
EA=1;
}

void timer1(void) interrupt 3 using 3
{unsigned char Tim;
 static unsigned char i,j, Step=0;
TR1=0;
 ET1=0;
 P10=~P10;
if((speed-targetspeed)>  10)
 P11=0;
 else if((targetspeed-speed)>  10)
 P11=1;
      else P13=0;
 if(P13!=0)           
 {Tim=3000;
 TL1=(65536-Tim)&0xff;
 TH1=(65536-Tim)/256;
 if(Step>  realStep)
 { 
               TR1=0;
           ET1=0;
           for(j=1;j  <=30;j++)
           {
               for(i=1;i  <=30;i++)
              {
               }
           }
P13=0;
  }
 else
{ET1=1;
 TR1=1; 
Step++;}}}

void timer0(void) interrupt 1 using 1
{
unsigned char i,j,Tim;
static unsigned char k,Step;
     TR0=0;/*关计数器*/
    ET0=0;/*停中断*/
     P10=~P10;

if(P15==0)
  {if(Step  <StepNum)
   {Tim=StepTim[0][k];
   if(Step%3==0)
   k++;
   }
  else if(Step>  realStep-6&&Step  <realStep-3)
      Tim=200;
      else Tim=300;
  }
 else if(P16==0)
      {Tim=StepTim[1][k];
       if(Step%3==0)
         k++;
      }
      else Tim=300;

  
TL0=(unsigned char)((65536-Tim)&0xff);
TH0=(unsigned char)((65536-Tim)/256);/*再次附中断初值*/
     if(Step>  realStep)
     {
           P10=1; 
               TR0=0;
           ET0=0;
           for(j=1;j  <=30;j++)
           {
               for(i=1;i  <=30;i++)
                 {
                 }
                 }
                 P13=0;            
           }
     else
     {
           TR0=1;
           ET0=1;
           Step++;
     }

}
[color=#DC143C]void Com(void) interrupt 4 using 2
{
static unsigned char idata Com[11];
static unsigned char idata co=1;
unsigned char data i,j;

 if(RI) ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:5186毫秒 查询8次