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

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

?? altera_up_character_lcd_communication.v

?? 這是一個 NIOSII系統的 1602LCD 控制IP核
?? V
字號:
/*****************************************************************************
 *                                                                           *
 * Module:       Altera_UP_Character_LCD_Communication                       *
 * Description:                                                              *
 *      This module read and write data to the 16x2 Character LCD on the DE2 *
 *   Board.                                                                  *
 *                                                                           *
 *****************************************************************************/

module Altera_UP_Character_LCD_Communication (
	// Inputs
	clk,
	reset,

	data_in,
	enable,
	rs,
	rw,

	on,
	back_light_on,

	// Bidirectionals
	LCD_DATA,

	// Outputs
	LCD_ON,
	LCD_BLON,

	LCD_EN,
	LCD_RS,
	LCD_RW,

	data_out,
	transfer_complete
);

/*****************************************************************************
 *                           Parameter Declarations                          *
 *****************************************************************************/

// Timing info for minimum wait between consecutive communications 
//   if using a 50MHz Clk
parameter	CLOCK_CYCLES_FOR_IDLE_STATE			= 7'h7F;	// Minimum 2500 ns
parameter	NUM_BITS_FOR_IDLE_COUNTER			= 7;
parameter	IDLE_COUNTER_INCREMENT				= 7'h01;

parameter	CLOCK_CYCLES_FOR_OPERATION_STATE	= 3;		// Minimum  40 ns
parameter	CLOCK_CYCLES_FOR_ENABLE_STATE		= 15;		// Minimum 230 ns
parameter	CLOCK_CYCLES_FOR_HOLD_STATE			= 1;		// Minimum  10 ns
parameter	NUM_BITS_FOR_STATES_COUNTER			= 4;
parameter	COUNTER_INCREMENT					= 4'h1;

/*****************************************************************************
 *                             Port Declarations                             *
 *****************************************************************************/
// Inputs
input				clk;
input				reset;

input		[7:0]	data_in;
input				rs;
input				rw;
input				enable;

input				on;
input				back_light_on;

// Bidirectionals
inout		[7:0]	LCD_DATA;

// Outputs
output	reg			LCD_ON;
output	reg			LCD_BLON;

output	reg			LCD_EN;
output	reg			LCD_RS;
output	reg			LCD_RW;

output	reg	[7:0]	data_out;			// Stores data read from the LCD
output	reg			transfer_complete;	// Indicates the end of the transfer

/*****************************************************************************
 *                           Constant Declarations                           *
 *****************************************************************************/
// states
parameter	LCD_STATE_4_IDLE		= 3'h4,
			LCD_STATE_0_OPERATION	= 3'h0,
			LCD_STATE_1_ENABLE		= 3'h1,
			LCD_STATE_2_HOLD		= 3'h2,
			LCD_STATE_3_END			= 3'h3;

/*****************************************************************************
 *                 Internal wires and registers Declarations                 *
 *****************************************************************************/
// Internal Wires

// Internal Registers
reg			[7:0]	data_to_lcd;

reg			[NUM_BITS_FOR_IDLE_COUNTER:1]	idle_counter;
reg			[NUM_BITS_FOR_STATES_COUNTER:1]	state_0_counter;
reg			[NUM_BITS_FOR_STATES_COUNTER:1]	state_1_counter;
reg			[NUM_BITS_FOR_STATES_COUNTER:1]	state_2_counter;

// State Machine Registers
reg			[2:0]	ns_lcd;
reg			[2:0]	s_lcd;

/*****************************************************************************
 *                         Finite State Machine(s)                           *
 *****************************************************************************/

always @(posedge clk)	// sync reset
begin
	if (reset == 1'b1)
	begin
		s_lcd <= LCD_STATE_4_IDLE;
	end
	else
	begin
		s_lcd <= ns_lcd;
	end
end

always @(*)
begin
	ns_lcd = LCD_STATE_4_IDLE;

    case (s_lcd)
	LCD_STATE_4_IDLE:
		begin
			if ((idle_counter == CLOCK_CYCLES_FOR_IDLE_STATE) && 
				(enable == 1'b1))
			begin
				ns_lcd = LCD_STATE_0_OPERATION;
			end
			else
			begin
				ns_lcd = LCD_STATE_4_IDLE;
			end
		end
	LCD_STATE_0_OPERATION:
		begin
			if (state_0_counter == CLOCK_CYCLES_FOR_OPERATION_STATE)
			begin
				ns_lcd = LCD_STATE_1_ENABLE;
			end
			else
			begin
				ns_lcd = LCD_STATE_0_OPERATION;
			end
		end
	LCD_STATE_1_ENABLE:
		begin
			if (state_1_counter == CLOCK_CYCLES_FOR_ENABLE_STATE)
			begin
				ns_lcd = LCD_STATE_2_HOLD;
			end
			else
			begin
				ns_lcd = LCD_STATE_1_ENABLE;
			end
		end
	LCD_STATE_2_HOLD:
		begin
			if (state_2_counter == CLOCK_CYCLES_FOR_HOLD_STATE)
			begin
				ns_lcd = LCD_STATE_3_END;
			end
			else
			begin
				ns_lcd = LCD_STATE_2_HOLD;
			end
		end
	LCD_STATE_3_END:
		begin
			if (enable == 1'b0)
			begin
				ns_lcd = LCD_STATE_4_IDLE;
			end
			else
			begin
				ns_lcd = LCD_STATE_3_END;
			end
		end
	default:
		begin
			ns_lcd = LCD_STATE_4_IDLE;
		end
	endcase
end


/*****************************************************************************
 *                             Sequential logic                              *
 *****************************************************************************/

always @(posedge clk)
begin
	if (reset == 1'b1)
	begin
		LCD_ON <= 1'b0;
		LCD_BLON <= 1'b0;
	end
	else
	begin
		LCD_ON <= on;
		LCD_BLON <= back_light_on;
	end
end

always @(posedge clk)
begin
	if (reset == 1'b1)
	begin
		LCD_EN				<= 1'b0;
		LCD_RS				<= 1'b0;
		LCD_RW				<= 1'b0;
		data_out			<= 8'h00;
		transfer_complete	<= 1'b0;
	end
	else
	begin
		if (s_lcd == LCD_STATE_1_ENABLE)
		begin
			LCD_EN		<= 1'b1;
		end
		else
		begin
			LCD_EN		<= 1'b0;
		end

		if (s_lcd == LCD_STATE_4_IDLE)
		begin
			LCD_RS		<= rs;
			LCD_RW		<= rw;
			
			data_to_lcd <= data_in;
		end

		if (s_lcd == LCD_STATE_1_ENABLE)
		begin
			data_out	<= LCD_DATA;
		end

		if (s_lcd == LCD_STATE_3_END)
		begin
			transfer_complete	<= 1'b1;
		end
		else
		begin
			transfer_complete	<= 1'b0;
		end
	end
end

always @(posedge clk)
begin
	if (reset == 1'b1)
	begin
		idle_counter <= {NUM_BITS_FOR_IDLE_COUNTER{1'b0}};
	end
	else
	begin
		if (s_lcd == LCD_STATE_4_IDLE)
		begin
			idle_counter <= idle_counter + IDLE_COUNTER_INCREMENT;
		end
		else
		begin
			idle_counter <= {NUM_BITS_FOR_IDLE_COUNTER{1'b0}};
		end
	end
end

always @(posedge clk)
begin
	if (reset == 1'b1)
	begin
		state_0_counter <= {NUM_BITS_FOR_STATES_COUNTER{1'b0}};
		state_1_counter <= {NUM_BITS_FOR_STATES_COUNTER{1'b0}};
		state_2_counter <= {NUM_BITS_FOR_STATES_COUNTER{1'b0}};
	end
	else
	begin
		if (s_lcd == LCD_STATE_0_OPERATION)
		begin
			state_0_counter <= state_0_counter + COUNTER_INCREMENT;
		end
		else
		begin
			state_0_counter <= {NUM_BITS_FOR_STATES_COUNTER{1'b0}};
		end

		if (s_lcd == LCD_STATE_1_ENABLE)
		begin
			state_1_counter <= state_1_counter + COUNTER_INCREMENT;
		end
		else
		begin
			state_1_counter <= {NUM_BITS_FOR_STATES_COUNTER{1'b0}};
		end

		if (s_lcd == LCD_STATE_2_HOLD)
		begin
			state_2_counter <= state_2_counter + COUNTER_INCREMENT;
		end
		else
		begin
			state_2_counter <= {NUM_BITS_FOR_STATES_COUNTER{1'b0}};
		end
	end
end

/*****************************************************************************
 *                            Combinational logic                            *
 *****************************************************************************/

assign LCD_DATA	= 
		(((s_lcd == LCD_STATE_1_ENABLE) ||
		  (s_lcd == LCD_STATE_2_HOLD)) &&
		  (LCD_RW == 1'b0)) ? data_to_lcd : 8'hzz;

/*****************************************************************************
 *                              Internal Modules                             *
 *****************************************************************************/


endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区影院| 粉嫩aⅴ一区二区三区四区五区| 亚洲人成伊人成综合网小说| 国产午夜精品理论片a级大结局| 久久综合五月天婷婷伊人| 制服.丝袜.亚洲.中文.综合| 在线不卡一区二区| 7777女厕盗摄久久久| 9191久久久久久久久久久| 欧美精品日韩精品| 欧美一区二区三区视频在线观看| 欧美一区二区播放| 久久蜜桃一区二区| 日本一区二区三区在线观看| 国产精品视频一二三区| 1024成人网| 亚洲一区二区三区四区在线免费观看 | 精品久久人人做人人爽| 精品理论电影在线| 国产精品久久久久一区二区三区共 | 国产日韩精品一区二区三区| 欧美极品xxx| 一区二区三区视频在线看| 亚洲午夜精品17c| 免费久久99精品国产| 久久99精品视频| 国产黑丝在线一区二区三区| av在线一区二区三区| 欧美色视频在线| 欧美xxx久久| 国产精品精品国产色婷婷| 一区二区三区精品久久久| 免费看欧美美女黄的网站| 国产成a人亚洲| 欧美三级日韩在线| 精品国产一二三区| 国产精品成人免费在线| 丝袜美腿亚洲一区| 国内精品嫩模私拍在线| 91视频一区二区| 91麻豆精品国产91久久久久久久久 | 中文乱码免费一区二区| 一区二区三区四区不卡视频| 精品一区二区国语对白| 99久久久国产精品| 制服丝袜一区二区三区| 国产精品久久福利| 免费成人在线影院| 99热99精品| 欧美一区二区黄色| 国产精品久久免费看| 日韩电影网1区2区| 成人免费视频caoporn| 欧美日韩精品一区二区天天拍小说 | 亚洲超丰满肉感bbw| 国产麻豆成人传媒免费观看| 91高清在线观看| 久久青草欧美一区二区三区| 亚洲国产一区二区三区青草影视| 国产盗摄一区二区三区| 欧美日韩日日骚| 国产精品国产三级国产aⅴ原创 | 色欧美88888久久久久久影院| 日韩免费视频一区二区| 亚洲精品高清视频在线观看| 精品无码三级在线观看视频| 精品1区2区3区| 国产精品久久久久精k8| 九一久久久久久| 欧美色电影在线| 中文字幕乱码亚洲精品一区| 免费的成人av| 欧美日韩久久久| 亚洲美女屁股眼交| 国产91高潮流白浆在线麻豆| 欧美日韩和欧美的一区二区| 中文字幕视频一区| 国产一区二区三区四区五区美女| 欧美乱妇23p| 亚洲免费观看在线视频| 成人免费观看av| 久久蜜臀精品av| 久久精品国产成人一区二区三区 | 99在线精品一区二区三区| 亚洲精品一区二区三区精华液| 亚洲自拍与偷拍| 95精品视频在线| 日本一区二区三区电影| 久久精品国产网站| 欧美一区二区福利在线| 亚洲国产精品一区二区www| 91年精品国产| 中文字幕在线一区| 国产成人精品免费看| 亚洲精品在线网站| 毛片一区二区三区| 日韩欧美久久久| 日韩成人精品在线观看| 欧美日韩成人在线一区| 午夜电影一区二区| 欧美日韩一区在线| 亚洲国产欧美一区二区三区丁香婷| 99精品在线免费| 成人免费在线播放视频| 成人sese在线| 中文字幕在线观看一区二区| 91在线观看地址| 亚洲男人的天堂一区二区| 91蜜桃在线观看| 亚洲品质自拍视频| 在线影院国内精品| 亚洲自拍与偷拍| 在线综合视频播放| 裸体在线国模精品偷拍| 精品国精品国产| 国产一区二区三区免费观看| 久久久久久久网| 粉嫩绯色av一区二区在线观看| 日本一区二区免费在线观看视频 | 国产69精品久久777的优势| 久久久亚洲精品石原莉奈| 久久99日本精品| 久久久久久9999| 大美女一区二区三区| 国产精品久久久久久福利一牛影视| 91小视频免费看| 亚洲午夜激情av| 欧美成人三级电影在线| 国产成人av影院| 亚洲欧美一区二区三区久本道91 | 亚洲精品老司机| 欧美日韩精品一区二区在线播放| 免费观看成人av| 国产欧美日韩麻豆91| 色系网站成人免费| 日日夜夜精品视频免费| 久久久综合网站| 在线免费亚洲电影| 日本在线观看不卡视频| 国产亚洲精品精华液| 色哟哟国产精品| 免播放器亚洲一区| 中文字幕乱码亚洲精品一区| 欧日韩精品视频| 黄色成人免费在线| 亚洲免费在线看| 日韩精品一区二区三区蜜臀| 成人动漫一区二区在线| 亚洲3atv精品一区二区三区| 久久久一区二区三区| 欧美最新大片在线看 | 日韩欧美一区电影| av毛片久久久久**hd| 日韩精品一二区| 国产精品日韩成人| 欧美放荡的少妇| 粉嫩一区二区三区性色av| 亚洲图片欧美色图| 久久婷婷成人综合色| 欧美在线视频不卡| 国产一区二区h| 亚洲成人一区在线| 中文字幕欧美激情一区| 欧美一区二区人人喊爽| 91在线porny国产在线看| 裸体在线国模精品偷拍| 亚洲蜜桃精久久久久久久| www国产成人免费观看视频 深夜成人网 | 99久久免费国产| 精品一区二区在线免费观看| 一区二区激情小说| 国产婷婷色一区二区三区在线| 欧美人狂配大交3d怪物一区| 97国产一区二区| 国产一区福利在线| 日韩电影免费在线观看网站| 亚洲欧美日韩电影| 欧美国产精品久久| 日韩视频免费直播| 欧美无砖专区一中文字| 成人性生交大片免费看视频在线| 亚洲视频一二三| 国产视频在线观看一区二区三区| 91精品综合久久久久久| 色婷婷亚洲一区二区三区| 国产精品99久久久久久有的能看| 日韩专区中文字幕一区二区| 一区二区三区在线观看网站| 国产精品久久午夜| 欧美国产日本韩| 久久精品免视看| 亚洲一线二线三线视频| 成人av影院在线| 国产精品一区二区果冻传媒| 欧美a级理论片| 偷偷要91色婷婷| 亚洲影院久久精品| 一区二区三区在线看| 亚洲精品免费视频| 亚洲欧美一区二区久久|