单片机异步通信发送字符c语言,PIC单片机485通信接收发送C语言源代码.pdf

1、PIC 单片机485通信接收——源代码

#include

#include

#include"stdio.h"

#defineucharunsignedchar

#defineuintunsignedint

__CONFIG(WDTDIS &HS &PWRTDIS &BORDIS);//设置配置位

//WDTDIS :disablewatchdogtimer

//LVPDIS :lowvoltage programmingdisabled

//HS :highspeedcrystal/resonator

//PWRTDIS :disablepoweruptimer

//BORDIS :disablebrownoutreset

#definePORTAIT(adr,bit)((unsigned)(&adr)*8+(bit)) //绝对位操作指令;

staticbitDI@(PORTAIT(PORTB,0);

staticbitCK @(PORTAIT(PORTB,1);

staticbitLA@(PORTAIT(PORTB,2);

staticbitOE @(PORTAIT(PORTB,3);

#defineRE RC2 //接收允许控制位

#defineDERC3 //发送允许控制位

ucharredata;

//

voidUSART_Init(void);

voidSEND_Byte(uchardat);

voidSEND_DM114_DA(ucharDAT);

voiddelay50us(ucharz);

//

voiddelay50us(ucharz)

{

uchari,j;

for(j=0;j

for(i=0;i<6;i++)

;

}

//

voidSEND_Byte(uchardat)

{

if(dat==0)

// DI= 0;

RB0=0;

else

DI=1;

//RB0= 1;

}

voidSEND_DM114_DA(ucharDAT)

{

uchari;

OE=1;

//RB3= 1;

LA=0;

//RB2= 0;

for(i=0;i<8;i++)

{

SEND_Byte(DAT&0x80);

DAT<< =1;

CK=0;

CK=1;

//RB1= 0;

//RB1= 1;

}

LA= 1;

OE= 0;

//RB2= 1;

// RB3 =0;

}

//

//

voidUSART_Init(void)

{

SPBRG =77; //高速 波特率960012MHz SPBRG =0x4D

//SPBRG=129;//高速 波特率960020MHz

TXSTA=0x04;

//TXSTA:CSRCTX9TXENSYNC -- BRGHTRMTTX9D

// 0 0 0 0 1 0 0

RCSTA= 0x80;

//RCSTA:SPEN RX9SREN CRENADDENFERR OERR RX9D

// 1 0 0 0 0 0 0 0

RCIE =1; //开接收中断

TXEN=1;

CREN =1; //接收使能

TRISC6= 1;//设置为输入状态

TRISC7= 1;

// TXIE =1; //开发送中断

TRISC3= 0;//设置为输出状态

TRISC2= 0;

RE=0; //SN75176开启接收

DE=0; // SN75176关闭发送

PEIE =1; //开外设中断

GIE=1; //开总中断

TRISB =0x00; //B口为输出

}

//

voidinterruptcom(void)

{

if(RCIE&&RCIF)

{

redata=RCREG;

RE=1; //SN75176关闭接收

DE=1; // SN75176开启

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值