亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcdconf_7529.c

?? 控制器為ST7529的液晶模塊針對ucGUI的驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************Copyright(c)**********************************
**********************************千能電力**************************************
**--------------文件信息---------------------------------------------------
**文   件   名: LCDConf_7529.c
**創   建   人: 楊林軍
**創 建 日  期: 2008-4-1
**最 新 版  本: $Id: LCDConf_7529.c,v 1.1.1.5 2008/05/23 06:15:28 yanglinjun Exp $
**描        述: 
**--------------歷史版本信息-----------------------------------------------
** 修改人:  楊林軍
** 日 期:  
** 版  本: 
** 描 述:  
**-------------------------------------------------------------------------
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include <string.h>                             /* for memset */
#include <stddef.h>                             /* needed for definition of NULL */
#include "LCD_Private.h"                        /* private modul definitions & config */
#include "GUI_Private.h"
#include "GUIDebug.h"
#include "LCDConf_7529.h"
#include "71x_type.h"
#include "bsp_globe.h"
/* Private typedef -----------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
#define SETPIXEL(x, y, c)   _SetPixel(x, y, c)
#define CLRPIXEL(x,y)       _SetPixel(x, y, 0)
#define XORPIXEL(x, y)      //XorPixel(x,y)
#define  COLOR  LCD_COLORINDEX  //LCD_COLORINDEX defined in LCD_Private.h
/* Private variables ---------------------------------------------------------*/
char xbyte[LCDY][LCDX/8];
/* Private functions ---------------------------------------------------------*/
/* Interface functions -------------------------------------------------------*/



/////////////////////LCD初始化//////////////////////////
void LCD_INIT_CONTROLLER(void)
{
    LCD_X_Init();

	LCD_WRITE_A0(ExtModeOff);	// EXT=0

	LCD_WRITE_A0(SleepOut);	// SLEEP OUT
	LCD_WRITE_A0(InternalOscOn);// INTERNAL OSCILLATION ON

	LCD_WRITE_A0(PowerCtrlSet);// POWER CONTROL SET
	LCD_WRITE_A1(0x08);		// TURN ON BOOSTER first;
	DelayMs(10);
	LCD_WRITE_A0(PowerCtrlSet);// POWER CONTROL SET
	LCD_WRITE_A1(0x0b);		// TURN ON BOOSTER AND REFERENCE VOLTAGE GENERATION CIRCUIT ;0bh

	LCD_WRITE_A0(VolumnCtrl);// THREE COMMANDSET REFERENCE VOLTAGE SELECT MODE 
//	LCD_WRITE_A1(0x0a);// REFERENCE VOLTAGE PARAMETER ;16
	LCD_WRITE_A1(0x0a);// REFERENCE VOLTAGE PARAMETER ;16
	LCD_WRITE_A1(0x05);// SET REFERENCE VOLTAGE PARAMETER ;04

	LCD_WRITE_A0(DispCtrl); // DISPLAY CONTROL 
	LCD_WRITE_A1(0x00);// CL DIVIDING RATIO ,F1 AND F2 DRIVE PATTERN
	LCD_WRITE_A1(0x27);// DRIVER DUTY 1/160
	LCD_WRITE_A1(0x1c);// FR INVERSE-SET VALUE 16

	LCD_WRITE_A0(DispInv);// DISPLAY NORMAL

	LCD_WRITE_A0(ComScan); // C0M0-->COM79,C0M159-->COM81
	LCD_WRITE_A1(0x02); 

	LCD_WRITE_A0(DataScanDir); // data scan direction
//	LCD_WRITE_A1(0x00);     //normal mode
//	LCD_WRITE_A1(0x00);     //p1p2p3p1p2p3...
	LCD_WRITE_A1(0x02);     //inverse mode
	LCD_WRITE_A1(0x01);     //p3p2p1...
	LCD_WRITE_A1(0x02);     //3B3P

	LCD_WRITE_A0(LineAddSet); // line address set
	LCD_WRITE_A1(0x00); 
	LCD_WRITE_A1(0x9f); 

	LCD_WRITE_A0(ColumnAddSet);// THIRDCOMMAND SET COLUMN ADDRESS 
//	LCD_WRITE_A1(0x00);// START COLUMN
//	LCD_WRITE_A1(0x35);// ENDCOLUMN
	LCD_WRITE_A1(0x1f);// START COLUMN 31
	LCD_WRITE_A1(0x54);// ENDCOLUMN 84

	LCD_WRITE_A0(ExtModeOn); // EXT=1

	//==================================================== 
	LCD_WRITE_A0(SetGray1);// SET GRAY VALUE

	LCD_WRITE_A1(0X00);// START PARA00
	LCD_WRITE_A1(0X03);// START PARA03 
	LCD_WRITE_A1(0X06);// START PARA06
	LCD_WRITE_A1(0X09);// START PARA09

	LCD_WRITE_A1(0X0B);// START PARA
	LCD_WRITE_A1(0X0D);// START PARA
	LCD_WRITE_A1(0X0E);// START PARA 
	LCD_WRITE_A1(0X0F);// START PARA
	 
	LCD_WRITE_A1(0X10);// START PARA
	LCD_WRITE_A1(0X11);// START PARA
	LCD_WRITE_A1(0X12);// START PARA 
	LCD_WRITE_A1(0X14);// START PARA

	LCD_WRITE_A1(0X16);// START PARA
	LCD_WRITE_A1(0X18);// START PARA
	LCD_WRITE_A1(0X1B);// START PARA 
	LCD_WRITE_A1(0X1F);// START PARA

	LCD_WRITE_A0(SetGray2);// SET GRAY VALUE

	LCD_WRITE_A1(0X00);// START PARA00
	LCD_WRITE_A1(0X03);// START PARA03 
	LCD_WRITE_A1(0X06);// START PARA06
	LCD_WRITE_A1(0X09);// START PARA09

	LCD_WRITE_A1(0X0B);// START PARA
	LCD_WRITE_A1(0X0D);// START PARA
	LCD_WRITE_A1(0X0E);// START PARA 
	LCD_WRITE_A1(0X0F);// START PARA
	 
	LCD_WRITE_A1(0X10);// START PARA
	LCD_WRITE_A1(0X11);// START PARA
	LCD_WRITE_A1(0X12);// START PARA 
	LCD_WRITE_A1(0X14);// START PARA

	LCD_WRITE_A1(0X16);// START PARA
	LCD_WRITE_A1(0X18);// START PARA
	LCD_WRITE_A1(0X1B);// START PARA 
	LCD_WRITE_A1(0X1F);// START PARA

	LCD_WRITE_A0(AnalogCircuitSet);// ANALOG CIRCUIT SET 
	LCD_WRITE_A1(0x00);// OSC FREQUENCEY ADJUSTMENT 0~3 -> 12.7Khz ~ 25Khz
	LCD_WRITE_A1(0x03);// BOOSTER EFFICIENCY SET	0~3 -> 3,6,12,24Khz
	LCD_WRITE_A1(0x01);// BIAS SETTING 0~7 -> 1/14,1/13,1/12,1/11,1/10,1/9,1/7,1/5

	LCD_WRITE_A0(SoftInit);// DITHERER OFF

	LCD_WRITE_A0(ExtModeOff); // EXT=0
	LCD_WRITE_A0(DispOn); // display on;

	//=====================================================  
}

/*******************************************************************************
* Function Name  : _SetPixel
* Description    : 畫點函數
* Input          : 
* Return         : None
* note : 該函數扇入很高很高,要非常重視優化,最好用匯編重寫
*******************************************************************************/
void _SetPixel(int x, int y, LCD_PIXELINDEX c)          //畫點函數 
{
    unsigned char bx,i;
    unsigned char temp[3];
	bx = (x+95)%3;	
	SetWindow(x,y,159,159);
	LCD_WRITE_A0(ReadModifyWriteOn);//DATA WRITE 
		LCD_READ_A1;		//dummy read
	for(i=0;i<3;++i)
		temp[i]=LCD_READ_A1;
	for(i=0;i<3;++i)
	{
		if(i==bx)
			LCD_WRITE_A1(c);
		else
			LCD_WRITE_A1(temp[i]);
	}

	LCD_WRITE_A0(ReadModifyWriteOff);//DATA WRITE 
}

void SetWindow(short x, short y, short x1, short y1)
{
    short z;
	if(y > y1)
	{
		z = y;
		y = y1;
		y1 = z;
	}
	if(x > x1)
	{
		z = x;
		x = x1;
		x1 = z;
	}
	LCD_WRITE_A0(LineAddSet); // line address set
	LCD_WRITE_A1(y); 
	LCD_WRITE_A1(y1);

	LCD_WRITE_A0(ColumnAddSet);// THIRDCOMMAND SET COLUMN ADDRESS 

	LCD_WRITE_A1((95+x)/3);// 起始列,從第95個SEG開始
	LCD_WRITE_A1((95+x1)/3);// 終止列,從第95個SEG開始
	return;
}

void LCD_ClearScreen(void)
{
    short i,j;

	SetWindow(0,10,159,159);
	LCD_WRITE_A0(MemWrite);//DATA WRITE 
	//LCD_WRITE_A0(MemRead);
    for(j=0;j<160;++j)
	{
		LCD_WRITE_A1(0x00); //寫每行前兩個seg
		LCD_WRITE_A1(0x00);
        //LCD_READ_A1;
        //LCD_READ_A1;
		for(i=0;i<40;++i)
		{
			LCD_WRITE_A1(0x00);
            LCD_WRITE_A1(0x00);
            LCD_WRITE_A1(0x00);
            LCD_WRITE_A1(0x00);
		}
	}
    
}



//*************************************************************
//              ****以下是根據內存內容區域刷新函數****
//*************************************************************
void SetPix(short x, short y)
{	
	if((x > (LCDX - 1)) || (y > (LCDY - 1)))
		return;
	xbyte[y][x/8] |= 0x80 >> (x%8);   //寫數組
}
void ClrPix(short x, short y)
{
	if((x > (LCDX - 1)) || (y > (LCDY - 1)))
		return;
		xbyte[y][x/8] &= (~(0x80 >> (x%8)));//寫數組
}
void Up_Pix(const short x,const short y)
{
char byte_t;
	byte_t=x%8;
	if((xbyte[y][x/8]>>(7-byte_t)) & 0x01)//根據數組內容刷新固定坐標點
	{
		LCD_WRITE_A1(0xff);
	}
	else
	    LCD_WRITE_A1(0x00);
}

void Up_HLine(const char x1,const char y1,const char w)
{
char bx,ax,n,x_t;
char temp[3];
char i,j;
	x_t=x1;
	bx = (95+x1)%3;	
	ax = (95+x1+w)%3;	
	if(bx)
		n = (w - ax - (3 - bx))/3;
	else
		n = (w - ax)/3;
	
	SetWindow(x1,y1,x1+w-1,159);
	
	LCD_WRITE_A0(ReadModifyWriteOn);//DATA WRITE 
	if(bx)
	{
		LCD_READ_A1;		//dummy read
		for(i=0;i<3;++i)
			temp[i]=LCD_READ_A1;
		for(i=0;i<bx;++i)
			LCD_WRITE_A1(temp[i]);
		for(i=0;i<3-bx;++i)
		{
			Up_Pix(x_t,y1);
			x_t++;
		}
	}
	for(i=0;i<n;++i)
	{
		LCD_READ_A1;
		LCD_READ_A1;
		LCD_READ_A1;
		LCD_READ_A1;
		for(j=0;j<3;++j)
		{
			Up_Pix(x_t,y1);
			x_t++;
		}
	}
	if(ax)
	{
		LCD_READ_A1;		//dummy read
		for(i=0;i<3;++i)
			temp[i]=LCD_READ_A1;
		for(i=0;i<ax;++i)
		{
			Up_Pix(x_t,y1);
			x_t++;
		}
		for(i=0;i<3-ax;++i)
			LCD_WRITE_A1(temp[ax+i]);
	}
	LCD_WRITE_A0(ReadModifyWriteOff);//DATA WRITE 
}

void UpAreaLcd(const short x, const short y, const short x1, const short y1)
{	
short n;
	for(n=y;n<y1;++n)
	{
		Up_HLine(x,n,x1-x+1);
	}
}
void Up_Lcd()
{
	short i,j;
	short n;
	SetWindow(0,0,LCDX-1,LCDY-1);
	LCD_WRITE_A0(MemWrite);//DATA WRITE

	for(j=0;j<LCDY;++j)
	{
		LCD_WRITE_A1(0x00);
		LCD_WRITE_A1(0x00);
		for(i=0;i<LCDX/8;++i) 
		{	
			for(n=0;n<8;++n)
			{
				if(xbyte[j][i] & (0x80>>n))
				{
					LCD_WRITE_A1(0xff);					
				}					
				else
				{				
					LCD_WRITE_A1(0x00);
				}				
			}
		}
	}
}





//*************************************************************
//              ****以下是液晶物理操作函數****
//*************************************************************
void LCD_SetPix(int x,int y)
{

}

void LCD_ClrPix(int x,int y)
{
unsigned char bx,i;
unsigned char temp[3];
	bx = (x+95)%3;	
	SetWindow(x,y,159,159);
	LCD_WRITE_A0(ReadModifyWriteOn);//DATA WRITE 
		LCD_READ_A1;		//dummy read
	for(i=0;i<3;++i)
		temp[i]=LCD_READ_A1;
	for(i=0;i<3;++i)
	{
		if(i==bx)
			LCD_WRITE_A1(0x00);
		else
			LCD_WRITE_A1(temp[i]);
	}		
	LCD_WRITE_A0(ReadModifyWriteOff);//DATA WRITE
}

void LCD_HLine(char x1,char y1,char w)
{
    char bx,ax,n;
    char temp[3];
    char i;
   char pixelIndex;
   
    if (GUI_Context.DrawMode == GUI_DRAWMODE_NORMAL)     //正常模式
    {
        pixelIndex = 0xFF;
    }
    else if(GUI_Context.DrawMode & GUI_DRAWMODE_REV)    //翻轉模式
    {
        pixelIndex = 0x00;
    }

	bx = (95+x1)%3;
	ax = (95+x1+w)%3;	
	if(bx)
		n = (w - ax - (3 - bx))/3;
	else
		n = (w - ax)/3;
	
	SetWindow(x1,y1,x1+w-1,159);
	
	LCD_WRITE_A0(ReadModifyWriteOn);//DATA WRITE 
	if(bx)	
	{
		LCD_READ_A1;		//dummy read
		for(i=0;i<3;++i)
			temp[i]=LCD_READ_A1;
		for(i=0;i<bx;++i)
			LCD_WRITE_A1(temp[i]);
		for(i=0;i<3-bx;++i)
			LCD_WRITE_A1(pixelIndex);
	}
	for(i=0;i<n;++i)
	{
		LCD_READ_A1;
		LCD_READ_A1;
		LCD_READ_A1;
		LCD_READ_A1;
		LCD_WRITE_A1(pixelIndex);
		LCD_WRITE_A1(pixelIndex);
		LCD_WRITE_A1(pixelIndex);
	}
	if(ax)
	{
		LCD_READ_A1;		//dummy read
		for(i=0;i<3;++i)
			temp[i]=LCD_READ_A1;
		for(i=0;i<ax;++i)
			LCD_WRITE_A1(pixelIndex);
		for(i=0;i<3-ax;++i)
			LCD_WRITE_A1(temp[ax+i]);
	}
	LCD_WRITE_A0(ReadModifyWriteOff);//DATA WRITE 
}

void LCD_VLine(int x1,int y1,int y2)
{
    int i;
    int z;
	if(y1 > y2)
	{
		z = y2;
		y2 = y1;
		y1 = z;
	}
	for(i=y1;i<y2+1;++i)
		LCD_SetPix(x1,i);
}


#if 0
//*************************************************************
//              ****以下是內存繪圖函數****
//*************************************************************
void DrawHPixLine(short x1,short y,short x2)
{
    short i;
    short z;

	if(x1 > x2)
	{
		z = x2;
		x2 = x1;
		x1 = z;
	}
	for(i=x1;i<x2+1;++i)
		SetPix(i,y);
}

void DrawVPixLine(short x,short y1,short y2)
{
    short i;
    short z;

	if(y1 > y2)
	{
		z = y2;
		y2 = y1;
		y1 = z;
	}

	for(i=y1;i<y2+1;++i)
		SetPix(x,i);	
}

void  DrawRect(short x0, short y0, short x1, short y1)
{
   DrawHPixLine(x0, y0, x1);  
   DrawHPixLine(x0, y1, x1);
   DrawVPixLine(x0, y0, y1);
   DrawVPixLine(x1, y0, y1);
   Up_Lcd();   
}

void  DrawRectFill(short x0, short y0, short x1, short y1)
{
	short  z;

   if(x0>x1) 						// 若x0>x1,則x0與x1交換
   {  z = x0;
      x0 = x1;
      x1 = z;
   }
   if(y0>y1)						// 若y0>y1,則y0與y1交換
   {  z = y0;
      y0 = y1;
      y1 = z;
   }
   

   if(y0==y1) 
   {
      DrawHPixLine(x0, y0, x1);
      return;
   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品99久久久**| 欧美一区二区三区白人| 欧美午夜精品久久久| 精品国精品国产| 一区二区三区四区乱视频| 美国毛片一区二区| 欧美自拍偷拍午夜视频| 国产欧美日韩综合| 日本成人在线网站| 欧洲av在线精品| 国产精品灌醉下药二区| 国产在线精品免费| 日韩亚洲欧美中文三级| 一区二区三区在线免费观看| 国产激情偷乱视频一区二区三区| 777久久久精品| 亚洲黄一区二区三区| 粉嫩av亚洲一区二区图片| 91精品国模一区二区三区| 一区二区三区高清不卡| 成人黄色大片在线观看| 久久婷婷综合激情| 久久爱www久久做| 日韩一区二区三区视频| 亚洲电影一区二区三区| 91福利精品第一导航| 亚洲男人天堂一区| 色综合网色综合| 亚洲欧美在线aaa| 成人精品在线视频观看| 国产蜜臀av在线一区二区三区| 久久成人免费网站| 欧美va亚洲va| 精品一区二区三区在线播放 | 中文字幕第一区综合| 国产高清一区日本| 欧美激情在线看| 成人18视频日本| 1000部国产精品成人观看| 91玉足脚交白嫩脚丫在线播放| 国产精品久久久一本精品| 丁香婷婷综合色啪| 亚洲视频小说图片| 日本久久一区二区| 亚洲va韩国va欧美va精品| 欧美三级日韩三级| 日产国产欧美视频一区精品| 日韩三级中文字幕| 狠狠色丁香久久婷婷综| 中文字幕久久午夜不卡| 99国产精品久| 亚洲国产精品久久人人爱| 666欧美在线视频| 精品一区二区三区在线观看| 久久精品人人做| 91麻豆免费看片| 三级不卡在线观看| 26uuu欧美日本| 不卡一区在线观看| 亚洲国产aⅴ天堂久久| 日韩欧美激情一区| 成人av一区二区三区| 亚洲一二三四区不卡| 欧美一二三四在线| 国产91富婆露脸刺激对白| 亚洲欧美日韩国产综合在线| 欧美日韩国产首页| 国产精品88av| 亚洲国产精品久久人人爱蜜臀| 欧美刺激脚交jootjob| 波多野结衣精品在线| 视频在线观看一区| 久久精品夜色噜噜亚洲a∨| 色中色一区二区| 久久精品噜噜噜成人av农村| 中文字幕亚洲电影| 欧美变态口味重另类| 91在线一区二区三区| 久久99这里只有精品| 亚洲综合视频网| 国产清纯白嫩初高生在线观看91 | 久久久国产午夜精品| 一本大道久久a久久精品综合| 麻豆精品在线观看| 一区二区三区四区在线免费观看 | 欧美tickling挠脚心丨vk| 波多野结衣一区二区三区| 久久电影网电视剧免费观看| 亚洲欧美经典视频| 久久久久9999亚洲精品| 欧美一区二区三区在线看| 色综合天天在线| 国产不卡一区视频| 麻豆免费看一区二区三区| 亚洲五码中文字幕| 日韩毛片一二三区| 久久九九久久九九| 日韩精品中文字幕一区| 欧美日高清视频| 91成人在线观看喷潮| 99免费精品视频| 丁香婷婷综合激情五月色| 国产精品一区二区视频| 老司机一区二区| 蜜臀国产一区二区三区在线播放 | 欧美日韩aaaaaa| 欧美性videosxxxxx| 91香蕉视频污在线| 成人性视频免费网站| 国产毛片精品一区| 韩国av一区二区三区| 美女网站色91| 韩国成人在线视频| 激情文学综合插| 狠狠色综合日日| 国模冰冰炮一区二区| 麻豆国产精品777777在线| 免费看欧美美女黄的网站| 秋霞成人午夜伦在线观看| 日韩国产精品久久久| 日韩电影在线一区| 美日韩一区二区| 国产毛片一区二区| 成人永久免费视频| 99精品热视频| 在线免费观看一区| 欧美老女人在线| 欧美一级在线免费| 精品国产一区a| 国产亚洲婷婷免费| 国产精品久久久久影视| 国产精品国产精品国产专区不片 | 国产精品视频线看| 国产精品欧美一区二区三区| 综合av第一页| 亚洲成av人片在www色猫咪| 日韩成人伦理电影在线观看| 久久99热国产| 东方aⅴ免费观看久久av| 色爱区综合激月婷婷| 欧美精品v日韩精品v韩国精品v| 91精品国产手机| 国产日韩欧美在线一区| 亚洲男人都懂的| 日韩精品电影在线观看| 国产精品一区三区| 色综合欧美在线| 日韩欧美视频在线| 国产精品久久久久久久裸模| 亚洲一区二区综合| 精品一二三四区| 色综合久久66| 久久综合中文字幕| 亚洲欧洲在线观看av| 五月激情综合婷婷| 国产1区2区3区精品美女| 欧美性猛交xxxx黑人交| 久久综合色鬼综合色| 一区二区三区视频在线看| 久久99精品一区二区三区| 色综合天天做天天爱| 2023国产精品自拍| 亚洲一本大道在线| 国产91丝袜在线播放九色| 欧美日韩一卡二卡三卡 | 久久久国产精品麻豆| 亚洲午夜精品网| 岛国一区二区三区| 欧美日韩国产大片| 中文字幕永久在线不卡| 精品无人区卡一卡二卡三乱码免费卡| 色综合一区二区三区| 欧美精品一区二区久久婷婷| 亚洲国产成人porn| 99精品欧美一区二区蜜桃免费| 日韩欧美综合一区| 亚洲午夜在线视频| 91丨九色丨蝌蚪富婆spa| 久久欧美一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 91电影在线观看| 亚洲欧美国产三级| 成人性生交大片免费看中文 | 久久国产剧场电影| 欧美日韩一级二级三级| 亚洲日本韩国一区| 菠萝蜜视频在线观看一区| 久久九九影视网| 国产一区美女在线| 精品少妇一区二区三区免费观看| 丝袜美腿亚洲综合| 欧美电影影音先锋| 五月天激情小说综合| 欧美日韩国产大片| 视频一区视频二区中文| 欧美日韩一区成人| 五月婷婷另类国产| 91超碰这里只有精品国产| 婷婷夜色潮精品综合在线| 欧美色国产精品|