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

📄 zhenxian.c

📁 从51单片机控制液晶显示并且集成继电器控制
💻 C
📖 第 1 页 / 共 2 页
字号:
 	for(i=0;i<125;i++) ;
}

dingshi()
{
TMOD=0x02;
TL0=TH0=0x06;
EA=1;
ET0=1;
TR0=1;
}

void time0_int(void) interrupt 1
{
	timen++;              //到4000为1s;
	if(timen==4000)TR0=0;
}

KEYSCAN()
{
		P2_3=P2_4=P2_5=P2_6=1;
		if((P2_3&&P2_4&&P2_5&&P2_6)==0)DELAY(8);

		while(P2_3==0)KV=1;
		while(P2_4==0)KV=2;
		while(P2_5==0)KV=3;
		while(P2_6==0)KV=4;
}

// 频显前准备
swch()
{
	char i=0;
	switch(F)
	{
	case 0:
		for(i=0;i<16;i++)
			fre[i]=uca_0[i];break;
	case 1:
		for(i=0;i<16;i++)
			fre[i]=uca_1[i];break;
	case 2:
		for(i=0;i<16;i++)
			fre[i]=uca_2[i];break;
	case 3:
		for(i=0;i<16;i++)
			fre[i]=uca_3[i];break;
	case 4:
		for(i=0;i<16;i++)
			fre[i]=uca_4[i];break;
	case 5:
		for(i=0;i<16;i++)
			fre[i]=uca_5[i];break;
	case 6:
		for(i=0;i<16;i++)
			fre[i]=uca_6[i];break;
	case 7:
		for(i=0;i<16;i++)
			fre[i]=uca_7[i];break;
	case 8:
		for(i=0;i<16;i++)
			fre[i]=uca_8[i];break;
	case 9:
		for(i=0;i<16;i++)
			fre[i]=uca_9[i];break;
	}
}
	
//频率显示前二进制到十进制转换
trans()
{
	int i;
	i=511*4e6/indata;
	F=i/1000;
	swch();
	vShowOneChar(2,40,fre);
	F=i/100%10;
	swch();
	vShowOneChar(2,48,fre);
	F=i/10%10;
	swch();
	vShowOneChar(2,56,fre);
	F=i%10;
	swch();
	vShowOneChar(2,64,fre);
}
	 
//测量中 ...
show_celiang()
{
	clearscr();	
	vShowOneChin16(2,32,uca_ce);
	vShowOneChin16(2,48,uca_liang);
	vShowOneChin16(2,64,uca_zhong);
	vShowOneChar(2,80,uca_dian);
	vShowOneChar(2,88,uca_dian);
	vShowOneChar(2,96,uca_dian);
	P1_5=0;P1_6=0;						// 开继电器,开始计数,定时器开始定时1s
	dingshi();
	while(timen!=4000);
	if(timen==4000)
		{
		P1_6=1;P1_5=1;timen=0;read_p0();show_result();
		}
}
	

	/*	//显示20/19
		Y2K_DISP()
		{
		F=TIME_BUFF[7]/10;
		swch();
		vShowOneChar(0,0,fre);
		F=TIME_BUFF[7]%10;
		swch();
		vShowOneChar(0,8,fre);
		}
		
		//显示XX年
		YR_DISP()
		{
		F=TIME_BUFF[5]/10;
		swch();
		vShowOneChar(0,16,fre);
		F=TIME_BUFF[5]%10;
		swch();
		vShowOneChar(0,24,fre);
		}
		
		//显示XX月
		MO_DISP()
		{
		F=TIME_BUFF[4]/10;
		swch();
		vShowOneChar(2,0,fre);
		F=TIME_BUFF[4]%10;
		swch();
		vShowOneChar(2,8,fre);
		}
		
		//显示XX日
		DT_DISP()
		{
		F=TIME_BUFF[3]/10;
		swch();
		vShowOneChar(2,32,fre);
		F=TIME_BUFF[3]%10;
		swch();
		vShowOneChar(2,40,fre);
		}
		
		//显示星期X
		DW_DISP()
		{
		switch(TIME_BUFF[6])
		{
			case 0:
			vShowOneChin16(4,32,uca_tian);break;
			case 1:
			vShowOneChin16(4,32,uca_yi);break;
			case 2:
			vShowOneChin16(4,32,uca_er);break;
			case 3:
			vShowOneChin16(4,32,uca_san);break;
			case 4:
			vShowOneChin16(4,32,uca_si);break;
			case 5:
			vShowOneChin16(4,32,uca_wu);break;
			case 6:
			vShowOneChin16(4,32,uca_liu);break;
		}
		}
		
		//显示时间XX整点
		HR_DISP()
		{				
		F=TIME_BUFF[2]/10;
		swch();
		vShowOneChar(6,0,fre);
		F=TIME_BUFF[2]%10;
		swch();
		vShowOneChar(6,8,fre);
		}
		
		//显示时间XX分
		MN_DISP()
		{
		F=TIME_BUFF[1]/10;
		swch();
		vShowOneChar(6,24,fre);
		F=TIME_BUFF[1]%10;
		swch();
		vShowOneChar(6,32,fre);
		}
		
		//显示时间XX秒
		SC_DISP()
		{
		F=TIME_BUFF[0]/10;
		swch();
		vShowOneChar(6,48,fre);
		F=TIME_BUFF[0]%10;
		swch();
		vShowOneChar(6,56,fre);
		}

//时间显示
time_display()
{
RD_ISC12028();
Y2K_DISP();
YR_DISP();
vShowOneChin16(0,32,uca_nian);
MO_DISP();
vShowOneChin16(2,16,uca_yue);
DT_DISP();
vShowOneChin16(2,48,uca_ri);
vShowOneChin16(4,0,uca_xing);
vShowOneChin16(4,16,uca_qi);
DW_DISP();
HR_DISP();
vShowOneChin16(6,16,uca_MAOHAO);
MN_DISP();
vShowOneChin16(6,40,uca_MAOHAO);
SC_DISP();
}
*/

//显示欢迎界面,1、测量;2、时钟
show_wel()
{
	clearscr();
	vShowOneChin16(2,32,uca_nin);
	vShowOneChin16(2,48,uca_hao);
	vShowGraph(1,64,32,4,bmp);
	vShowOneChin12(6,0,uca_kai);
	vShowOneChin12(6,12,uca_shi);
	while(KV!=1)KEYSCAN();
	
	//测量
	if(KV==1)
		{
		KV=0;show_celiang();
		}
	
	/*//时钟
	if(KV==4)
	{
		KV=0;
		while(KV!=4&&KV!=1)
			{
				time_display();
				KEYSCAN();
			}
	}*/
}
	

//读P0口数据
read_p0()
{
	P3_6=0;
	delay2ms();
	indata=P0;
	P3_6=1;
	P3_7=0;
	delay2ms();
	indata=indata+256*P0;
	P3_7=1;
	P2_0=0;
	delay2ms();
	indata=indata+256*256*P0;
	P2_0=1;
}
	
//显示测量结果
show_result()
{
	clearscr();
	vShowOneChin16(0,0,uca_ce);
	vShowOneChin16(0,16,uca_liang);
	vShowOneChin16(0,32,uca_pin);
	vShowOneChin16(0,48,uca_lv);
	vShowOneChin16(0,64,uca_wei);
	vShowOneChin16(0,80,uca_MAOHAO);
	vShowOneChin12(6,105,uca_tui);
	vShowOneChin12(6,117,uca_chu);
	vShowOneChin12(6,0,uca_fan);
	vShowOneChin12(6,12,uca_hui);
	trans();
	vShowOneChar(3,80,uca_H);
	vShowOneChar(3,88,uca_z);
	while(KV!=2&&KV!=3)KEYSCAN();
	if(KV==2)
		{
		KV=0;show_celiang();
		}
	if(KV==3)
		{
		KV=0;show_wel();
		}
}

main()
{
	P3_6=1;
	P3_7=1;
	P2_0=1;
	P1_6=1;
	P1_5=1;
	vLCDInitialize();
	show_wel();
}

⌨️ 快捷键说明

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