⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 485-2.c

📁 PIC16F877c语言实现485收发一个字节的数据
💻 C
字号:
#include <pic.h>
#include<pic1687x.h>
#define  REDE	RD2//TRISD2=0;
void Delay1Ms_2(unsigned int t);
unsigned char recdata;
unsigned char flag;
unsigned char i;



void send_serial(unsigned char count)			//串口发送
{   
		
		TXEN=1;  //发送使能发送功能
		TXREG=count;
		while(1)
		{
			if(TRMT==1)  break;
		}
		TXEN=0;
		
}

//系统初始化函数*/
void initial()
{
	INTCON=0x00;
	ADCON1=0x07;
	PIE1=0;
	PIE2=0;
}

//串行通信初始化程序*/
void sciinitial()
{
	TXSTA=0x04;
	RCSTA=0x80;
	TRISC=0x80;
	SPBRG=0x33;
	PIR1=0x00;
    PIE1=PIE1|0x20;  
    CREN=1;
    TXEN=1;
}
//485接收中断
void interrupt LOW_ISR()
{
   if(RCIF==1)
    {
      RCIF=0;
      recdata=RCREG;
   
       
      flag=1;
      
    }
}


void Delay1Ms_2(unsigned int t)				//延时
{
    unsigned char i;
 	for(;t>0;t--)
	{
		for (i=0;i<10;i++)
		{
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
			//asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
		}
	}	

}

//主函数
main()
{
  initial();
  sciinitial();
  TRISD2=0;	
  //RC2=0;
  //RC4=1;
  REDE=0;
  flag=0;
  INTCON=INTCON|0xc0;
  while(1)
   {
     if(flag==1)
      {
         flag=0;
         //RC2=1;
         //RC4=0;
		 REDE=1;
		 send_serial(recdata);
         for(i=0;i<50;i++);
         //RC4=1;
         //RC2=0;
		 REDE=0;
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -