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

📄 lcd_motor.c

📁 智能控制-出租车计费系统中液晶显示模块程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	E=0;
}

void locatexy()
{
	uchar collo,rowlo;
	switch(col&0x40)
	{
		case 0x00:		{CSA=1;CSB=0;break;}
		case 0x40:	{CSA=0;CSB=1;break;}
	}
	collo=(col&0x3f)|0x40;
	rowlo=(row&0x07)|0xb8;
	wten();
	RS=0;
	RW=0;
	LCD_D=collo;
	E=1;E=0;
	wten();
	RS=0;
	RW=0;
	LCD_D=rowlo;
	E=1;E=0;
}

void wten()
{
	RS=0;
	RW=1;
	LCD_D=0xff;
	E=1;
	_nop_();
	while(LCD_D&0x80);
	E=0;
 }

void welcome()
{
	col=0x08;
	row=0x01;
	wrchz(ch2);
	col=0x28;
	wrchz(ch2+32);
	col=0x48;
	wrchz(ch2+64);
	col=104;
	wrchz(ch2+96);
	col=8;
	row=3;
	wrchz(ch2+128);
	wrchz(ch2+160);
	wrchz(ch2+192);
	wrchz(ch2+224);
	wrchz(ch2+256);
	wrchz(ch2+288);
	wrchz(ch2+320);
	col=64;
	row=5;
	wrchz(ch2+352);
	wrchz(ch2+384);
	wrchz(ch2+416);
	wrchz(ch2+448);
}

void lcdinit()
{
	CSA=1;
	CSB=0;
	wten();
	RS=0;
	RW=0;
	LCD_D=0x3e;
	E=1;E=0;
	CSA=0;
	CSB=1;
	wten();
	RS=0;
	RW=0;
	LCD_D=0x3e;
	E=1;E=0;
	CSA=1;
	CSB=0;
	wten();
	RS=0;
	RW=0;
	LCD_D=0x3f;
	E=1;E=0;
	CSA=0;
	CSB=1;
	wten();
	RS=0;
	RW=0;
	LCD_D=0x3f;
	E=1;E=0;
	CSA=1;
	CSB=0;
	wten();
	RS=0;
	RW=0;
	LCD_D=0xc0;
	E=1;E=0;
	CSA=0;
	CSB=1;
	wten();
	RS=0;
	RW=0;
	LCD_D=0xc0;
	E=1;E=0;
	for(row=0;row<8;row++)
		for(col=0;col<0x80;col++)wrdata(0x00);
	col=0;
	row=0;
	locatexy();
}

void rollscreen(uchar roll)
{
	uchar cbyte;
	cbyte=0xc0|roll;
	CSA=1;
	CSB=0;
	wten();
	RS=0;
	RW=0;
	LCD_D=cbyte;
	E=1;_nop_();E=0;
	CSA=0;
	CSB=1;
	wten();
	RS=0;
	RW=0;
	LCD_D=cbyte;
	E=1;E=0;
}

void ready_work()
{
	col=8;
	row=1;
	wrchz(ch1);
	wrchz(ch1+32);
	//col=40;      
	//row=1;
	disp(0x10|price_10);
	disp(0x20|price_1);
	//col=56;    
	//row=1;
	wrchz(ch1+64);
	//col=72;    
	//row=1;
	disp(0x30|time_10h);
	disp(0x40|time_h);
	disp_num(10);
	disp(0x50|time_10m);
	disp(0x60|time_m);
	col=8;     
	row=3;
	wrchz(ch1+80);
	wrchz(ch1+112);
	//col=40;   
	//row=3
	disp(0x70|jour_6);
	disp(0x80|jour_5);
	disp(0x90|jour_4);
	disp(0xa0|jour_3);
	disp(11);
	disp(0xb0|jour_2);
	disp(0xc0|jour_1);
	//col=96;
	//row=3
	wrchz(ch1+144);
	wrchz(ch1+176);
	col=8;
	row=5;
	wrchz(ch1+208);
	wrchz(ch1+240);
	wrchz(ch1+272);
	//col=56;
	//row=5;
	disp_amount();
	//col=114;
	//row=5;
	wrchz(ch1+64);	
	if(set_pt)disp_modf(set_count+2);
	else if(!refresh){lcdinit();refresh=1;}

}

void wrchz(uchar * pch1)
{
	uchar i,colch1,rowch1;
	colch1=col;
	rowch1=row;
	for(i=0;i<16;i++)
	{
		wrdata(*(pch1+i));
		col++;
	}
	col=colch1;
	row=rowch1+1;
	for(i=16;i<32;i++)
	{
		wrdata(*(pch1+i));
		col++;
	}
	row=rowch1;
}

void disp_modch()
{
	col=32;
	row=1;
	wrchz(ch3);
	wrchz(ch3+32);
	wrchz(ch3+64);
	wrchz(ch3+96);
	col=16;
	row=5;
	wrchz(ch3+128);
	wrchz(ch3+160);
	col=80;
	row=5;
	wrchz(ch3+192);
	wrchz(ch3+224);
	if(car_mod){disp_modf(0x01);}
	else{disp_modf(0x02);}
}

void disp_modf(uchar modfch)
{
	uchar modfbyte;
	uchar i;
	switch(modfch&0x0f)
	{
		case 0x01:{col=16;row=4;}
		case 0x02:{col=80;row=4;}
		case 0x03:{col=40;row=0;}
		case 0x04:{col=48;row=0;}
		case 0x05:{col=80;row=0;}
		case 0x06:{col=88;row=0;}
		case 0x07:{col=104;row=0;}
		case 0x08:{col=112;row=0;}
	}
	for(i=0;i<8;i++)
	{
		modfbyte=chf[i];
		wrdata(modfbyte);
	}
}

void add_night_price()
{
	uchar n_price;
	if(nigf)
		if(!nig_pf)
		{
			n_price=price_10<<1+price_10<<3+price_1;
			n_price++;
			if(n_price<100)
			{
				price_10=n_price/10;
				price_1=n_price%10;
			}
			nig_pf=1;
		}
	else if(nig_pf)
		{
			n_price=price_10<<1+price_10<<3+price_1;
			n_price--;
			if(n_price>0)
			{
				price_10=n_price/10;
				price_1=n_price%10;
				nig_pf=0;
			}
		}
}

void start_motor()
{
	updospeed=0;
	speed_count=0;
	TH1=0x10;
	TL1=0x00;
	TR1=1;
	motor_zhuan=0xf7;
}

void stop_motor()
{
	updospeed=1;
}

int main()
{
	uchar i;
	lcdinit();
	welcome();	
	for(i=0;i<64;i++)	
		rollscreen(i);
/*	TMOD=0x11;
	ET0=1;
	ET1=1;
	ET2=1;//可能可以去掉
	RCLK=1;
	TCLK=1;
	TH2=0xff;  //baud 5000;
	TL2=0xf2;
	RCAP2H=0xff;
	RCAP2L=0xf2;
	TR2=1;
	ES=1;
	PS=1;
	EA=1;
	TH0=0x3c;
	TL0=0x60;
	TR0=1;
	COMTO1=0;
	_nop_();
	_nop_();
	_nop_();
	lcdinit();
	COMTO1=1;
	_nop_();
	_nop_();
	while(COMTO1)disp_modch();*/
	lcdinit();
	while(1)ready_work();
}

⌨️ 快捷键说明

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