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

📄 uartslave.c

📁 c8051f040两块板子通信
💻 C
字号:
#include <c8051f040.h>

typedef unsigned char uchar;
typedef unsigned int uint;

sfr RCAP2=0XCA;
sfr TMR2=0XCC;

xdata uchar aa[6]={0x11,0x12,0x13,0x14,0x15,0x16};
xdata uchar res[6];
xdata uchar k;
xdata uchar t;
enum{aalen=6};

void delay1ms(uint time);
void uart0_ini();
void t1_ini();
void t1_baud(uchar t1h);
void t2_ini();
void t2_baud(uint t2reload);
void config(void);

void uart0_ini(){
	SFRPAGE=0X00;
	SADEN0=0X00;
	SADDR0=0X00;
	SSTA0=0X04;
	SCON0=0X50;
	SCON0&=0XFC;
	IE|=0X10;
	t1_ini();
	t2_ini();
}

void t1_ini(){
	SFRPAGE=0X00;
	CKCON=0X10;
	TMOD=0X20;
	TCON=0X40;
}

void t1_baud(uchar val){
	SFRPAGE=0X00;
	TH1=~val+1;
	TL1=TH1;
}

void t2_ini(){
	SFRPAGE=0X00;
	TMR2CF=0X08;
	TMR2CN=0X04;
}

void t2_baud(uint t2reload){
	SFRPAGE=0X00;
	RCAP2=~t2reload+1;
	TMR2=RCAP2;
}

void config(void){
	WDTCN=0X07;
	WDTCN=0XDE;
	WDTCN=0XAD;
	SFRPAGE=0X0F;
	XBR0=0X04;
	XBR1=0X00;
	XBR2=0X40;
	XBR3=0X00;
	SFRPAGE=0X0F;
	P0MDOUT=0X00;
	P1MDIN=0XFF;
	SFRPAGE=0X0F;
	CLKSEL=0X00;
	OSCXCN=0X00;
	OSCICN=0X84;
}

void main(){
	config();
	uart0_ini();
	t1_baud(10);
	t2_baud(10);
	EA=1;
	k=0;
	t=0;
	SFRPAGE=0X00;
	while(1){
		if(k>=aalen){
			SFRPAGE=0X00;
			TR1=0;
		}
		if(t>=aalen){
			SFRPAGE=0X00;
			TR2=0;
		}
	}
}

void uart0_ISR() interrupt 4{
	SFRPAGE=0X00;
	if(SCON0&0X01){
		res[t]=SBUF0;
		if(t==0)
		SBUF0=aa[0];
		t++;
		SCON0&=0XFE;
	}
	if(SCON0&0X02){
		k++;
		SBUF0=aa[k];
		SCON0&=0XFD;
	}
}




⌨️ 快捷键说明

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