Page 431 - 2
P. 431
assign LCD_RW = 0;
//ADC
always @(posedge clk)
if(!rst) begin clk_count <=8'h00; adc_clk <= 1'b0; end
else begin
if(clk_count<54) clk_count <= clk_count +1;
else begin clk_count <=8'h00; adc_clk <= ~adc_clk; end
end
always @(posedge clk)
if(!rst) begin state_1 <= START; adc_oe <=0; adc_ale <=0; adc_start <=0; end
else begin
case(state_1)
START: begin
if(adc_time <1) begin adc_ale <=0; adc_start <=0; end
else if(adc_time <2) begin adc_ale <=1; adc_start <=0; end
else if(adc_time <3) begin adc_ale <=1; adc_start <=1; end
else if(adc_time <6) begin adc_ale <=0; adc_start <=1; end
else begin adc_ale <=0; adc_start <=0; end
if(adc_time>100) state_1 <= START;
if(adc_eoc==0) state_1 <= EOC;
end
EOC: if(adc_eoc==1) state_1 <= OE;
OE: state_1 <= DATA_OUT;
DATA_OUT: begin adc_oe <=1; state_1 <= START; end
endcase
end
always @(posedge clk)
if(!rst) adc_time <=0;
else begin
if(state_1==START) adc_time <= adc_time +1;
else adc_time <=0;
end
//PUMP & LED
always @(posedge clk)
if(!rst) water <=0;
else begin if(state_1 == DATA_OUT) water <= ~adc_input; end
always@(posedge clk)
if(!rst) begin led_red<=0; led_blue<=0; motor<=0; end
else begin
- 431 -