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

📄 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; 

#define fosc 11059200L
#define T0_50ms (65536 - (fosc/12/50000))  //50ms定时参数
sbit en1 = P2^6;
sbit en2 = P2^7;
sbit dir = P3^2; //485方向控制 
unsigned char display_num,count_in_T0;	//计数值 、进入定时器的次数
char reciev[3], rec_num;	//保存接收到的数据  

/*
共阴极数码管0 - 9的字形码 
“0” 3FH “5” 6DH  
“1” 06H “6” 7DH
“2” 5BH “7” 07H
“3” 4FH “8” 7FH
“4” 66H “9” 6FH 
*/
const unsigned char seg7[10] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66,
								 0x6d, 0x7d, 0x07, 0x7f, 0x6f};     

void init_port()
{
	P0M1 = 0xff;
	P0M0 = 0xff; 
	P2M1 |= 0xc0;  
	P2M0 |= 0xc0;
	P3M1 = 0x00;  //P3.2准双向口模式 
	P3M0 = 0x00;
}

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

void init_timer()
{
	TMOD |= 0X01;	//定时器0模式1,16bit
	TH0 = T0_50ms >> 8;	   //TH0 = T0_50ms / 256
	TL0 = T0_50ms;			//TL0 = T0_50ms % 256	
	ET0 = 1; //允许T0中断 

	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 = 110;i > 0; i--)	//内层循环110次		   
		;
}

void display(unsigned char c2, unsigned char c1)
{
	P0 = seg7[c2];	//送入十位的段码 
	en2 = 0;	//显示DS2
	ms_delay(10);
	en2 = 1;	//关闭DS2	

	P0 = seg7[c1];	//送入个位的段码 
	en1 = 0;	//显示DS1
	ms_delay(10);
	en1 = 1;	//关闭DS1
}

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

⌨️ 快捷键说明

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