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

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

?? lcd_back.c

?? 點陣型lcd的驅動程序 針對于AVR單片機 稍微修改后可應用于51等型號單片機
?? C
字號:
//******************************************************************************
// File Name : LCD.c
// Author    : Steaven
// Created   : 2008-07-27
// Modified  : 
// Revision  : V0.0
//******************************************************************************

//PIN DESCRIPTION
//01  2   3  4   5   6   7   8   9   10  11  12  13  14  15  16
//GND VCC V0 RS  RW  EN  D0  D1  D2  D3  D4  D5  D6  D7  BLA BLK
//GND +5V V0 PB0 PB1 PB2 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 GND +5V

#include "iom16v.h" 
#include "DataType.h"
#include "LCD.h"
#include "macros.h" 

#define cLCD_X_MAX   64
#define cLCD_Y_MAX  128

//local functions declaration
void Set_DI(INT8U RS);
void Set_RW(INT8U RW);
void Set_EN(INT8U EN);
void Set_CS1(INT8U CS1);
void Set_CS2(INT8U CS2);
void Set_RST(INT8U RST);
void Set_Data(INT8U data);
INT8U Get_Data(void);
void DisplayOnOff(INT8U i);
void SetStartLine(INT8U i);
void LCD_Command_Set_X(INT8U x);
void LCD_Command_Set_Y(INT8U y);
void LCD_Command_WriteByte(INT8U data);
INT8U Read_Byte(void);
void LCD_Reset(void);
void LCD_Clear_Line(INT8U wStartLine,INT8U wEndLine);
void LCD_Init(void);
void WriteWord(INT8U const *disp,INT8U x,INT8U y);
void WriteCharacter(const INT8U *disp,INT8U x,INT8U y,INT8U cs);
void WritePIC(const INT8U *disp);
void LCD_Write_Char(INT8U y,INT8U x,const INT8U *pdata);
void LCD_Write_Dot(INT8U x,INT8U y);
INT8U LCD_Read_Data(INT8U x,INT8U y);
void LCD_Write_Data(INT8U x,INT8U y,INT8U data);	
void LCD_Write_Picture(INT8U x1,INT8U y1,INT8U x2,INT8U y2,const INT8U *pdata);

/*
void nop(INT8U cnt)
{
	while(cnt--) ;
}

void Delay(INT8U cnt)
{
	while(cnt--) ;
}
*/
void Delay_ms(INT16U time)
{
    for(;time!=0;time--)
		{
		    Delay(500);
		}
}


#define nop(X) {;}
#define Delay(X) {;}

//******************************************************************************
// Function    : Set_RS
// Input       : RS - RS Control Line Level
// Output      : none
// Description : LCD(1602) Low Level Interface Function
//******************************************************************************
void Set_DI(INT8U RS)
{
	if(RS == 0)
	{
		PORTB &= ~0x01;
	}
	else
	{
		PORTB |= 0x01;
	}
}

//******************************************************************************
// Function    : Set_RW
// Input       : RW - RW Control Line Level
// Output      : none
// Description : Low Level Interface Function
//******************************************************************************
void Set_RW(INT8U RW)
{
	if(RW == 0)
	{
		PORTB &= ~0x02;
	}
	else
	{
		PORTB |= 0x02;
	}
}

//******************************************************************************
// Function    : Set_EN
// Input       : RW - RW Control Line Level
// Output      : none
// Description : Low Level Interface Function
//******************************************************************************
void Set_EN(INT8U EN)
{
	if(EN == 0)
	{
		PORTB &= ~0x04;
	}
	else
	{
		PORTB |= 0x04;
	}
}

//******************************************************************************
// Function    : Set_CS2
// Input       : CS2 - CS2 Control Line Level
// Output      : none
// Description : Low Level Interface Function
//******************************************************************************
void Set_CS2(INT8U CS2)
{
	if(CS2 == 0) 
	{
		PORTC &= ~0x20;
	}
 	else
 	{
 		PORTC |= 0x20;
 	}
}

//******************************************************************************
// Function    : Set_CS1
// Input       : CS1 - CS1 Control Line Level
// Output      : none
// Description : Low Level Interface Function
//******************************************************************************
void Set_CS1(INT8U CS1)
{
	if(CS1 == 0)
	{
		PORTC &= ~0x40;
	}
	else
	{
		PORTC |= 0x40;
	}
}


//sbit RST=PC7;
void Set_RST(INT8U RST)
{
	if(RST == 0)
	{
		PORTC &= ~0x80;
	}
	else
	{
		PORTC |= 0x80;
	}
}
 
//******************************************************************************
// Function    : Set_Data
// Input       : data - Data Line Level
// Output      : none
// Description : Low Level Interface Function
//******************************************************************************
void Set_Data(INT8U data)
{
	PORTA  = data;
}

//顯示開關控制命令,i=0開顯示,i=1關顯示//
void DisplayOnOff(INT8U onoff)
{
	Set_RW(0);
	Set_DI(0);
	Set_EN(0);
	Set_Data(0x3E + onoff);
	nop(10);
	Set_EN(1);
	nop(10);
	Set_EN(0);
}

//設置顯示起始行,i=0~63//
void SetStartLine(INT8U line)
{
	Set_RW(0);
	Set_DI(0);																
	Set_EN(0);																
	Set_Data(0xC0 + line);
	nop(10);																
	Set_EN(1);																
	nop(10);																																
	Set_EN(0);																
}

//設置頁(行)地址,i=0~7//
void LCD_Command_Set_X(INT8U row)
{
	Set_RW(0);
	Set_DI(0);
	Set_EN(0);
	Set_Data(0xB8 + row);
	nop(10);
	Set_EN(1);
	nop(10);
	Set_EN(0);
}

//設置Y(列)地址,i=0~127//
void LCD_Command_Set_Y(INT8U column)
{
	Set_RW(0);
	Set_DI(0);
	Set_EN(0);
	Set_Data(0x40 + column);
	nop(10);
	Set_EN(1);
	nop(10);
	Set_EN(0);
}

//寫顯示數據,i為送DDRAM的數據
void LCD_Command_WriteByte(INT8U data)
{
	Set_RW(0);
	Set_DI(1);
	Set_EN(0);
	Set_Data(data);
	nop(10);
	Set_EN(1);
	nop(10);
	Set_EN(0);
}

INT8U Read_Byte(void)
{
	INT8U data;
	DDRA = 0x00;
	PORTA = 0x00;
	Set_EN(0);
	Set_RW(1);
	Set_DI(1);
//	Set_EN(0);
	nop(100);
	Set_EN(1);
	nop(100);
	//data = Get_Data();
	data = PINA;
	Set_EN(0);
	return(data);
}



//LCD復位
void LCD_Reset(void)
{
	Set_RST(0);
	Set_RST(1);
}

//LCD清除顯示行
void LCD_Clear_Line(INT8U wStartLine,INT8U wEndLine)
{
	INT8U i,j;
	for(i = wStartLine;i <= wEndLine;i++)
	{
		Set_CS1(1);
		Set_CS2(1);
		LCD_Command_Set_X(i);
		LCD_Command_Set_Y(0);
		for(j = 0;j < 64;j++)
		{
			LCD_Command_WriteByte(0x00);
		}
	}
}

//LCD初始化
void LCD_Init(void)
{
	LCD_Reset();
	LCD_Clear_Line(0,7);
	DisplayOnOff(1);
	SetStartLine(0);
}

//對128*64點陣LCD
//X : 行數 0~3
//Y : 列數 0~15
void LCD_Write_Char(INT8U x,INT8U y,const INT8U *disp)
{
	INT8U i;
	INT8U x_address;
	INT8U y_address;
	if((x < 4) && (y < 16))
	{
		for(i = 0;i < 8;i++)
		{
			x_address = x << 1;
			y_address = (y << 3) + i;
			LCD_Write_Data(x_address,y_address,*disp++);
		}
		for(i = 0;i < 8;i++)
		{
			x_address = (x << 1) + 1;
			y_address = (y << 3) + i;
			LCD_Write_Data(x_address,y_address,*disp++);
		}
	}
}

//對128*64點陣LCD
//X : 行數 0~3
//Y : 列數 0~15
void LCD_Write_Word(INT8U x,INT8U y,const INT8U *disp)
{
	INT8U i;
	INT8U x_address;
	INT8U y_address;
	if((x < 4) && (y < 16))
	{
		for(i = 0;i < 16;i++)
		{
			x_address = x << 1;
			y_address = (y << 3) + i;
			LCD_Write_Data(x_address,y_address,*disp++);
		}
		for(i = 0;i < 16;i++)
		{
			x_address = (x << 1) + 1;
			y_address = (y << 3) + i;
			LCD_Write_Data(x_address,y_address,*disp++);
		}
	}
}

//x1 行 y列
void LCD_Write_Picture(INT8U x1,INT8U y1,INT8U x_length,INT8U y_length,const INT8U *pdata)
{
	INT8U x_address;
	INT8U y_address;
	for(x_address = x1;x_address <= (x_length >> 3) - 1;x_address++)
	{
		for(y_address = y1;y_address < y1 + y_length;y_address++)
		{
			LCD_Write_Data(x_address,y_address,*pdata++);
		}
	}
}

//=========================END OF FILE=========================//



void LCD_Write_Dot(INT8U x,INT8U y)
{
	INT8U x_address,y_address;
	INT8U data = 0;
	if((x < 64) && (y < 128))
	{
		x_address = x >> 3;
		y_address = y;
		//data = LCD_Read_Data(x_address,y_address);
		LCD_Write_Data(x_address,y_address,data | (1 << (x % 8)));
	}
}

INT8U LCD_Read_Data(INT8U x,INT8U y)
{
	INT8U data;
	if(y < 64)
	{
		Set_CS1(1);
		Set_CS2(0);
		LCD_Command_Set_X(x);
		LCD_Command_Set_Y(y);
	}
	else
	{
		Set_CS1(0);
		Set_CS2(1);
		LCD_Command_Set_X(x);		
		LCD_Command_Set_Y(y - 64);
	}
	data = Read_Byte();
	return(data);
}

void LCD_Write_Data(INT8U x,INT8U y,INT8U data)
{
	if(y < 64)
	{
		Set_CS1(1);
		Set_CS2(0);
		LCD_Command_Set_X(x);
		LCD_Command_Set_Y(y);
	}
	else
	{
		Set_CS1(0);
		Set_CS2(1);
		LCD_Command_Set_X(x);
		LCD_Command_Set_Y(y - 64);		
	}
	LCD_Command_WriteByte(data);
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女尤物国产一区| 中文字幕二三区不卡| 一本高清dvd不卡在线观看| 国产精品18久久久久久久久久久久| 亚洲第一狼人社区| 一个色妞综合视频在线观看| 国产精品乱码人人做人人爱| 国产欧美精品区一区二区三区| 日韩视频不卡中文| 精品美女在线观看| 欧美电视剧在线看免费| 欧美一区二区三区啪啪| 欧美精品成人一区二区三区四区| 欧美猛男超大videosgay| 欧美精品乱码久久久久久按摩 | 狠狠色丁香婷婷综合久久片| 美女脱光内衣内裤视频久久网站| 日韩va欧美va亚洲va久久| 首页国产欧美久久| 精久久久久久久久久久| 国产·精品毛片| 色婷婷精品久久二区二区蜜臂av | 6080日韩午夜伦伦午夜伦| 欧美日韩精品系列| 欧美成人综合网站| 国产日韩精品一区| 日韩午夜激情av| 欧美日韩在线播放一区| 欧洲在线/亚洲| 精品少妇一区二区三区在线播放| 91老司机福利 在线| 午夜精品福利久久久| 99久久久无码国产精品| 中文字幕不卡在线播放| 国内成人免费视频| 欧美电影免费观看完整版| 日韩av在线发布| 欧美喷水一区二区| 日本女人一区二区三区| 欧美日韩国产综合一区二区| 亚洲6080在线| 欧美一区二区三区男人的天堂| 亚洲成av人片在线| 久久99精品久久久久久国产越南| 九九久久精品视频| 6080亚洲精品一区二区| 亚洲第四色夜色| 4438成人网| 免费日韩伦理电影| 精品日韩欧美在线| 国产高清久久久| 国产无人区一区二区三区| 成人免费电影视频| 亚洲黄一区二区三区| 欧美日韩国产bt| 蜜桃久久精品一区二区| 国产视频一区二区在线| 不卡av在线网| 亚洲国产视频直播| 欧美成人r级一区二区三区| 国产剧情av麻豆香蕉精品| 中文字幕欧美一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 在线看国产一区二区| 一级做a爱片久久| 欧美电影免费观看高清完整版在线 | 日韩欧美一级特黄在线播放| 国产精品18久久久久久久久| 一区二区三区精品在线观看| 日韩欧美国产成人一区二区| 成人免费视频播放| 日韩中文字幕一区二区三区| 国产调教视频一区| 欧美日韩一区二区三区不卡| 精品一区二区三区在线播放视频| 亚洲欧洲国产日韩| 日韩美女主播在线视频一区二区三区| 精品一区二区免费视频| 1区2区3区欧美| 777午夜精品免费视频| 国产精品99久| 欧美激情一区二区三区不卡| 欧美一区二区精美| 成人黄色a**站在线观看| 亚洲国产精品一区二区www | 91日韩精品一区| 日韩国产高清影视| 亚洲国产高清在线| 色综合婷婷久久| 老司机午夜精品| 国产日韩精品一区二区三区| 亚洲欧美一区二区在线观看| 欧美日韩中文字幕一区二区| 久久激情五月婷婷| 中文字幕欧美日韩一区| 欧美日韩性生活| 国产69精品久久久久毛片| 亚洲一区免费观看| 欧美刺激午夜性久久久久久久| 欧美日韩一本到| 成人听书哪个软件好| 日韩国产精品久久| 亚洲色图另类专区| 久久精品水蜜桃av综合天堂| 777午夜精品视频在线播放| 国产成人在线免费| 肉丝袜脚交视频一区二区| 国产日韩av一区| 日韩欧美激情一区| 欧美日韩第一区日日骚| 成人免费视频视频在线观看免费 | 欧美美女视频在线观看| 午夜精品久久久久久久99樱桃| 久久精品亚洲乱码伦伦中文| 欧美日韩国产免费一区二区| hitomi一区二区三区精品| 麻豆国产欧美日韩综合精品二区| 亚洲美女电影在线| 欧美激情一区二区三区在线| 日韩精品一区二区三区视频播放 | 日韩高清国产一区在线| 一区二区三区在线观看动漫| 国产精品久久久久桃色tv| 久久免费午夜影院| 337p日本欧洲亚洲大胆色噜噜| 欧美放荡的少妇| 777欧美精品| 欧美日韩国产综合草草| 欧美日韩不卡在线| 国产精品美女久久久久av爽李琼| 色综合天天性综合| 粗大黑人巨茎大战欧美成人| 国产一区 二区 三区一级| 美女视频黄频大全不卡视频在线播放 | 五月天欧美精品| 亚洲高清不卡在线| 亚洲成人av免费| 亚洲国产你懂的| 婷婷一区二区三区| 国产在线一区观看| 国产成a人亚洲精品| 国产成人av资源| 国v精品久久久网| 国产不卡在线视频| 国产美女娇喘av呻吟久久| 国产一区二区视频在线| 国产高清不卡二三区| 国产成人福利片| 91年精品国产| 欧美综合亚洲图片综合区| 成人免费视频免费观看| 欧美性猛片xxxx免费看久爱| 欧美三级电影在线看| 欧美一区二区三区视频在线观看| 日韩午夜精品电影| 久久久久久99精品| 亚洲欧洲av在线| 秋霞电影一区二区| 久久成人精品无人区| 久久99久久精品欧美| 风间由美一区二区三区在线观看| 99精品视频在线观看| 欧美日韩综合在线免费观看| 欧美一级欧美一级在线播放| 国产亚洲欧美日韩在线一区| 亚洲视频图片小说| 午夜av电影一区| 国产精品一级黄| 在线观看国产91| 久久午夜电影网| 亚洲欧美色图小说| 日本午夜精品一区二区三区电影| 韩国女主播一区二区三区| 91麻豆免费观看| 91精品国产综合久久久久久久久久 | 一区二区三区自拍| 亚洲五码中文字幕| 国产乱人伦偷精品视频免下载| 色悠悠亚洲一区二区| 欧美高清精品3d| 国产精品久久99| 视频一区在线视频| 欧日韩精品视频| 久久精品在这里| 蜜桃视频在线一区| 欧美性猛交一区二区三区精品| 久久久久久久久岛国免费| 亚洲成人动漫在线免费观看| 国产91丝袜在线观看| 7777精品伊人久久久大香线蕉的 | 成人免费的视频| 日韩精品一区二区在线观看| 亚洲国产欧美一区二区三区丁香婷| 国产福利一区在线观看| 91黄视频在线| 国产亚洲精品aa| 久久国产福利国产秒拍| 欧美日韩激情一区二区三区| 一区二区在线电影| 成人黄色免费短视频|