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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c30evm_lcd.c

?? mircochip dsPIIC30F 晶片 使用中斷去控制的範(fàn)例
?? C
字號(hào):
 
#include 	"C30EVM_LCD.h"
#include 	<p30F4011.h>

//
// Defines for I/O ports that provide LCD data & control
// PORTD[0:3]-->DB[4:7]: Higher order 4 lines data bus with bidirectional
//					  : DB7 can be used as a BUSY flag
// PORTA,1 --> [E] : LCD operation start signal control 
// PORTA,2 --> [RW]: LCD Read/Write control
// PORTA,3 --> [RS]: LCD Register Select control
//		      	   : "0" for Instrunction register (Write), Busy Flag (Read)
//				   : "1" for data register (Read/Write)
//
#define CPU_SPEED		16					// CPU speed is 16 Mhz !!

#define LCD_RS			LATFbits.LATF0		// The definition of control pins
#define LCD_RW			LATFbits.LATF1
#define LCD_E			LATBbits.LATB7
#define LCD_E_MODE		ADPCFGbits.PCFG7	// Set RB7 as digital I/O

#define	DIR_LCD_RS		TRISFbits.TRISF0	// Direction of control pins
#define	DIR_LCD_RW		TRISFbits.TRISF1
#define	DIR_LCD_E		TRISBbits.TRISB7

#define LCD_DATA		LATD				// PORTD[0:3] as LCD DB[4:7]
#define DIR_LCD_DATA	TRISD				// Direction of Databus


//  LCD Module commands --- These settings can be found in the LCD datasheet
#define DISP_2Line_8Bit		0x0038		// 2 lines & 8 bits setting
#define DISP_2Line_4Bit		0x0028		// 2 lines & 4 bits setting
#define DISP_ON				0x00C		// Display on
#define DISP_ON_C			0x00E		// Display on, Cursor on
#define DISP_ON_B			0x00F		// Display on, Cursor on, Blink cursor
#define DISP_OFF			0x008		// Display off
#define CLR_DISP			0x001		// Clear the Display
#define ENTRY_INC			0x006		// Entry Increment and Cursor Move
#define ENTRY_INC_S			0x007		// Entry Increment and Display Shift
#define ENTRY_DEC			0x004		// Entry Decrement and Cursor Move
#define ENTRY_DEC_S			0x005		// Entry Decrement and Display Shift
#define DD_RAM_ADDR			0x080		// Least Significant 7-bit are for address
#define DD_RAM_UL			0x080		// Upper Left coner of the Display	
		
unsigned char 	Temp_CMD ;				// Temperary Buffers for Command,
unsigned char 	Str_Temp ;				// for String,
int				Temp_LCD_DATA ;			// for PORT data (This will be restored after Communication w/ LCD)
//unsigned char	Out_Mask ;				//


void OpenLCD(void)

{		
	Temp_LCD_DATA = LCD_DATA ;				// Save the Port Value of LCD_DATA
	
	LCD_E_MODE =1 ;							// Initialize RB7 as digital I/O
	LCD_E = 0 ;								// 
	LCD_DATA &= 0xfff0;						// LCD DB[4:7] & RS & R/W --> Low
	DIR_LCD_DATA &= 0xfff0;					// LCD DB[4:7} & RS & R/W are output function
	DIR_LCD_E = 0;							// Set E pin as output
	DIR_LCD_RS = 0 ;
	DIR_LCD_RW = 0 ;

// Initialize the LCD following the standard operations
											// 1st
	LCD_DATA &= 0xfff0 ;					// Clear PORTDbits.RD0 ~ RD3 but save others by &
	LCD_DATA |= 0x0003 ;					// Send Data of 0x03 but keep others by |
	LCD_CMD_W_Timing() ;					// LCD Command Write Sequence Function
	LCD_L_Delay() ;							// Delay for long enough time (4.1ms minimum)
											// 2nd
	LCD_DATA &= 0xfff0 ;					// Clear PORTDbits.RD0 ~ RD3
	LCD_DATA |= 0x0003 ;					// Send Data of 0x03
	LCD_CMD_W_Timing() ;					// LCD Command Write Sequence Function
	LCD_L_Delay() ;							// Delay for long enough time (100us minimum)
											// 3rd
	LCD_DATA &= 0xfff0 ;					// Clear PORTDbits.RD0 ~ RD3
	LCD_DATA |= 0x0003 ;					// Send Data of 0x03
	LCD_CMD_W_Timing() ;					// LCD Command Write Sequence Function
	LCD_L_Delay() ;							// Delay for long enough time (Not Required)

	LCD_DATA &= 0xfff0 ;					// Clear PORTDbits.RD0 ~ RD3
	LCD_DATA |= 0x0002 ;					// Send Data of 0x02 for 4-bit databus interface
	LCD_CMD_W_Timing() ;
	LCD_L_Delay() ;

	WriteCmdLCD(DISP_2Line_4Bit) ;			// Configure LCD - 2 lines display & 4-bit long bus
	LCD_S_Delay() ;

	WriteCmdLCD(DISP_ON) ;					// Configure LCD - Turn on display
	LCD_S_Delay() ;

	WriteCmdLCD(ENTRY_INC) ;				// Configure LCD - Entry increment (to the right)
	LCD_S_Delay() ;

	WriteCmdLCD(CLR_DISP) ;					// Configure LCD - Clear Display
	LCD_L_Delay() ;

	LCD_DATA = Temp_LCD_DATA ;				// Restore Port Data (Useful if Port is shared, such as w/ LED)
}

//*********************************************
//     _    ______________________________
// RS  _>--<______________________________
//     _____
// RW       \_____________________________
//                  __________________
// E   ____________/                  \___
//     _____________                ______
// DB  _____________>--------------<______
//***********************************************
// Subroutine to 
// Write Command to LCD module
//
void WriteCmdLCD( unsigned char LCD_CMD) 
{

	Temp_LCD_DATA = LCD_DATA ;					// Save Port data to Temp buffer

	Temp_CMD = (LCD_CMD & 0xF0)>>4 ;			// Send high nibble to LCD bus
	LCD_DATA= (LCD_DATA & 0xfff0)|Temp_CMD ;	
	LCD_CMD_W_Timing () ;

	Temp_CMD = LCD_CMD & 0x0F ;					// Send low nibble to LCD bus
	LCD_DATA= (LCD_DATA & 0xfff0)|Temp_CMD ;
	LCD_CMD_W_Timing () ;

	LCD_DATA = Temp_LCD_DATA ;					// Restore Port data
	LCD_S_Delay() ;								// Delay 100uS for execution

}

//***********************************************
// Subroutine to 
// Write Data to LCD module
//
void WriteDataLCD( unsigned char LCD_CMD) 
{
	
	Temp_LCD_DATA = LCD_DATA ;					// Save Port data to Temp buffer

	Temp_CMD = (LCD_CMD & 0xF0)>>4 ;			// Send high nibble to LCD bus
	LCD_DATA= (LCD_DATA & 0xfff0)|Temp_CMD ;
	LCD_DAT_W_Timing () ;

	Temp_CMD = LCD_CMD & 0x0F ;					// Send low nibble to LCD bus
	LCD_DATA= (LCD_DATA & 0xfff0)|Temp_CMD ;
	LCD_DAT_W_Timing () ;

	LCD_DATA = Temp_LCD_DATA ;					// Restore Port data
	LCD_S_Delay() ;								// Delay 100uS for execution


}

//***********************************************
// Subroutine to 
// Write a character to LCD module
//
void putcLCD(unsigned char LCD_Char)
{
	WriteDataLCD(LCD_Char) ;

}

//***********************************************
// Subroutine to 
// Write a command to LCD module
// RS=0, R/W=0, E=H->L F(alling Edge)

void LCD_CMD_W_Timing( void )					// LCD Command writing timming
{
	LCD_RS = 0 ;	// Set for Command Input
	Nop();
	LCD_RW = 0 ;
	Nop();
	LCD_E = 1 ;
	Nop();
	Nop();
	Nop();
	Nop();
	LCD_E = 0 ;
}

//***********************************************
// Subroutine to 
// Write a command to LCD module
// RS=1, R/W=0, E=H->L F(alling Edge)

void LCD_DAT_W_Timing( void )					// LCD Data writing timming
{
	LCD_RS = 1 ;	// Set for Data Input
	Nop( );
	LCD_RW = 0 ;
	Nop( );
	LCD_E = 1 ;
	Nop( );
	Nop( );
	Nop( );
	Nop( );
	LCD_E = 0 ;
}

//***********************************************
//     Set Cursor position on LCD module
//			CurY = Line (0 or 1)
//      	CurX = Position ( 0 to 15)
//
void setcurLCD(unsigned char CurX, unsigned char CurY)
{
	WriteCmdLCD( 0x80 + CurY * 0x40 + CurX) ;
	LCD_S_Delay() ;
}

//***********************************************
//    Put a ROM string to LCD Module
//
void putrsLCD( const char *Str )
{
	while (1)
	{
		Str_Temp = *Str ;

		if (Str_Temp != 0x00 )
		   {
			WriteDataLCD(Str_Temp) ;
			Str ++ ;
		   }
		else
			return ;
   }
}

//***********************************************
//    Put a RAM string to LCD Module
//
void putsLCD( char *Str)
{
	while (1)
	{
		Str_Temp = *Str ;

		if (Str_Temp != 0x00 )
		   {
			WriteDataLCD(Str_Temp) ;
			Str ++ ;
		   }
		else
			return ;
   }
}

//***********************************************
//    Put a byte in Hex format to LCD Module
//

void puthexLCD(unsigned char HEX_Val)
{
	unsigned char Temp_HEX ;

	Temp_HEX = (HEX_Val >> 4) & 0x0f ;		// high nibble

	if ( Temp_HEX > 9 )Temp_HEX += 0x37 ;	// A~F
    else Temp_HEX += 0x30 ;					// 0~9

	WriteDataLCD(Temp_HEX) ;

	Temp_HEX = HEX_Val  & 0x0f ;			// low nibble
	if ( Temp_HEX > 9 )Temp_HEX += 0x37 ;
    else Temp_HEX += 0x30 ;

	WriteDataLCD(Temp_HEX) ;
}

//***********************************************
//    Put a byte in decimal format to LCD Module
//	  0~99 Only. Uncomment the first 2 lines for hundreds

void	put_Num_LCD( unsigned char The_Number )
{

	unsigned char	Temp_Char_100, Temp_Char_10, Temp_Char ;

		Temp_Char_100 = The_Number /100 ;		//

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区在线| 色猫猫国产区一区二在线视频| 欧美体内she精视频| 一区二区在线观看免费视频播放| 99精品热视频| 亚洲欧美日韩国产一区二区三区 | 国产一区二区电影| 2023国产精华国产精品| 国产成人一级电影| 亚洲欧洲精品一区二区三区| 91在线丨porny丨国产| 久久精品99久久久| 国产欧美日韩精品一区| 一本色道久久综合亚洲91| 亚洲成人av中文| 欧美一级片在线看| 国产不卡视频在线播放| 亚洲精品视频在线看| 国产午夜精品美女毛片视频| 91免费国产视频网站| 日韩成人免费电影| 久久精品一区蜜桃臀影院| 欧美日韩国产精选| 国产精品自在在线| 一区二区三区精密机械公司| 日韩一区二区视频在线观看| 粉嫩aⅴ一区二区三区四区| 日本成人在线视频网站| 亚洲大片精品永久免费| 一区二区成人在线视频| 亚洲美女精品一区| 中文字幕一区免费在线观看| 中文成人综合网| 7777精品伊人久久久大香线蕉最新版| 国产成人a级片| 韩国成人精品a∨在线观看| 一区二区三区日韩欧美| 亚洲视频一区二区在线| 日韩欧美色综合网站| 一本一本大道香蕉久在线精品 | 风间由美一区二区av101| 国产一区二区三区久久久| 青草av.久久免费一区| 中文字幕日韩精品一区 | 中文字幕视频一区| 国产精品成人免费精品自在线观看 | 56国语精品自产拍在线观看| 欧美性感一类影片在线播放| 欧美日韩视频在线一区二区 | 欧美日韩国产一级二级| 欧美亚一区二区| 欧美性感一区二区三区| 欧美日韩精品系列| 欧美精品久久久久久久久老牛影院| 成人性视频网站| 国产在线精品一区二区夜色| 韩国女主播一区| 从欧美一区二区三区| 91色porny在线视频| 91久久一区二区| 在线成人av影院| 欧美v亚洲v综合ⅴ国产v| 欧美日韩免费视频| 欧美成人三级在线| 久久无码av三级| 国产精品二区一区二区aⅴ污介绍| 中文字幕一区二区三中文字幕| 亚洲综合另类小说| 亚洲蜜臀av乱码久久精品| 亚洲国产欧美在线| 亚洲欧美偷拍三级| 天天免费综合色| 亚洲成av人**亚洲成av**| 美女视频黄a大片欧美| 强制捆绑调教一区二区| 国产91精品一区二区| 色琪琪一区二区三区亚洲区| 欧美久久久一区| 亚洲国产精品av| 亚洲综合成人网| 国内精品伊人久久久久av影院| 成人午夜又粗又硬又大| 欧美日本不卡视频| 久久免费电影网| 国产视频一区在线播放| 一区二区三区电影在线播| 久久精品国产99国产精品| 成人av电影在线播放| 91在线视频观看| 日韩美一区二区三区| 亚洲人成精品久久久久| 热久久国产精品| 91美女在线视频| 久久久久久一级片| 亚洲成人你懂的| 99精品视频免费在线观看| 日韩一区二区三区观看| 亚洲品质自拍视频网站| 韩国v欧美v亚洲v日本v| 欧美精品自拍偷拍| 国产精品久久精品日日| 美国毛片一区二区| 欧美色图第一页| 中文字幕乱码久久午夜不卡| 美腿丝袜亚洲三区| 在线一区二区视频| 国产精品三级久久久久三级| 另类综合日韩欧美亚洲| 色婷婷av一区二区三区gif| 国产日产欧美一区二区三区| 日本美女一区二区三区视频| 色婷婷一区二区| 国产精品网曝门| 韩国av一区二区三区四区| 欧美男男青年gay1069videost| 亚洲欧美在线视频观看| 国产又粗又猛又爽又黄91精品| 欧美日韩国产高清一区二区 | 老司机免费视频一区二区| 欧美午夜精品久久久久久超碰| 国产精品久久久久久久久图文区 | 一区二区三区中文在线| 国产91精品一区二区麻豆亚洲| 欧美大片一区二区三区| 日韩精品福利网| 国产成人高清视频| xfplay精品久久| 久久国产精品一区二区| 91精品在线一区二区| 国产精品一区二区久久精品爱涩 | 一区二区三区在线看| 成人av资源在线| 国产精品乱码一区二区三区软件 | 欧美日韩一区二区三区不卡| 亚洲人成网站精品片在线观看| 99久久99久久综合| 国产精品久久久久久亚洲毛片| 成人午夜av在线| 国产精品免费丝袜| a在线播放不卡| 日韩免费福利电影在线观看| 蜜桃av一区二区在线观看| 欧美一二三区在线| 久久av资源站| 久久久久久久久久久久久夜| 国产精品18久久久久| 国产片一区二区| 99久久精品免费看国产 | 亚洲一区二区欧美激情| 欧美亚洲另类激情小说| 亚洲成人精品影院| 这里只有精品视频在线观看| 视频在线观看国产精品| 日韩你懂的在线观看| 精品在线视频一区| 3d动漫精品啪啪| 经典三级一区二区| 国产视频一区在线播放| 93久久精品日日躁夜夜躁欧美| 日韩一区欧美小说| 欧美三级日韩三级| 美女网站一区二区| 国产精品青草久久| 在线观看av不卡| 一区二区三区日韩在线观看| 555www色欧美视频| 国产一区二区在线影院| 最新日韩av在线| 在线不卡中文字幕| 国产成都精品91一区二区三| 亚洲精品日韩综合观看成人91| 欧美日韩在线观看一区二区 | 国产一区二区三区黄视频| 国产精品区一区二区三| 91国偷自产一区二区三区成为亚洲经典| 亚洲国产另类精品专区| 精品国产在天天线2019| 青青青伊人色综合久久| 国产日韩欧美亚洲| 欧美无砖专区一中文字| 久久精品99国产精品| 国产精品久久精品日日| 欧美一区二区三区在线观看视频| 国产69精品久久777的优势| 亚洲综合一二三区| 久久综合九色综合欧美98| 91福利在线免费观看| 蜜桃一区二区三区在线观看| 国产精品久久久久9999吃药| 日韩一区二区精品在线观看| www.视频一区| 精品中文字幕一区二区| 有坂深雪av一区二区精品| 精品国产91洋老外米糕| 欧洲精品在线观看| 成人精品一区二区三区四区| 日韩高清在线一区| 亚洲区小说区图片区qvod| 精品国产91九色蝌蚪| 精品视频在线视频|