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

📄 fun.h

📁 从零开始学51单片机源代码
💻 H
字号:
//fun.h
//定义端口寄存器	 
sfr P0M0 = 0X93;
sfr P0M1 = 0X94;
sfr P1M0 = 0X91;
sfr P1M1 = 0X92;
sfr P2M0 = 0X95;
sfr P2M1 = 0X96;  
sfr P3M0 = 0Xb1;
sfr P3M1 = 0Xb2; 

//定义串口2寄存器 
sfr AUXR = 0x8e;
sfr S2CON = 0x9a;
sfr S2BUF = 0x9b;
sfr BRT = 0x9c;
sfr IE2 = 0xaf;

#define fosc 11059200L

sbit dir1 = P3^0; //串口1,485方向控制 
sbit dir2 = P1^0; //串口2,485方向控制 

char reciev1[10], rec_num1;	//保存接收到的数据 
char reciev2[10], rec_num2;	//保存接收到的数据 

//正在接收标志
bit r1tag,r2tag; 

void init_usart()
{
	SM0 = 0;
	SM1 = 1;
	REN = 1;
	ES = 1; 		 
}

void init_usart2()
{
	S2CON = 0x50; //S2M0 = 0,S2M1=1,S2REN=1;
	AUXR = 0x14; //BRTR=1,S2SMOD=0,BRTx12=1; 
	//11.0592MHz,9600
	BRT =  256 - (fosc/32/9600); //BRT = 0xdc	
	IE2 = 0x01; //ES2 = 1		 
}

void init_timer()
{
	TMOD |= 0X20;	//定时器1模式2,8bit自动重装 
	TH0 = 0xfd;	   //对应波特率9600
	TL0 = 0xfd;	
	ET1 = 1; //允许T1中断 
	TR1 = 1;
}

//定义延时函数
void ms_delay(unsigned int t)
{
	unsigned  int  i;
	for (t; t > 0; t--)	//外层循环t次	 
		for (i = 1320;i > 0; i--)	//内层循环110*12次		   
		;
}

void send1(char c)
{
	dir1 = 1; //485发送数据 
	SBUF = c;
	while(!TI);//等待发完 
	dir1 = 0; //485接收数据 
}

void send2(char c)
{
	dir2 = 1; //485发送数据 
	S2BUF = c;
	while(!(S2CON & 0x02));//等待发完 
	dir2 = 0; //485接收数据  
}

⌨️ 快捷键说明

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