您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机AVR单片机串口多机通讯程序 正文
AVR单片机串口多机通讯程序

AVR单片机串口多机通讯程序

点击数:7186 次   录入时间:03-04 11:52:58   整理:http://www.55dianzi.com   AVR单片机
             { 
               //请在这里添加你的代码 
               //收到广播数据请不要回复 
             } 
         } 
     } 


void main(void) 

   usart_init(); 
   #asm("sei") 

   while (1) 
         { 
           //send[1]=? 
           //...... 
           //send[n]=? 
         }; 



--------------------------------------------------------------------------------- 
usart.h文件 
--------------------------------------------------------------------------------- 
//波特率9600/9个数据位/1个停止位/奇校验/收发开启/接收中断 
void usart_init(void) 
      {   
        UCSRA=0x01; 
        UCSRB=0x9C; 
        UCSRC=http://www.55dianzi.com/0xB6; 
        UBRRH=0x00; 
        UBRRL=47; 

        PORTD.4=0;                       //MAX485平时工作在接收状态 
        DDRD.4=1; 
      } 

//----------------------------------------------------------- 
//从数组datas[]的首地址开始发送amount个数据,其中第0个数据是地址帧,其他是数据帧 
void usart_out(unsigned char *datas,unsigned char n) 
      { 
        unsigned char i=0;   
        PORTD.4=1;                       //使MAX485处于发送状态 
        while(i<n)                  //一共发送amount个数据 
             {   
               if(i==0) UCSRB|=1; else UCSRB&=254;    
               UDR=*(datas+i);          //装载数据开始发送 
               while((UCSRA&64)==0);    //等待发送结束 
               UCSRA|=64;               //清除发送结束标志 
               i++;                      //发送次数统计 
             } 
        PORTD.4=0;                       //使MAX485处于接收状态 
      }    

--------------------------------------------------------------------------------- 
crc8校验程序 
--------------------------------------------------------------------------------- 
unsigned char crc8(unsigned char *ptr, unsigned char len)   

   unsigned char i; 
   unsigned char crc=0; 
   while(len--!=0)   
    { 
      for(i=1; i!=0; i*=2) 
       { 
         if((crc&1)!=0) {crc/=2; crc^=0x8C;} 
         else crc/=2; 
         if((*ptr&i)!=0) crc^=0x8C;      
        }   
      ptr++; 
     } 
return(crc); 


上一页  [1] [2] [3] 


本文关键字:单片机  程序  AVR单片机单片机-工控设备 - AVR单片机