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

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

?? lcd_drive.c

?? Lpc2103的小程序
?? C
字號:
/*************************************** Copyright (c) *************************************************
*
*										POLAR STAR
*								北天星國際貿易(深圳)有限公司
*								http://www.po-star.com
*
*	文 件 名: LCD_DRIVE.C
*	文件描述:實現對16X2點陣液晶屏模塊的顯示驅動,并動態顯示字符串。
*             該模塊的內部芯片是HD44780。內部集成部分簡單字庫
*
*	說    明:將跳線器JP7的所有跳線短接至LCD控制的引腳。
*			  將跳線器JP6的所有跳線短接;
*
********************************************************************************************************/

#include  "config.h"
#include  "LCD_DRIVE.H"

#define	 LCD_DATAOUT	IODIR |= 0xF<<4;
#define	 LCD_DATAIN		IODIR &=(uint8)(~(0xF<<4));

#define	 LCD_E			1<<24
#define	 LCD_RW			1<<25
#define	 LCD_RS			1<<26
#define  BEEP			1<<21

#define HD44780_INPUT_SET_MASK        (uint8)(~(0xf<<4))
#define HD44780_OUTPUT_SET_MASK       ((0x0f<<4)|(7<<24))
/********************************************************************************************************
*
* 函數名稱:HD44780_BUS_DLY(void)
*
* 功能描述:延時1uS,液晶模塊的基本節拍時間。
*
* 入口參數:無
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

void HD44780_BUS_DLY(void)
{
	uint16 dly;
	for(dly = 0x2E;dly>0;--dly);
}
/********************************************************************************************************
*
* 函數名稱:Delay100us( unsigned int n_100us )
*
* 功能描述:延時100uS
*
* 入口參數:無
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

static void Delay100us( uint32 arg )		//Timer0,Delay (100*n_100us)us
{
	uint32 tmp;
	for(;arg>0;--arg)
		for(tmp=0;tmp<760;tmp++);
}
/********************************************************************************************************
*
* 函數名稱:uint8 CheckStatus(void)
*
* 功能描述:狀態查詢
*
* 入口參數:無
* 出口參數:uint8 status		當前LCD的狀態
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

uint8 CheckStatus (void)
{
	uint8 data;
	IOSET = LCD_RW;							
	IOCLR = LCD_RS;
	//LCD_DATAIN;
	IOSET = LCD_E;	
	data  = IOPIN & 0xF0;	
	HD44780_BUS_DLY();
	IOCLR = LCD_E;
    HD44780_BUS_DLY();
	IOSET = LCD_E;	
    
    data |= (IOPIN >> 4) & 0x0F;
   	HD44780_BUS_DLY();
	IOCLR = LCD_E;
	
	//LCD_DATAOUT;
	return data;
}

/********************************************************************************************************
*
* 函數名稱:uint8 BusyCheck(void)
*
* 功能描述:忙查詢等待
*
* 入口參數:無
* 出口參數:uint8 status		當前LCD的狀態
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

uint8 BusyCheck(void)
{
	uint8 status  = 0;
	uint16 counter = 0;
	do
	{
		status = 0x80 & CheckStatus();
		if((counter++) >= 0x3F)
		{
			status = 1;
			break;	
		}
	}while(status);
	return status;
}
/********************************************************************************************************
*
* 函數名稱:WriteData (uint8 Data)
*
* 功能描述:發送一個字節到LCD
*
* 入口參數:Data	要發送的數據
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

void WriteData (uint8 Data)
{
	IOCLR = LCD_RW;
	IOSET = LCD_RS;
	IOSET = LCD_E;
	IOPIN  = (IOPIN & 0xFFFFFF0F)|(Data & 0xF0);
    HD44780_BUS_DLY();
	IOCLR = LCD_E;
    HD44780_BUS_DLY();
    IOSET = LCD_E;
	IOPIN  = (IOPIN & 0xFFFFFF0F)|((Data<<4) & 0xF0);
	HD44780_BUS_DLY();
	IOCLR = LCD_E;
	HD44780_BUS_DLY();
	BusyCheck();
}

/********************************************************************************************************
*
* 函數名稱:uint8 ReadData(void)
*
* 功能描述:讀取一個字節
*
* 入口參數:無
* 出口參數:data	回讀的數據
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

uint8 ReadData(void)
{
	uint8 data;
	IOSET = LCD_RW | LCD_RS;
	IOSET = LCD_E;
	HD44780_BUS_DLY();
	data = IOPIN & 0xF0;
	
	IOCLR = LCD_E;
    HD44780_BUS_DLY();
	IOSET = LCD_E;	
    HD44780_BUS_DLY();
    data |= (IOPIN >> 4)&0x0F;	
	IOCLR = LCD_E;
	return data;
}

/********************************************************************************************************
*
* 函數名稱:WriteCommand(uint8 command)
*
* 功能描述:發送一個字節命令
*
* 入口參數:uint8 command		發送的命令數據
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/

void WriteCommand (uint8 Command)
{
	IOCLR = LCD_RW | LCD_RS;
	IOSET = LCD_E;
	IOPIN = (IOPIN & 0xFFFFFF0F) |(Command & 0xF0);
    HD44780_BUS_DLY();
	IOCLR = LCD_E;
    HD44780_BUS_DLY();
    IOSET = LCD_E;
	IOPIN = (IOPIN & 0xFFFFFF0F) |((Command<<4) & 0xF0);	
	HD44780_BUS_DLY();
	IOCLR = LCD_E;
	HD44780_BUS_DLY();
	BusyCheck();	
}


/********************************************************************************************************
*
* 函數名稱:void ShowString(uint8 Addr,const uint8 *Str,uint8 No)
*
* 功能描述:顯示字符串
*
* 入口參數:uint8 Addr			-- 顯示DDRAM地址
*			const uint8 *Str	-- 源字符串指針
*			uint8 No			-- 符串長度
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/
void ShowString(uint8 Addr,const uint8 *Str,uint8 No)
{
	uint8 tmp;
	for(tmp=0;tmp<=No;tmp++)
	{
		WriteCommand((Addr + tmp) | 0x80);
		WriteData(*Str++);		
	}
}
/********************************************************************************************************
*
* 函數名稱:void ShowHex(uint8 Addr,uint8 Data)
*
* 功能描述:顯示十六進制數
*
* 入口參數:uint8 Addr	-- 要顯示的地址
*			uint8 Data  -- 要顯示的值
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/
void ShowHex(uint8 Addr,uint8 Data)
{
	uint8 DataH,DataL;
	DataH=(Data/10)+'0';		
	DataL=(Data%10)+'0';	
	WriteCommand(Addr|0x80);		
	WriteData(DataH);
	WriteCommand((Addr+1)|0x80);
	WriteData(DataL);
}

/********************************************************************************************************
*
* 函數名稱:void PowerUpInit(void)
*
* 功能描述:上電初始化,請嚴格參照HD44780的四線寬度的初始化說明。
*
* 入口參數:無
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/
void PowerUpInit(void)
{
	/* Init MCU IO */
	PINSEL0 = 0x00000000;					// 設置所有控制引腳為GPIO口
	PINSEL1 = 0x00000000;					
	IODIR = HD44780_OUTPUT_SET_MASK;		// 設置所有控制引腳為輸出口
	Delay100us(1510);						// 1.等待15.1mS
	WriteCommand(0x30);						// 2.8位接口
	Delay100us(41);							// 3.等待4.1mS
	WriteCommand(0x30);						// 4.8位接口
	Delay100us(2);							// 5
	WriteCommand(0x30);						// 6.
	//WriteCommand(0x20);					// 測試實驗得知、該操作可省略
	WriteCommand(0x28);						// 四線操作、雙行顯示、5*8字體
	WriteCommand(0x0C);						// 設置顯示模式:使能顯示,關光標顯示
	WriteCommand(0x01);						// 清屏
	Delay100us(20);							// 清屏操作等待
	WriteCommand(0x06);						// 12
}

/********************************************************************************************************/

const uint8 st1[]="                ";
const uint8 st2[]="       P        ";
const uint8 st3[]="      Po r      ";
const uint8 st4[]="     Pol ar     ";
const uint8 st5[]="    Pola tar    ";
const uint8 st6[]="   Polar Star   ";

const uint8 st7[] ="                ";
const uint8 st8[] ="       LK       ";
const uint8 st9[] ="      LPEK      ";
const uint8 st10[]="     LPC-EK     ";
const uint8 st11[]="    LPC2x-EK    ";
const uint8 st12[]="   LPC210x-EK   ";
const uint8 st13[]="Polar Star";
const uint8 st14[]="LPC210x-EK";
const uint8* sr[6]={st1,st2,st3,st4,st5,st6};
const uint8* sr2[6]={st7,st8,st9,st10,st11,st12};
/********************************************************************************************************
*
* 函數名稱:main()
*
* 功能描述:顯示字符串
*
* 入口參數:無
* 出口參數:無
*
* 全局變量: 無
* 調用模塊: 無
*
********************************************************************************************************/
int main(void)
{
	int8 tmp,tmp1;
	const uint8 **p1,**p2;
	PowerUpInit();
	
	while(1)
	{
		p1 = sr;
		p2 = sr2;
		for(tmp=0;tmp<6;tmp++)				// 兩邊伸展顯示操作控制
		{
			ShowString(0,p1[tmp],16);
			ShowString(0x40,p2[tmp],16);
			Delay100us(3000);
			WriteCommand(1);
			Delay100us(40);
		}
		ShowString(0,p1[5],16);				// 畫面定格
		ShowString(0x40,p2[5],16);	
		Delay100us(12000);	
		for(tmp=5;tmp>=0;tmp--)				// 中間收縮顯示操作控制
		{
			ShowString(0,p1[tmp],16);
			ShowString(0x40,p2[tmp],16);
			Delay100us(3000);
			WriteCommand(1);
			Delay100us(40);
		}		
		Delay100us(12000);
		tmp1 = 0x10;
		for(tmp=0;tmp<0x19;tmp++)			// 兩端相對運動操作控制
		{
			tmp1--;
			ShowString(0+tmp-9,st13,9);
			ShowString(0x40+tmp1,st14,9);
			Delay100us(3000);
			if(tmp==12)						// 對齊定格操作
			Delay100us(12000);
			WriteCommand(1);
			Delay100us(40);			
		}			
		tmp1=0;
		for(tmp=0xf;tmp1<0x19;tmp--)		// 兩端相對運動操作控制
		{
			ShowString(0+tmp,st13,9);
			ShowString(0x40+tmp1-9,st14,9);
			Delay100us(3000);
			if(tmp==3)						// 對齊定格操作
			Delay100us(12000);			
			WriteCommand(1);
			Delay100us(40);
			tmp1++;
		}
		Delay100us(12000);
	
	}
	return(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成网站精品片在线观看| 99天天综合性| 亚洲日本在线看| 一区二区三区四区在线免费观看| 亚洲不卡一区二区三区| 久久精品国产999大香线蕉| 国v精品久久久网| 欧美主播一区二区三区| 欧美大片一区二区| 国产精品色噜噜| 欧美一级欧美一级在线播放| 一区二区中文视频| 亚洲国产精品精华液ab| 亚洲精品国产一区二区精华液| 日韩极品在线观看| 不卡的电影网站| 国产一区二区伦理| 在线视频一区二区免费| 欧洲av一区二区嗯嗯嗯啊| 欧美精品免费视频| 一区二区三区精品| 欧美日韩大陆一区二区| 亚洲午夜一二三区视频| 国产在线观看一区二区| 欧美羞羞免费网站| 精品久久久影院| 洋洋av久久久久久久一区| 国产一区二区三区免费看| 欧美午夜精品电影| 成人欧美一区二区三区白人| 奇米综合一区二区三区精品视频| 91免费版pro下载短视频| 日韩欧美激情一区| 一区二区三区91| 成人在线一区二区三区| 日韩欧美亚洲国产另类| 亚洲综合色成人| 99久久久精品免费观看国产蜜| 精品国产三级a在线观看| 亚洲一区二区三区在线| 成人av网站免费| 久久久亚洲欧洲日产国码αv| 日韩经典中文字幕一区| 欧美在线观看视频在线| 亚洲天堂免费看| 成人性色生活片免费看爆迷你毛片| 91麻豆精品国产无毒不卡在线观看| 亚洲免费看黄网站| 成人伦理片在线| 欧美极品少妇xxxxⅹ高跟鞋| 久久精品国产一区二区三| 欧美嫩在线观看| 亚洲精品五月天| www.成人网.com| 久久久亚洲精品一区二区三区| 久久国产福利国产秒拍| 91精品国产美女浴室洗澡无遮挡| 亚洲午夜免费视频| 91成人国产精品| 综合欧美一区二区三区| 97久久超碰国产精品电影| 国产欧美综合在线观看第十页| 国产一区在线精品| 精品88久久久久88久久久| 蜜桃久久久久久久| 日韩小视频在线观看专区| 中国色在线观看另类| 洋洋成人永久网站入口| 在线观看网站黄不卡| 一区二区三区毛片| 色婷婷av一区二区三区大白胸| 亚洲欧洲99久久| 色一情一伦一子一伦一区| 亚洲男同性恋视频| 日本乱人伦aⅴ精品| 一区二区三区在线观看国产| 2014亚洲片线观看视频免费| 国产91色综合久久免费分享| 国产婷婷色一区二区三区| 91麻豆产精品久久久久久| 久久99深爱久久99精品| 亚洲欧洲在线观看av| 欧美一区二区三区白人| 粉嫩一区二区三区性色av| 亚洲国产色一区| 国产亚洲欧美日韩在线一区| 日本久久一区二区三区| 捆绑紧缚一区二区三区视频| 亚洲精品视频在线| 久久久久久一级片| 日韩亚洲欧美一区| 欧美性大战久久| 色成年激情久久综合| 顶级嫩模精品视频在线看| 激情图区综合网| 成人av集中营| 欧美日韩视频专区在线播放| 欧美大黄免费观看| 久久综合久久鬼色中文字| 日韩欧美一区二区久久婷婷| 97精品国产露脸对白| 亚洲午夜免费视频| 轻轻草成人在线| 91久久一区二区| 亚洲在线一区二区三区| 国产精品一区二区在线看| 欧美激情一区二区三区不卡| 99久久99久久精品免费观看| 亚洲大片一区二区三区| 欧美大片一区二区三区| 不卡视频免费播放| 日韩国产欧美三级| 欧美极品少妇xxxxⅹ高跟鞋| 欧美色手机在线观看| 国产精品久久夜| 国产精品三级电影| 一区二区三区日本| 亚洲综合色区另类av| 亚洲动漫第一页| 日韩电影在线一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 蜜臂av日日欢夜夜爽一区| 久久精品国产精品亚洲综合| 538prom精品视频线放| 一区二区三区中文字幕电影| 精品一区二区影视| 亚洲品质自拍视频网站| 日韩欧美国产精品一区| 色综合天天在线| 狠狠色伊人亚洲综合成人| 亚洲欧美经典视频| 久久嫩草精品久久久久| 欧美日韩亚洲综合一区二区三区| 狠狠色丁香婷婷综合久久片| 一级日本不卡的影视| 久久精品一区二区三区不卡| 3d动漫精品啪啪| 色狠狠av一区二区三区| 国产丶欧美丶日本不卡视频| 日本特黄久久久高潮| 亚洲精品欧美专区| 国产天堂亚洲国产碰碰| 日韩欧美在线观看一区二区三区| 91小宝寻花一区二区三区| 国产自产高清不卡| 日本在线不卡一区| 亚洲一区在线免费观看| 国产精品久久久久久久久免费丝袜 | 在线国产电影不卡| 成人伦理片在线| 国产一区不卡在线| 亚州成人在线电影| 亚洲免费观看高清完整版在线观看 | 亚洲日穴在线视频| 日本一区二区视频在线观看| 日韩欧美在线综合网| 欧美日精品一区视频| 91蜜桃传媒精品久久久一区二区 | 亚洲国产高清不卡| 精品成人佐山爱一区二区| 欧美精品在线一区二区三区| 欧美性感一区二区三区| 色先锋久久av资源部| av影院午夜一区| 成人综合婷婷国产精品久久| 精品亚洲成av人在线观看| 日韩**一区毛片| 日韩影院在线观看| 午夜精品在线看| 亚洲国产视频直播| 亚洲精品高清在线观看| 亚洲欧美国产77777| 亚洲欧美经典视频| 亚洲日本在线观看| 亚洲精选在线视频| 亚洲男女一区二区三区| 综合亚洲深深色噜噜狠狠网站| 国产精品免费久久久久| 中文字幕免费一区| 国产精品色在线观看| 中日韩免费视频中文字幕| 色综合久久久久| 亚洲综合一区在线| 精品视频一区二区不卡| 亚洲成人免费影院| 日韩欧美综合一区| 国产99久久久久| 国产精品久久国产精麻豆99网站| 成人性生交大片免费看视频在线| 中文字幕不卡的av| 欧美亚洲综合久久| 蜜臀久久久久久久| 久久久久久久久久久久久久久99| 国产高清精品在线| 亚洲精品国产a久久久久久| 欧美电影影音先锋| 国产福利一区在线| 亚洲图片一区二区| 久久久99精品免费观看| 99re8在线精品视频免费播放|