⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_control.v

📁 ise9.1官方的使用手册中配套用的fpga入门代码
💻 V
📖 第 1 页 / 共 3 页
字号:
			sf_d_temp = 8'b01001100; // L	 			if 	(count == `TIME3) begin					next_state <= `word8; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) & (count <= `TIME3)) begin					next_state <= `word7; control = 3'b100; state_flag <= 1'b0; end 			else begin next_state <= `word7; control = 3'b101; state_flag <= 1'b0; end			end // case			`word8 : begin			sf_d_temp = 8'b01100001; // a	 			if 	(count == `TIME3) begin					next_state <= `word9; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) & (count <= `TIME3)) begin					next_state <= `word8; control = 3'b100; state_flag <= 1'b0; end  			else begin next_state <= `word8; control = 3'b101; state_flag <= 1'b0; end			end // case			`word9 : begin			sf_d_temp = 8'b01110000; // p	 			if 	(count == `TIME3) begin					next_state <= `word10; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `word9; control = 3'b100; state_flag <= 1'b0; end  			else begin next_state <= `word9; control = 3'b101; state_flag <= 1'b0; end			end // case			`word10 : begin			sf_d_temp = 8'b00111010; // [colon]					if 	(count == `TIME3) begin					next_state <= `time_display1; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `word10; control = 3'b100; state_flag <= 1'b0; end			else begin next_state <= `word10; control = 3'b101; state_flag <= 1'b0; end			end // case		//--------------------- Time Display--------------------------------------		`time_display1 : begin			sf_d_temp = 8'b10000110; // Set Address hx06	 			if (count == `TIME3) begin					next_state <= `time_display2; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display1; control = 3'b000; state_flag <= 1'b0; end  			else begin next_state <= `time_display1; control = 3'b001; state_flag <= 1'b0; end			end // case		`time_display2 : begin   // Display minute digit			case (minutes)  				4'b0000 : sf_d_temp = 8'b00110000; //0      		4'b0001 : sf_d_temp = 8'b00110001; //1      		4'b0010 : sf_d_temp = 8'b00110010; //2      		4'b0011 : sf_d_temp = 8'b00110011; //3      		4'b0100 : sf_d_temp = 8'b00110100; //4      		4'b0101 : sf_d_temp = 8'b00110101; //5      		4'b0110 : sf_d_temp = 8'b00110110; //6      		4'b0111 : sf_d_temp = 8'b00110111; //7      		4'b1000 : sf_d_temp = 8'b00111000; //8      		4'b1001 : sf_d_temp = 8'b00111001; //9				default : sf_d_temp = 8'b00101101; //[-]			endcase			if (count == `TIME3) begin					next_state <= `time_display3; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display2; control = 3'b100; state_flag <= 1'b0; end  			else begin next_state <= `time_display2; control = 3'b101; state_flag <= 1'b0; end			end // case		`time_display3 : begin			sf_d_temp = 8'b10000111; // Set Address hx07	 			if (count == `TIME3) begin					next_state <= `time_display4; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display3; control = 3'b000; state_flag <= 1'b0; end 			else begin next_state <= `time_display3; control = 3'b001; state_flag <= 1'b0; end			end // case		`time_display4 : begin			sf_d_temp = 8'b00111010; // [colon]	 			if (count == `TIME3) begin					next_state <= `time_display5; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display4; control = 3'b100; state_flag <= 1'b0; end  			else begin next_state <= `time_display4; control = 3'b101; state_flag <= 1'b0; end			end // case			`time_display5 : begin			sf_d_temp = 8'b10001000; // Set Address hx08	 			if (count == `TIME3) begin					next_state <= `time_display6; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display5; control = 3'b000; state_flag <= 1'b0; end  			else begin next_state <= `time_display5; control = 3'b001; state_flag <= 1'b0; end			end // case			`time_display6 : begin   // Display tens of seconds digit			case (tens)				4'b0000 : sf_d_temp = 8'b00110000; //0      		4'b0001 : sf_d_temp = 8'b00110001; //1      		4'b0010 : sf_d_temp = 8'b00110010; //2      		4'b0011 : sf_d_temp = 8'b00110011; //3      		4'b0100 : sf_d_temp = 8'b00110100; //4      		4'b0101 : sf_d_temp = 8'b00110101; //5      		4'b0110 : sf_d_temp = 8'b00110110; //6      		4'b0111 : sf_d_temp = 8'b00110111; //7      		4'b1000 : sf_d_temp = 8'b00111000; //8      		4'b1001 : sf_d_temp = 8'b00111001; //9				default : sf_d_temp = 8'b00101101; //[-]			endcase			if (count == `TIME3) begin					next_state <= `time_display7; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display6; control = 3'b100; state_flag <= 1'b0; end 			else begin next_state <= `time_display6; control = 3'b101; state_flag <= 1'b0; end			end // case		`time_display7 : begin			sf_d_temp = 8'b10001001; // Set Address hx09	 			if (count == `TIME3) begin					next_state <= `time_display8; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display7; control = 3'b000; state_flag <= 1'b0; end  			else begin next_state <= `time_display7; control = 3'b001; state_flag <= 1'b0; end			end // case		`time_display8 : begin   // Display seconds digit			case (ones)    		 				4'b0000 : sf_d_temp = 8'b00110000; //0 						4'b0001 : sf_d_temp = 8'b00110001; //1 						4'b0010 : sf_d_temp = 8'b00110010; //2 						4'b0011 : sf_d_temp = 8'b00110011; //3						4'b0100 : sf_d_temp = 8'b00110100; //4					4'b0101 : sf_d_temp = 8'b00110101; //5		 				4'b0110 : sf_d_temp = 8'b00110110; //6					4'b0111 : sf_d_temp = 8'b00110111; //7					4'b1000 : sf_d_temp = 8'b00111000; //8					4'b1001 : sf_d_temp = 8'b00111001; //9					default : sf_d_temp = 8'b00101101; //[-]			endcase			if (count == `TIME3) begin					next_state <= `time_display9; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display8; control = 3'b100; state_flag <= 1'b0; end  			else begin next_state <= `time_display8; control = 3'b101; state_flag <= 1'b0; end			end // case		`time_display9 : begin			sf_d_temp = 8'b10001010; // Set Address hx0A	 			if (count == `TIME3) begin					next_state <= `time_display10; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display9; control = 3'b000; state_flag <= 1'b0; end 			else begin next_state <= `time_display9; control = 3'b001; state_flag <= 1'b0; end			end // case		`time_display10 : begin			sf_d_temp = 8'b00111010; // [colon]	 			if (count == `TIME3) begin					next_state <= `time_display11; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display10; control = 3'b100; state_flag <= 1'b0; end			else begin next_state <= `time_display10; control = 3'b101; state_flag <= 1'b0; end			end // case			`time_display11 : begin			sf_d_temp = 8'b10001011; // Set Address hx0B	 			if (count == `TIME3) begin					next_state <= `time_display12; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display11; control = 3'b000; state_flag <= 1'b0; end			else begin next_state <= `time_display11; control = 3'b001; state_flag <= 1'b0; end			end // case		`time_display12 : begin   // Display tenths of second digit			case (tenths)				4'b0000 : sf_d_temp = 8'b00110000; //0      		4'b0001 : sf_d_temp = 8'b00110001; //1      		4'b0010 : sf_d_temp = 8'b00110010; //2      		4'b0011 : sf_d_temp = 8'b00110011; //3      		4'b0100 : sf_d_temp = 8'b00110100; //4      		4'b0101 : sf_d_temp = 8'b00110101; //5      		4'b0110 : sf_d_temp = 8'b00110110; //6      		4'b0111 : sf_d_temp = 8'b00110111; //7      		4'b1000 : sf_d_temp = 8'b00111000; //8      		4'b1001 : sf_d_temp = 8'b00111001; //9				default : sf_d_temp = 8'b00101101; //[-]			endcase                                                                 			if (count == `TIME3) begin					next_state <= `time_display13; control = 3'b101; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display12; control = 3'b100; state_flag <= 1'b0; end			else begin next_state <= `time_display12; control = 3'b101; state_flag <= 1'b0; end			end // case		`time_display13 : begin			sf_d_temp = 8'b10001100; // Set Address hx0C	 			if (count == `TIME3) begin					next_state <= `time_display14; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display13; control = 3'b000; state_flag <= 1'b0; end			else begin next_state <= `time_display13; control = 3'b001; state_flag <= 1'b0; end			end // case		`time_display14 : begin   // Display hundredths of second digit			case (hundredths)				4'b0000 : sf_d_temp = 8'b00110000; //0      		4'b0001 : sf_d_temp = 8'b00110001; //1      		4'b0010 : sf_d_temp = 8'b00110010; //2      		4'b0011 : sf_d_temp = 8'b00110011; //3      		4'b0100 : sf_d_temp = 8'b00110100; //4      		4'b0101 : sf_d_temp = 8'b00110101; //5      		4'b0110 : sf_d_temp = 8'b00110110; //6      		4'b0111 : sf_d_temp = 8'b00110111; //7      		4'b1000 : sf_d_temp = 8'b00111000; //8      		4'b1001 : sf_d_temp = 8'b00111001; //9				default : sf_d_temp = 8'b00101101; //[-]			endcase                                            			if (count == `TIME3) begin				if ((mode == 1'b1) && (lap_flag == 1'b1)) begin // Clock mode lap_flag triggered					next_state <= `lap_display1; control = 3'b101; state_flag <= 1'b1; end				else if ((mode == 1'b1) && (lap_flag == 1'b0)) begin // Clock mode					if (clock_flag == 1'b1) begin						next_state <= `init6; control = 3'b101; state_flag <= 1'b1; set_clock_flag = 1'b0; end					else begin next_state <= `lap_display1; control = 3'b101; state_flag <= 1'b1; end					end // else if					else if (mode == 1'b0) begin // timer mode					if (timer_flag == 1'b1) begin						next_state <= `init6; control = 3'b101; state_flag <= 1'b1; set_timer_flag = 1'b0; end					else begin next_state <= `time_display1; control = 3'b101; state_flag <= 1'b1; end					end // else if				else begin next_state <= `time_display1; control = 3'b101; state_flag <= 1'b1; end				end // if				else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `time_display14; control = 3'b100; state_flag <= 1'b0; end			else begin next_state <= `time_display14; control = 3'b101; state_flag <= 1'b0; end			end // case//--------------------- Lap Time Display--------------------------------------		`lap_display1 : begin			sf_d_temp = 8'b11000110; // Set Address hx46	 			if (count == `TIME3) begin					next_state <= `lap_display2; control = 3'b001; state_flag <= 1'b1; end			else if ((count > `TIME2) && (count <= `TIME3)) begin					next_state <= `lap_display1; control = 3'b000; state_flag <= 1'b0; end			else begin next_state <= `lap_display1; control = 3'b001; state_flag <= 1'b0; end			end // case		`lap_display2 : begin  // Display minute digit			case (lap_min)  				4'b0000 : sf_d_temp = 8'b00110000; //0      		4'b0001 : sf_d_temp = 8'b00110001; //1      		4'b0010 : sf_d_temp = 8'b00110010; //2      		4'b0011 : sf_d_temp = 8'b00110011; //3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -