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

📄 1602driver.c

📁 有人认为液晶不能显示
💻 C
📖 第 1 页 / 共 2 页
字号:
		fun_write_data(*p_number);		
	}
	
	if ((zhengshu>=1) && (zhengshu<9))					//只有个位
	{
		
		ge	     = (zhengshu%10);
	
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);
	}
	
	if (dot == 0)								//小数点为输入0,显示3个0 也可更改去掉
	{
		fun_display_char(".");
		p_number = &num_dis_code[0];
		fun_write_data(*p_number);
		fun_write_data(*p_number);
		fun_write_data(*p_number);
	}
	
	if (dot != 0)								//小数点不等于0时候 ,显示小数部分的3位数,
	{
		fun_display_char(".");
		dot1 	= dot/100;
		dot01	= (dot%100)/10;
		dot001 	= (dot%100)-dot01*10;
		p_number = &num_dis_code[0]+dot1;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+dot01;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+dot001;
		fun_write_data(*p_number);
	}

}

//////////////////////////////////////// 写自定义字模到cgram
void fun_write_cgram(void)
{
	unsigned char i;
	fun_write_instruction(CGRAM_ADD_INI);
	for (i=0; i<64; i++)
	{
	fun_write_data(self_definition_char[i]);
	}


}


void initialize_lcd(void)									//液晶初始化
{
	fun_write_instruction(FUNCTION_SET);					//2行,8位数据线
	fun_write_instruction(CURSOR_RETURN);					//光标回到左上角
	fun_write_instruction(MODE_SET);						//完成一个字符传送后ac+1,显示不发生位移
	fun_write_instruction(CURSOR_DISPLAY_SHIFT);			//光标向右移,显示不动,AC自动加1
	fun_write_instruction(DISPLAY_ON);						//开显示
	fun_write_instruction(CLEAR_SCREEN);					//清屏幕
	
	fun_write_cgram();
}


/*************************************************************************
 *函数介绍:显示数值+字符的子函数 调用函数 (“要显示的字符”,整数,小数,“单位”)
			
 *输入参数:整数部分的最大值,显示为10000000,小数部分显示3位,整行+起来的字符和单位不要超过15个,
 
 *输出参数:小数部分,输入0,显示 。000, 输入123 显示 。123,以此类推
 *返回值  :
*/////////////////////////////////////////////////////////////////////


void fun_display_num_dot_unit(unsigned char *p_name, unsigned long int zhengshu,
							  unsigned int dot,unsigned char *p_unit)

{
	unsigned char ge,shi,bai,qian,wang,wang10,wang100,wang1000,dot1,dot01,dot001;
	
		while (*p_name)
	{
		fun_write_data(*p_name);
		p_name++;	
	}
		
	if ((zhengshu>=10000000) && (zhengshu<99999999))
	{
		
		wang1000 = zhengshu/10000000;
		wang100  = (zhengshu%10000000)/1000000;
		wang10   = (zhengshu%1000000)/100000;
		wang     = (zhengshu%100000)/10000;
		qian     = (zhengshu%10000)/1000;
		bai      = (zhengshu%1000)/100;
		shi      = (zhengshu%100)/10;
		ge	     = (zhengshu%10);
		
		p_number = &num_dis_code[0]+wang1000;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+wang100;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+wang10;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+wang;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+qian;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+bai;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);
	}

	if ((zhengshu>=1000000) && (zhengshu<9999999))
	{
		
		
		wang100  = zhengshu/1000000;
		wang10   = (zhengshu%1000000)/100000;
		wang     = (zhengshu%100000)/10000;
		qian     = (zhengshu%10000)/1000;
		bai      = (zhengshu%1000)/100;
		shi      = (zhengshu%100)/10;
		ge	     = (zhengshu%10);
	
		p_number = &num_dis_code[0]+wang100;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+wang10;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+wang;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+qian;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+bai;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);
	}	
	
	if ((zhengshu>=100000) && (zhengshu<999999))
	{
		
		
		wang10   = zhengshu/100000;
		wang     = (zhengshu%100000)/10000;
		qian     = (zhengshu%10000)/1000;
		bai      = (zhengshu%1000)/100;
		shi      = (zhengshu%100)/10;
		ge	     = (zhengshu%10);
	
		p_number = &num_dis_code[0]+wang10;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+wang;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+qian;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+bai;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);	
		
		
	}
	
	if ((zhengshu>=10000) && (zhengshu<99999))
	{
		
	
		wang     = zhengshu%100000/10000;
		qian     = (zhengshu%10000)/1000;
		bai      = (zhengshu%1000)/100;
		shi      = (zhengshu%100)/10;
		ge	     = (zhengshu%10);
	
		p_number = &num_dis_code[0]+wang;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+qian;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+bai;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);		
		
	}	

	if ((zhengshu>=1000) && (zhengshu<9999))
	{
		
		
		qian     = zhengshu/1000;
		bai      = (zhengshu%1000)/100;
		shi      = (zhengshu%100)/10;
		ge	     = (zhengshu%10);
		
		p_number = &num_dis_code[0]+qian;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+bai;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);	
	}
	
	if ((zhengshu>=100) && (zhengshu<999))
	{
		
		
		bai      = zhengshu/100;
		shi      = (zhengshu%100)/10;
		ge	     = (zhengshu%10);

		p_number = &num_dis_code[0]+bai;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);	
	}	
	
	if ((zhengshu>=10) && (zhengshu<99))
	{
		
		
		shi      = zhengshu/10;
		ge	     = (zhengshu%10);
	
		p_number = &num_dis_code[0]+shi;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);		
	}
	
	if ((zhengshu>=1) && (zhengshu<9))
	{
		
		ge	     = (zhengshu%10);
	
		p_number = &num_dis_code[0]+ge;
		fun_write_data(*p_number);
	}
	
	if (dot == 0)
	{
		fun_display_char(".");
		p_number = &num_dis_code[0];
		fun_write_data(*p_number);
		fun_write_data(*p_number);
		fun_write_data(*p_number);
	}
	
	if (dot != 0)
	{
		fun_display_char(".");
		dot1 	= dot/100;
		dot01	= (dot%100)/10;
		dot001 	= (dot%100)-dot01*10;
		p_number = &num_dis_code[0]+dot1;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+dot01;
		fun_write_data(*p_number);
		p_number = &num_dis_code[0]+dot001;
		fun_write_data(*p_number);
	}

	while (*p_unit)
	{
		fun_write_data(*p_unit);
		p_unit++;	
	}
}














void fun_delay()
{
	unsigned char i,j;
	for (i=0; i<250; i++)
	{
		for (j=0; j<250; j++)
		{
		}
	}

}




main()
{
	unsigned char i;
	initialize_lcd();
	
										//p_number = &num_dis_code[9];			//取首数组首地址,给p_number
		
										//fun_display_char("wa=");   //显示字符wa
	/*fun_display_position(1,0);
	
	fun_write_data(0x01);
	fun_write_data(0x01);
	fun_display_char(" ");
	
	fun_display_num4(2008);
	
	fun_write_data(0x02);
	
	fun_display_char(" ");
	
	fun_display_num4(9);
	
	fun_write_data(0x01);

	fun_display_char(" ");
	fun_display_num4(01);

	fun_write_data(0x04);	
	fun_display_position(2,0);
	fun_display_num_dot_unit("qqq",15,10," 33");*/

	

		/*fun_display_position(1,4);
		fun_display_num4(ten_hour);
		fun_display_num4(hour);
		fun_display_char(":");
		fun_display_num4(ten_miniute);
  		fun_display_num4(miniute);
		fun_display_char(":");
		fun_display_num4(ten_second);
  		fun_display_num4(second);*/




	while(1)
	{
		
		//fun_write_instruction(CLEAR_SCREEN);
	/*	for (i=0; i<10; i++)
		{
		fun_display_position(1,0);
		fun_display_num4(i);
		fun_delay();
		}*/
	}


}























⌨️ 快捷键说明

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