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

📄 ks0108.c

📁 c51单片机液晶点阵的程序
💻 C
📖 第 1 页 / 共 3 页
字号:
{
	char i;

		InitLCD();
	DispBmp1(classroom);
		for (i=0;i<64;i++)
	 	{
		Delay1ms(50);
		LCD_WriteCommand1(0xc0+i%64);	//设置起始行,实现向上滚动
		LCD_WriteCommand2(0xc0+i%64);
		}
		Delay1s(1);

//	for(;;)
//	{
		InitLCD();
		DispBmp(screen1);
		Delay1s(1);
		DispBmp(screen2);
		Delay1s(1);

		InitLCD();
		LCD_WriteTZ(2,1,Tang); //显示16*16点阵汉字'唐'
		LCD_WriteTZ(32,1,Zhan); //显示16*16点阵汉字'湛'
		for (i=64;i>0;i--)
	 	{
		Delay1ms(50);
		LCD_WriteCommand1(0xc0+i%64);	//设置起始行,实现向上滚动
		LCD_WriteCommand2(0xc0+i%64);
		}
		Delay1s(1);


		
		DispBmp(xuehao);
		Delay1s(2);
//	}
}

char code Wen[]=
{
/*--  文字:  温  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,
0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,
};

char code Du[]=
{
/*--  文字:  度  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,
0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,
};

char code Ya[]=
{
/*--  文字:  压  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00,
};

char code Li[]=
{
/*--  文字:  力  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x10,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,
0x00,0x00,0x80,0x40,0x20,0x18,0x06,0x01,0x00,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,
};

char code Dian[]=
{
/*--  文字:  电  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
};

char code Wei[]=
{
/*--  文字:  位  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xC0,0x30,0xEC,0x03,0x2A,0xC8,0x09,0x0A,0x0E,0x08,0xE8,0x48,0x08,0x00,0x00,
0x01,0x00,0x00,0x7F,0x20,0x20,0x20,0x27,0x20,0x30,0x2E,0x21,0x20,0x20,0x20,0x00,
};

char code N0[]=
{
/*--  文字:  0  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,
};

char code Number[]=
{
/*------0123456789.------*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,//0
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,//1
0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x14,0x12,0x11,0x10,0x18,0x00,//2
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x0C,0x10,0x10,0x10,0x11,0x0E,0x00,//3
0x00,0x80,0x40,0x20,0xF8,0x00,0x00,0x00,0x00,0x03,0x02,0x12,0x1F,0x12,0x12,0x00,//4
0x00,0xF8,0x88,0x48,0x48,0x48,0x88,0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x0F,0x00,//5
0x00,0xE0,0x10,0x88,0x88,0x98,0x00,0x00,0x00,0x0F,0x11,0x10,0x10,0x10,0x0F,0x00,//6
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//7
0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,//8
0x00,0xF0,0x08,0x08,0x08,0x90,0xE0,0x00,0x00,0x00,0x19,0x11,0x11,0x08,0x07,0x00,//9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.
};

//-------------测量信息显示---------------//

void TestLCD1(void)
{
	char t;
	unsigned int i;
	char buf[5];
    int k;
	char c;

	InitLCD();
	while(1)
	{
   		t=GetKeyValue();  
	
		while(t==-1)
		{
			t=GetKeyValue(); 
		}

		i=GetADCValue(t);
		Delay1ms(250);
		buf[3]=i%10;//个位
		buf[2]=(i/10)%10;//十位
		buf[1]=(i/100)%10;//百位
		buf[0]=(i/1000)%10;//千位
		buf[4]=10;//小数点
			
	switch(t)
	{
//		case 4:
//		{InitLCD();TestLCD();}break;

l1:      case 1:
		{
		InitLCD();
		LCD_WriteTZ1(4,1,&Number[t*16]);//显示8*16点阵数字1
		LCD_WriteTZ(20,1,Wen);//显示16*16点阵汉字'温'
		LCD_WriteTZ(37,1,Du);//显示16*16点阵汉字'度'
nei:		
	{
		t=GetKeyValue();
		if(t == 0)break;
		if(t == 2)goto l2;
		if(t == 3)goto l3;
		i=GetADCValue(1);
		Delay1ms(250);
		buf[3]=i%10;//个位
		buf[2]=(i/10)%10;//十位
		buf[1]=(i/100)%10;//百位
		buf[0]=(i/1000)%10;//千位
		buf[4]=10;//小数点
		for(k=0;k<=1;k++)
			{
            LCD_WriteTZ1(20+k*8,3,&Number[buf[k]*16]);
			}

		LCD_WriteTZ1(20+2*8,3,&Number[buf[4]*16]);//'.'

		for(k=2;k<=3;k++)
			{
            LCD_WriteTZ1(20+(k+1)*8,3,&Number[buf[k]*16]);
			}
		goto nei;
	}				
		}
		break;

l3:		case 3:
		{	
		InitLCD();
		LCD_WriteTZ1(4,1,&Number[t*16]);//显示8*16点阵数字2
		LCD_WriteTZ(20,1,Ya); //显示16*16点阵汉字'压'
		LCD_WriteTZ(37,1,Li); //显示16*16点阵汉字'力'
		while(1)
	{
		t=GetKeyValue();
		if(t == 0)break;
		if(t == 1)goto l1;
		if(t == 2)goto l2;
		i=GetADCValue(3);
		Delay1ms(250);
		buf[3]=i%10;//个位
		buf[2]=(i/10)%10;//十位
		buf[1]=(i/100)%10;//百位
		buf[0]=(i/1000)%10;//千位
		buf[4]=10;//小数点

		for(k=0;k<=1;k++)
			{
            LCD_WriteTZ1(20+k*8,3,&Number[buf[k]*16]);
			}

		LCD_WriteTZ1(20+2*8,3,&Number[buf[4]*16]);//'.'

		for(k=2;k<=3;k++)
			{
            LCD_WriteTZ1(20+(k+1)*8,3,&Number[buf[k]*16]);
			}
	}
		}
		break;

l2:		case 2:
		{
		InitLCD();
		LCD_WriteTZ1(4,1,&Number[t*16]);//显示8*16点阵数字3
		LCD_WriteTZ(20,1,Dian); //显示16*16点阵汉字'电'
		LCD_WriteTZ(37,1,Wei); //显示16*16点阵汉字'位'
		while(1)
	{
		t=GetKeyValue();
		if(t == 0)break;
		if(t == 1)goto l1;
		if(t == 3)goto l3;
		i=GetADCValue(2);
		Delay1ms(250);
		buf[3]=i%10;//个位
		buf[2]=(i/10)%10;//十位
		buf[1]=(i/100)%10;//百位
		buf[0]=(i/1000)%10;//千位
		buf[4]=10;//小数点

		LCD_WriteTZ1(20,3,&Number[buf[0]*16]);
		
		LCD_WriteTZ1(20+8,3,&Number[buf[4]*16]);//'.'

		for(k=1;k<=3;k++)
			{
			LCD_WriteTZ1(20+(k+1)*8,3,&Number[buf[k]*16]);
			}
	}
		}
		break;
		default:break;
	}
	}

}


⌨️ 快捷键说明

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