【正文】
s,flag_init。 always @ (posedge lcd_clk or negedge sys_rst) begin //100kHz if(!sys_rst) begin t_s =0。 t0_clk=0。 t1_clk=0。 t_char=0。 sec =0。 min =0。 hour =0。 flag_s =0。 flag_init =139。b1。 char_Y = 239。b10。 end else begin if(t_s == (401)) begin t_s =0。 flag_s=139。b1。 data_deal。 //task end else t_s =t_s+139。b1。 if(flag_init) begin t0_clk = t0_clk +139。b1。 case(t0_clk) 1 : begin lcd_init_en =139。b0。 end 2 : begin lcd_init_en =139。b1。 end 3 : begin lcd_init_en =139。b1。 end 4 : begin lcd_init_en =139。b0。 end T_lcd_init: begin flag_init =0。 t0_clk =0。 end default: lcd_init_en =0。 endcase end else if(flag_s) begin t1_clk = t1_clk +139。b1。 case(t1_clk) 1 : begin lcd_char_en =139。b0。end 2 : begin lcd_char_en =139。b1。end 3 : begin lcd_char_en =139。b1。end 4 : begin lcd_char_en =139。b0。end T_w_char: begin if(t_char == 339。b111) begin t_char=0。 flag_s =0。 end else t_char =t_char+139。b1。 t1_clk =0。 end default: lcd_char_en =0。 endcase case(t_char) //2 3 4 5 0 : begin char_X =339。b000。 char_LR =0。 char_data =time_out[47:40]。 end //x0:00:00 1 : begin char_X =339。b001。 char_LR =0。 char_data =time_out[39:32]。 end //0x:00:00 2 : begin char_X =339。b010。 char_LR =0。 char_data =839。h3a。 end //: ascii 058 3 : begin char_X =339。b011。 char_LR =0。 char_data =time_out[31:24]。 end //00:x0:00 4 : begin char_X =339。b100。 char_LR =0。 char_data =time_out[23:16]。 end //00:0x:00 5 : begin char_X =339。b101。 char_LR =0。 char_data =839。h3a。 end //: ascii 058 6 : begin char_X =339。b110。 char_LR =0。 char_data =time_out[15: 8]。 end //00:00:x0 7 : begin char_X =339。b111。 char_LR =0。 char_data =time_out[7 : 0]。 end endcase end end end task data_deal。 begin if(sec == 59) if(min ==59) if(hour == 23) begin hour=0。min =0。sec =0。 end else begin hour=hour + 139。b1。 min =0。 sec=0