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

📄 lcd.c

📁 cygnal上的数据采集的程序(带实时时钟)
💻 C
字号:
#include <string.h>
#include <stdlib.h>
#include "C8051f.h"
#include "Lcd.h"

bit RS_STU;
unsigned char bdata TA;

sbit ACC0 = TA^0;
sbit ACC1 = TA^1;
sbit ACC2 = TA^2;
sbit ACC3 = TA^3;
sbit ACC4 = TA^4;
sbit ACC5 = TA^5;
sbit ACC6 = TA^6;
sbit ACC7 = TA^7;

#define CS Lcd_CS
#define STD Lcd_STD
#define SCLK Lcd_SCLK

unsigned char code dish[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
unsigned char code disb[]={0x80,0x90,0x88,0x98};
void Delay1ms(unsigned char T);

void Lcd_Delay(unsigned char hjs)
{	
	do
	{
		if(hjs == 0)
	 		break;
		hjs = hjs-1;
	}while(1);

}

void Lcd_Delay2(unsigned int hj)
{
	do
	{
		if(hj == 0)
	 		break;
		Lcd_Delay(255);
		hj = hj-1;
	}while(1);
}

void Lcd_CLK()
{
	Lcd_Delay(10);
	SCLK=1;
	Lcd_Delay(10);
	SCLK=0;
}

void Lcd_WR(unsigned char gg)
{	
	unsigned baka;
//	EA = 0;
	TA = gg;
	CS = 1;
	STD = 1;
	SCLK = 0;

	for(baka = 0; baka<5; baka++)
	{
		Lcd_CLK();
	}

	STD = 0;
	Lcd_CLK();
	
	if(RS_STU)
	{
		STD = 1;
	}
	else
	{
		STD = 0;
	}
	Lcd_CLK();
	
	STD = 0;
	Lcd_CLK();
	for(baka = 0; baka<4; baka++)
	{
		if(ACC7)
		{
			STD = 1;
		}
		else
		{
			STD = 0;
		}
		Lcd_CLK();
		TA = TA<<1;
	}
	
	STD = 0;
	for(baka = 0; baka<4; baka++)
	{
		Lcd_CLK();
	}

	for(baka = 0; baka<4; baka++)
	{
		if(ACC7)
		{
			STD = 1;
		}
		else
		{
			STD = 0;
		}
		Lcd_CLK();
		TA = TA<<1;
	}

	STD = 0;
	for(baka = 0; baka<4; baka++)
	{
		Lcd_CLK();
	}
	Lcd_Delay(100);
//	EA=1;
}

void Lcd_Input(unsigned char gg)
{
	Lcd_Delay2(1);
	RS_STU = 0;
	Lcd_WR(gg);
}

void Lcd_Displ(unsigned char gg)
{
	Lcd_Delay2(1);
	RS_STU = 1;
	Lcd_WR(gg);
}

void Lcd_DisD(unsigned int gg)
{
	unsigned char g1;
	unsigned char g2;
	unsigned char temp;
	unsigned int hh;

	g1 = 0;
	hh = 10000;
	for(temp = 0; temp<5; temp++)
	{
		g2 = gg/hh;
		gg = gg-g2*hh;
		hh = hh/10;
		if(g2 != 0)
		{ 
			g1 = 1;
		}
		if((g1 == 1)||(temp == 4))
		{
			Lcd_Displ(dish[g2]);
		}
	}
}

void Lcd_CLS()
{
	Lcd_Input(0x01);
	Lcd_Delay2(100);
}


void Lcd_Initil()
{
	Lcd_RST = 1;
	Delay1ms(200);
	RS_STU = 0;
	Lcd_Delay2(100);
	Lcd_Input(0x30);
	Lcd_Delay2(100);
	Lcd_Input(0x30);
	Lcd_Delay2(100);
	Lcd_Input(0x30);
	Lcd_Delay2(100);
	Lcd_Input(0x30);
	Lcd_Delay2(100);
	Lcd_Input(0x01);
	Lcd_Delay2(100);
	Lcd_Input(0x06);
	Lcd_Delay2(100);
	Lcd_Input(0x0c);
	Lcd_Delay2(100);
}

void Lcd_Dis(unsigned char ly,unsigned char lx,unsigned char *str)
{ 
	unsigned char temp;

//	Initil();
	
//	Lcd_Input(0x01);
//	Lcd_Delay2(100);
	temp = disb[ly] + lx;
	Lcd_Input(temp);
	temp = 0;
	do
	{
		if(str[temp] == 0)
	 		break;
		Lcd_Displ(str[temp]);
		temp++;
	}while(1);
}

void Lcd_Display(unsigned char *str)
{ 
	unsigned char temp;
	temp = 0;
	do
	{
		if(str[temp] == 0) break;
		Lcd_Displ(str[temp]);
		temp++;
	}while(1);
}

void Lcd_Draw(unsigned char *str)
{ 
	unsigned char kk,k1;
	Lcd_CLS();
	Lcd_Input(0x34);
	Lcd_Input(0x34);
	Lcd_Input(0x80);
	Lcd_Input(0x80);
	Lcd_Input(0x30);
	Lcd_Input(0x30);
	for(kk = 0; kk < 32; kk++)
	{
		Lcd_Input(0x34);
		Lcd_Input(0x34);
		Lcd_Input(0x80+kk);
		Lcd_Input(0x80);
		Lcd_Input(0x30);
		Lcd_Input(0x30);
		for(k1 = 0; k1<16; k1++)
		{
			Lcd_Displ(str[kk*32+k1]);
			Lcd_Displ(str[kk*32+k1+1]);
		}
	}
	Lcd_Input(0x34);
	Lcd_Input(0x36);
	Lcd_Input(0x30);
	Lcd_Input(0x30);
}

void CursorMove(unsigned char y, unsigned char x, bit CursorOnOff)
{
	unsigned char temp;
	temp = disb[y] + x;
	Lcd_Input(temp);
	Lcd_Delay2(100);

	temp = 0x0e;
	if (CursorOnOff == 0)
	{
		temp &= 0xfd;
	}

	Lcd_Input(temp);
	Lcd_Delay2(100);
}


⌨️ 快捷键说明

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