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

📄 btg-128128d.c

📁 小彩屏的文档 很爽,具体型号是ssd1332
💻 C
字号:
/*------------------------------------------------------------------------------
			BTG-128128D.C For Testing Module BTG-128128D on AT89S52
						The driver is NJU6679
							  2005.7.17
------------------------------------------------------------------------------*/

#include <reg52.h>                             /* define 8052 registers */
#include <intrins.h>
#include "ascii.h"
//#include "y1.h"
#include "y.h"

#define uchar unsigned char
#define uint  unsigned int
//-----------------------------------------------------------------------------
//Define Data's Port  
sbit E   =P3^7;
sbit RW  =P3^6;
sbit RS  =P3^2;
sbit CS1 =P3^0;
sbit RST =P3^1;
#define LCD_DATA P1

//Define Key's Input
#define AUTO 0x80		//P2^7: Input auto_run_id
#define ADDU 0x40		//P2^6: Display picture UP to end
#define SUBD 0x20		//P2^5: Display picture Down to begin
#define ADUP 0x10		//P2^4: For COG module:adjust Register's value to add
#define ADDN 0x08		//P2^3: For COG moduel:adjust Register's value to sub
#define KEY_IN	P2

//For LCD to work 
//#define bias 
//#define duty
//#define Rab		0x27	//Select 6times
#define v0		0x34	//Set V0=14.3V
#define bias	0xb8	//Set bias=1/12
uchar constr;			//对比度调节

//Control the program to run
#define BmpMax 7
uchar autoid;			//Indicate that LCD display automatically
uchar bmp_id;			//The picture's id to display
uchar dispid;			//To reflash the display picture

#define dl0 1000
//*****************************************************************************
//uchar code q[8]={0x3E,0x41,0x41,0x51,0x21,0x5E,0x00,0x00};

//*****************************************************************************
//-----------------------------------------------------------------------------
void delay_us(uchar us_value)	//delay about 1 us
{
	while(us_value--)
	{
		_nop_();
		_nop_();
		_nop_();
	}
}
//-----------------------------------------------------------------------------
void delay_ms(uint ms_value)	//delay about 1 ms
{
	uint k;

	for(k=0;k<ms_value;k++)
	{
		delay_us(200);
	}
}
//-----------------------------------------------------------------------------
void init_cpu()	//Initial 89C52								
{
	LCD_DATA=0;

	RS =0;
	RW =0;
	E  =0;
	RST=0;
	CS1=0;
	delay_ms(1);
	RST=1;
	delay_us(10);
}
//-----------------------------------------------------------------------------
uchar read_stat(void)
{
	uchar tmp_stat;

	RS =0;
	RW =1;
	E  =1;
	delay_us(2);
	tmp_stat=LCD_DATA;
	E  =0;
	delay_us(1);

	return tmp_stat;
}
//-----------------------------------------------------------------------------
void wait()
{
delay_us(1);
//	while((read_stat()&0x80)==0x80);
}
//-----------------------------------------------------------------------------
void wr_cmd(uchar wrcmd)
{
	wait();
	RS =0;	//select instruction
	RW =0;	//to write
	E=1;
	CS1=0;
	LCD_DATA=wrcmd;
	delay_us(2);
	CS1=1;
    delay_us(2);
    E=1;
	RW=1;
	}
//-----------------------------------------------------------------------------
void wr_data(uchar wrdata)
{
	wait();
	RS =1;	//select data
	RW =0;	//to write
	E=1;
	CS1=0;
	LCD_DATA=wrdata;

	delay_us(2);
	CS1=1;
	delay_us(2);
	E=1;
	RW=1;
}

//-----------------------------------------------------------------------------
void init_lcd()
{   int i;
    wr_cmd(0x15);	//SET BIAS
	wr_cmd(0x00);	//Set line0 to COM0
//	wr_cmd(0x26);
//	wr_cmd(0x01);
//	wr_cmd(0x00);
//	wr_cmd(0x00);
//	wr_cmd(0x07);
	wr_cmd(0x5f);
	wr_cmd(0x75);
	wr_cmd(0x00);
	wr_cmd(0x3f);
	wr_cmd(0x81);
	wr_cmd(0x80);
	wr_cmd(0x82);
	wr_cmd(0x80);
	wr_cmd(0x83);
	wr_cmd(0x80);
	wr_cmd(0x87);
	wr_cmd(0x0f);
	wr_cmd(0xa0);
	wr_cmd(0x72);
	wr_cmd(0xa1);
	wr_cmd(0x00);
	wr_cmd(0xa2);
	wr_cmd(0x00);
	wr_cmd(0xa4);
	wr_cmd(0xa8);
	wr_cmd(0x3f);
	wr_cmd(0xaf);  
    wr_cmd(0xb8);
    for(i=0;i<32;i++)
	{ 
    wr_cmd(2*i);
	}

	delay_ms(1);
}
//-----------------------------------------------------------------------------
void disp_all()
{
	uchar ii,jj;
wr_cmd(0x15);
wr_cmd(0x00);
wr_cmd(0x5f);
wr_cmd(0x75);
wr_cmd(0x00);
wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{

		for(jj=0;jj<96;jj++)
		{
			wr_data(0xff);
			wr_data(0xff);

		}
	}

}

void disp_all1()
{
	uchar ii,jj;
wr_cmd(0x15);
wr_cmd(0x00);
wr_cmd(0x5f);
wr_cmd(0x75);
wr_cmd(0x00);
wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{
		for(jj=0;jj<96;jj++)
		{

			wr_data(0x03);
			wr_data(0xe0);

		}
	}

}
void disp_all2()
{
	uchar ii,jj;
wr_cmd(0x15);
wr_cmd(0x00);
wr_cmd(0x5f);
wr_cmd(0x75);
wr_cmd(0x00);
wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{

		for(jj=0;jj<96;jj++)
		{
			wr_data(0x00);
			wr_data(0x1f);
		}
	}

}

void disp_all3()
{
	uchar ii,jj;
wr_cmd(0x15);
wr_cmd(0x00);
wr_cmd(0x5f);
wr_cmd(0x75);
wr_cmd(0x00);
wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{
//		wr_cmd(0x40);		//select page
//		wr_cmd(0xb0+ii);
//		wr_cmd(0x00);		//set MSB
//		wr_cmd(0x10);		//set LSB
		for(jj=0;jj<96;jj++)
		{
//			wr_cmd(0x81);
			wr_data(0xf8);
//			wr_cmd(0x82);
			wr_data(0x00);
//			wr_cmd(0x83);
//			wr_data(0x00);
		}
	}

}
//-----------------------------------------------------------------------------
void disp_off()
{
	uchar ii,jj;
wr_cmd(0x15);
wr_cmd(0x00);
wr_cmd(0x5f);
wr_cmd(0x75);
wr_cmd(0x00);
wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{
//		wr_cmd(0x40);		//select page
//		wr_cmd(0xb0+ii);
//		wr_cmd(0x00);		//set MSB
//		wr_cmd(0x10);		//set LSB
		for(jj=0;jj<96;jj++)
		{
			wr_data(0x00);
			wr_data(0x00);
//			wr_data(0x00);

		}
	}
}
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
void disp_y1()
{
	uint ii;
	uint jj;
		wr_cmd(0x15);
		wr_cmd(0x00);
		wr_cmd(0x5f);
		wr_cmd(0x75);
		wr_cmd(0x00);
		wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{
for(jj=0;jj<192;jj++)
		{
			wr_data(gImage_y[ii*192+jj]);
		}
	}
}
/*void disp_y()
{
	uint ii;
	uint jj;
		wr_cmd(0x15);
		wr_cmd(0x00);
		wr_cmd(0x5f);
		wr_cmd(0x75);
		wr_cmd(0x00);
		wr_cmd(0x3f);
	for(ii=0;ii<64;ii++)
	{
for(jj=0;jj<192;jj++)
		{
			wr_data(gImage_y1[ii*192+jj]);
		}
	}
}*/
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
void do_key()
{
	uchar tkeyin;

	KEY_IN=0xff;
	delay_ms(5);
	tkeyin=KEY_IN;

	//判断自动刷新标志
	if((tkeyin&AUTO)==0x00)	autoid=1;
	else autoid=0;

	//画面往下翻bmp_id++
	if((tkeyin&ADDU)==0x00)
	{
		dispid=1;		//刷新标志置"1"
		bmp_id++;
		if(bmp_id>=BmpMax) 
			bmp_id=0;
	}
		
	//画面往上翻bmp_id--
	if((tkeyin&SUBD)==0x00)
	{
		dispid=1;		//刷新标志置"1"
		if(bmp_id>0) 
		{
			bmp_id--;	
		}
		else bmp_id=BmpMax-1; 
	}
		
/*	//对比度参数constr++
	if((tkeyin&ADUP)==0x00)
	{
		if(constr<63) constr++;
		wr_cmd(0x81);		//SET Register
    	wr_cmd(constr);
		delay_us(2);
		show_constr();
	}
	//对比度参数constr--
	if((tkeyin&ADDN)==0x00)
	{
		if(constr>0) constr--;
		wr_cmd(0x81);		//SET Register
    	wr_cmd(constr);
		delay_us(2);
		show_constr();
	}*/
	delay_ms(50);
}
//-----------------------------------------------------------------------------
/*void main (void)  
{  
	init_cpu();
	init_lcd();
	delay_us(5);

	delay_us(100);
                          
	while(1)
	{
		do_key();
		if(dispid==1)
		{
			switch(bmp_id)
			{
//				case 0:			//全显画面
					disp_all();
//					break;
//			    case 1:			//方框画面
					disp_frame();
//			 		break;
//				case 2:			//正显象棋板
					disp_checker0();
//			 		break;
				case 3:			//负显象棋板
//					disp_checker1();
//					break;
//				case 4:			//回形画面
					disp_clip();
//					break;
//				case 5:			//'Q'字画面
					disp_q();
//					break;
//			 	case 6:			//特制画面
					disp_yb();
//					break;
//			    default:
//					break;
//			}
//			dispid=0;			//清除刷新标志
//		}

		//For auto display switch
//		if(autoid==1) 
//		{
//			dispid=1;
//			bmp_id++;
//			if(bmp_id>=BmpMax) bmp_id=0;
//			delay_ms(dl0);	//自动显示时延时dl0
//		}
	}
}*/
//-----------------------------------------------------------------------------

void main(void)
{
	while(1)
    { 
		init_cpu();
		init_lcd();
		disp_all();
		delay_ms(dl0);
		disp_all1();
		delay_ms(dl0);
		disp_all2();
		delay_ms(dl0);
		disp_all3();
		delay_ms(dl0);

        disp_off();
		delay_ms(dl0);

		disp_y1();
  		delay_ms(dl0);
//		disp_y();
 //       delay_ms(dl0);
	}
	}

⌨️ 快捷键说明

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