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

📄 lcd.c

📁 此程序为本人在公司开发的继电器功能测试仪
💻 C
字号:
	#include "lcd.h"
	//#include "reg52.h"
	#include "w77e58.h"
	#include <intrins.h>
	void LCD_CmdWrite(unsigned char cmdReg, unsigned char cmdData)
	{
		LCD_Bus=cmdReg;
		LCD_CS1=0;
		LCD_RD=1;
		LCD_RS=0;
		LCD_WR=0;
		_nop_();_nop_();_nop_();
		LCD_WR=1;
		LCD_RS=1;
		LCD_CS1=1;
		LCD_Bus=cmdData;
		LCD_CS1=0;
		LCD_RD=1;
		LCD_RS=0;
		LCD_WR=0;
		_nop_();_nop_();_nop_();
		LCD_WR=1;
		LCD_RS=1;
		LCD_CS1=1;
	}
/*	unsigned char LCD_CmdRead(unsigned char cmdReg)
	{
		unsigned char REG_Read;
		LCD_ChkBusy();
		LCD_Bus=cmdReg;
		LCD_CS1=0;
		LCD_RD=1;
		LCD_RS=0;
		LCD_WR=0;
		_nop_();_nop_();_nop_();
		LCD_WR=1;
		LCD_RS=1;
		LCD_CS1=1;
		LCD_Bus=0xff;
		LCD_CS1=0;
		LCD_WR=1;
		LCD_RS=0;
		LCD_RD=0;
		REG_Read=LCD_Bus;
		LCD_RD=1;
		LCD_RS=1;
		LCD_CS1=1;
		return REG_Read;
	}*/
	void LCD_DataWrite(unsigned char WrData)
	{
		//LCD_ChkBusy();
//		delay(4);
		LCD_Bus=WrData;
		LCD_CS1=0;
		LCD_RD=1;
		LCD_RS=1;
		LCD_WR=0;
		_nop_();_nop_();_nop_();
		LCD_WR=1;
		LCD_RS=1;
		LCD_CS1=1;		
		delay(4);
	}
/*	void LCD_ChkBusy(void)
	{
		do
		{
		}
		while(LCD_BUSY==1);
	}*/
	void LCD_Reset(void)
	{
		LCD_CS1=0;
		delay(4000);
		LCD_RST=0;
		delay(44000);
		LCD_RST=1;
		delay(4000);
	}
/*	void LCD_Clear(void)
	{
		unsigned char READ_REG;
		LCD_CmdWrite(0xE0,0x00);
		READ_REG=LCD_CmdRead(0xF0);
		READ_REG&=0xF7;
		READ_REG|=0x08;
		LCD_CmdWrite(0xF0,READ_REG);
		delay(4000);
	}*/

	void LCD_Clear(void)
	{
		unsigned char i,j;
		LCD_CmdWrite(0x10,0x2B);
		GotoXY(0,0);
		for(i=0;i<240;i++)
			for(j=0;j<40;j++)
			{
				LCD_DataWrite(0x00);
				delay(10);
			}
	}

	void GotoXY(unsigned char x1,unsigned char y1)
	{
		LCD_CmdWrite(0x60,x1);
		LCD_CmdWrite(0x70,y1);
	}
	void delay(int i)
	{
		int k;
		for(k=0;k<i;k++);
	}
	void LCD_Initial(void)
	{
		LCD_CmdWrite(0x00,0xCD);
		LCD_CmdWrite(0x01,0xF0);
		LCD_CmdWrite(0x02,0x10);
		LCD_CmdWrite(0x03,0x80);
		LCD_CmdWrite(0x10,0x2B);
		LCD_CmdWrite(0x11,0x00);//
		LCD_CmdWrite(0x12,0x91);

		LCD_CmdWrite(0x20,0x27);
		LCD_CmdWrite(0x30,0xEF);
		LCD_CmdWrite(0x40,0x00);
		LCD_CmdWrite(0x50,0x00);

		LCD_CmdWrite(0x21,0x27);
		LCD_CmdWrite(0x31,0xEF);
		LCD_CmdWrite(0x41,0x00);
		LCD_CmdWrite(0x51,0x00);

		LCD_CmdWrite(0x60,0x00);
		LCD_CmdWrite(0x61,0x00);
		LCD_CmdWrite(0x70,0x00);
		LCD_CmdWrite(0x71,0x00);
		LCD_CmdWrite(0x72,0xEF);

		LCD_CmdWrite(0x80,0x33);
		LCD_CmdWrite(0x81,0x00);

		LCD_CmdWrite(0x91,0x00);
		LCD_CmdWrite(0x90,0x04);

		LCD_CmdWrite(0xA0,0x11);
		//LCD_CmdWrite(0xA1,0x00);
		//LCD_CmdWrite(0xA2,0x00);
		//LCD_CmdWrite(0xA3,0x00);

		//LCD_CmdWrite(0xB0,0x27);
		//LCD_CmdWrite(0xB1,0xEF);

		//LCD_CmdWrite(0xC0,0xD0);
		//LCD_CmdWrite(0xC1,0x0A);
		//LCD_CmdWrite(0xC8,0x80);
		//LCD_CmdWrite(0xC9,0x80);
		//LCD_CmdWrite(0xCA,0x00);

		//LCD_CmdWrite(0xD0,0x0C);

		LCD_CmdWrite(0xE0,0x00);

		LCD_CmdWrite(0xF0,0xA0);
		LCD_CmdWrite(0xF1,0x0F);
	}
	void PrintStr(char *ptr)
	{
		while(*ptr!='\0')
		{
			LCD_DataWrite(*ptr);
			++ptr;
			delay(200);
		}
	}

⌨️ 快捷键说明

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