您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC与485的通讯源程序 正文
PIC与485的通讯源程序

PIC与485的通讯源程序

点击数:7304 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
    LED_IO = 0x01;
    TMR0_Init();
    #if defined(PIC_USE_HC595)
        HC595_Init();
    #endif

    #if defined(PIC_USE_LCD12864)
        LCD_Init();
    #endif

    #if defined(PIC_USE_ISD1700)
        ISD1700_Init();
    #endif

    #if defined(PIC_USE_KB)
        KeyBoard_Init();
    #endif

    #if defined(PIC_USE_RS485)
        RS485_Init();
    #endif
}

#include <stdio.h>
#include "HardwareProfile.h"
#if defined(PIC_USE_RS485)


void RS485_Init(void)
{
 RS485_DIR_IO = Receive;
 RS485_DIR_TRIS = 0;
 RS485_RX_TRIS = 1;
 RS485_TX_TRIS = 0;
/* SPBRG = DIVIDER;
 RCSTA = (NINE_BITS|0x90);
 TXSTA = (SPEED|NINE_BITS|0x20);*/
 //SPBRG=25;        //波特率为 9600       Baud Rate = Fosc/(16*(SPBRG+1))
 SPBRG=64;
 BRGH=1;          //高速波特率使能位
 TXEN=1;          //发送允许
 CREN=1;          //连续接收选择位
 SPEN=1;          //串行口使能位
 TXIE=0; 
 RCIE=0;          //接收中断使能开启
 TXIF=0;
 RCIF=0;
 PEIE=1;
 GIE=1;
}

void RS485_Putch(BYTE byte)
{

 /* output one byte */
 while(!TXIF) /* set when register is empty */
  continue;
 RS485_DIR_IO = Send;
 TXREG = byte;
 while(!TRMT) /* set when register is empty */
  ;
 RS485_DIR_IO = Receive;
}

BYTE RS485_Getch(void)
{
 /* retrieve one byte */
 while(!RCIF) /* set when register is not empty */
  continue;
 RCIF = 0;
 return RCREG;
}

BYTE RS485_RW(void)
{
 BYTE temp;
 RS485_Putch(temp = RS485_Getch());
 return temp;
}

#endif



上一页  [1] [2] 


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

《PIC与485的通讯源程序》相关文章>>>