serial-shou-fa.c

来自「中断实现16F877的串口收发」· C语言 代码 · 共 86 行

C
86
字号
#include<pic1687x.h>
#include<pic.h>
#define  Y_LED	RD1//TRISD1=0;
#define  REDE	RD2//TRISD2=0;
void send_serial(unsigned char t);
unsigned char receive_serial();
void Delay1Ms_2(unsigned int t);
void interrupt receive(void);




void interrupt receive(void)
{
		unsigned char k;

		if(RCIF)
		{
			k=RCREG;
			Delay1Ms_2(500);
			send_serial(k);
			send_serial(0x0a);
		}
		else
		{
			send_serial(65);
		}


}	

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



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()
{
		
			unsigned char a,r,b=65;
			GIE=1;
			PEIE=1;
			RCIE=1;
			TXIE=0;
			TRISC=0xf0;				   
			TXSTA=0x24;    
			RCSTA=0x90;
			SPBRG=0x19;     
	

			while(1)
			{
					;
			}
}

⌨️ 快捷键说明

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