温度传感器ds18b20读写Verilog驱动源码Quartus工程文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module temp_disp( input sys_clk , //输入的系统时钟 input sys_rst_n , //输入的复位信号 inout dq , //ds18b20温度传感器单总线 output [5:0] sel , //输出数码管位选信号 output [7:0] seg_led //输出数码管段选信号 ); //parameter define parameter POINT = 6'b000100; // 数码管小数点的位置 //wire define wire [19:0] temp_data; // 温度数值 wire sign; // 符号位 //***************************************************** //** main code //***************************************************** //例化动态数码管驱动模块 seg_led u_seg_led( //module clock .clk (sys_clk ), // 时钟信号 .rst_n (sys_rst_n), // 复位信号 //seg_led interface .seg_sel (sel ), // 位选 .seg_led (seg_led ), // 段选 //user interface .data (temp_data), // 显示的数值 .point (POINT ), // 小数点具体显示的位置,从高到低,高电平有效 .en (1'b1 ), // 数码管使能信号 .sign (sign ) // 符号位(高电平显示“-”号) ); //例化DS18B20驱动模块 ds18b20_dri u1_ds18b20_dri( //module clock .clk (sys_clk ), // 时钟信号(50MHz) .rst_n (sys_rst_n), // 复位信号 //user interface .dq (dq ), // DS18B20的DQ引脚数据 .temp_data (temp_data), // 转换后得到的温度值 .sign (sign ) // 符号位 ); endmodule
I2C接口距离传感器ap3216c读写Verilog驱动源码Quartus工程文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module ap3216c_top( //global clock input sys_clk , // 系统时钟 input sys_rst_n , // 系统复位 //ap3216c interface output ap_scl , // i2c时钟线 inout ap_sda , // i2c数据线 //user interface output [3:0] led , // led灯接口 output [5:0] sel , // 数码管位选 output [7:0] seg_led // 数码管段选 ); //parameter define parameter SLAVE_ADDR = 7'h1e ; // 器件地址 parameter BIT_CTRL = 1'b0 ; // 字地址位控制参数(16b/8b) parameter CLK_FREQ = 26'd50_000_000; // i2c_dri模块的驱动时钟频率(CLK_FREQ) parameter I2C_FREQ = 18'd250_000 ; // I2C的SCL时钟频率 //wire define wire clk ; // I2C操作时钟 wire i2c_exec ; // i2c触发控制 wire [15:0] i2c_addr ; // i2c操作地址 wire [ 7:0] i2c_data_w; // i2c写入的数据 wire i2c_done ; // i2c操作结束标志 wire i2c_ack ; // I2C应答标志 0:应答 1:未应答 wire i2c_rh_wl ; // i2c读写控制 wire [ 7:0] i2c_data_r; // i2c读出的数据 wire [15:0] als_data ; // ALS的数据 wire [ 9:0] ps_data ; // PS的数据 //***************************************************** //** main code //***************************************************** //例化i2c_dri,调用IIC协议 i2c_dri #( .SLAVE_ADDR (SLAVE_ADDR), // slave address从机地址,放此处方便参数传递 .CLK_FREQ (CLK_FREQ ), // i2c_dri模块的驱动时钟频率(CLK_FREQ) .I2C_FREQ (I2C_FREQ ) // I2C的SCL时钟频率 ) u_i2c_dri( //global clock .clk (sys_clk ), // i2c_dri模块的驱动时钟(CLK_FREQ) .rst_n (sys_rst_n ), // 复位信号 //i2c interface .i2c_exec