关于max 1480 的疑问,为什么老是收到一样的东西? 点击:558 | 回复:0



winnie

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2003年10月09日
发表于:2005-08-15 08:58:00
楼主
用1480芯片   mcu 80c320   用串口0,p1。6连DE   实现功能是:mcu收到串口内容,原样发出   结果,pc只要给单片机发一个字节   单片机就老是收到这个字节的内容,然后远远而不断的发出   表述好像不清楚,举个例子把   我用pc给mcu发0x30,mcu给pc总是发送0x30   这个程序在max485上可以使用。   ps,p1_1是给另一个芯片使用的。   程序如下   //0526   // COMMUNICATE OK   #include <reg320.h>   #include <absacc.h>   #define uchar unsigned char   #define uint unsigned int   sbit P1_1 =P1^1;   bit flag=0;   sbit max485rw =P1^6;   unsigned char a ;   void delay_50us();   void clock_initial (void);   void delay_5us();   void send(uchar x);   void receive();   void delay(int i);   ////////////////////////////////////   void delay(int i)   {    int temp;    for (temp=i;temp>0;temp--);   }   void receive()   {   if(SBUF0==0){}   else   {   a=SBUF0;   flag=1;   }   if(SBUF0!=00)    {    ES0=0;   // while(RI==0);    a=SBUF0;    RI=0;    ES0=1;    send(a);    }   else    {    RI=0;    }   }      void send(unsigned char x)    {    max485rw=1;    delay(5);    SBUF0=x;    while (TI==0);    TI=0;    ES0=0;    max485rw=0;    delay(5);    ES0=1;    }         void spint(void) interrupt 4//serial port interrupt   {   receive();   }   /***************************主函数************************/   void main(void)   {    SP=0x80;    TMOD=0x20;    TH1=0xFD;    TL1=0xFD;    EA=0;    ES0=0;    PCON=0x00;    TR1=1;    SCON0=0x50;    IP=0x10;    WDCON=0x00;    ES0=1;    EA=1;    max485rw=0;    P1_1=0;    while(1)    {    P1_1=1;    delay_5us();    P1_1=0;    }   }


热门招聘
相关主题

官方公众号

智造工程师