FPGA读写DS18B20温度并通过七段数码管显示verilog设计实验Quartus9.1工程源码,可以做为你的学习设计参考。 /ds18b20_seg7.v //---------------------------------------- module ds18b20_seg7( input CLOCK_50, // 板载50MHz时钟 input Q_KEY, // 板载按键RST // inout DS18B20, // output [7:0] SEG7_SEG, // 七段数码管 段脚 output [7:0] SEG7_SEL // 七段数码管 待译位脚 ); //++++++++++++++++++++++++++++++++++++++ // 获取温度值开始 //++++++++++++++++++++++++++++++++++++++ wire [15:0] t_buf; ds18b20_drive ds18b20_u0( .clk(CLOCK_50), .rst_n(Q_KEY), // .one_wire(DS18B20), // .temperature(t_buf) ); //------------------------------------- // 获取温度值 结束 //------------------------------------- //+++++++++++++++++++++++++++++++++++++ // 显示键盘值 开始 //+++++++++++++++++++++++++++++++++++++ seg7x8_drive seg7_u0( .i_clk (CLOCK_50), .i_rst_n (Q_KEY), .i_turn_off (8'b1110_1000), // 熄灭位[2进制] .i_dp (8'b0000_0010), // 小数点位[2进制] // 欲显数据[16进制] // 正负位 空白 十位 个位 小数位 .i_data ({12'h0, t_buf[15:12], 4'h0, t_buf[11:0]}), .o_seg (SEG7_SEG), .o_sel (SEG7_SEL) ); //------------------------------------- // 显示键盘值 结束 //------------------------------------- endmodule
8段数码管静态显示Verilog设计逻辑Quartus工程源码文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module seg_led_static_top ( input sys_clk , // 系统时钟 input sys_rst_n, // 系统复位信号(低有效) output [5:0] sel , // 数码管位选 output [7:0] seg_led // 数码管段选 ); //parameter define parameter TIME_SHOW = 25'd25000_000; // 数码管变化的时间间隔0.5s //wire define wire add_flag; // 数码管变化的通知信号 //***************************************************** //** main code //***************************************************** //每隔0.5s产生一个时钟周期的脉冲信号 time_count #(.MAX_NUM(TIME_SHOW) ) u_time_count( .clk (sys_clk ), .rst_n (sys_rst_n), .flag (add_flag ) ); //每当脉冲信号到达时,使数码管显示的数值加1 seg_led_static u_seg_led_static ( .clk (sys_clk ), .rst_n (sys_rst_n), .add_flag (add_flag ), .sel (sel ), .seg_led (seg_led ) ); endmodule