使用vivado2020.2,用zybo板,气压温度湿度传感器Grove-Temp&Humi&Barometer Sensor (BME280),实时时钟日历模块Pmod RTCC,128x32像素单色OLED屏Pmod OLED开发一个软件,要求:利用气压温度湿度传感器测量环境,并和实时日历一起显示在128x32像素单色OLED屏上,我不会创建工程,请详细说明并给出详细的全部代码
时间: 2023-12-06 11:04:51 浏览: 7
Verilog 代码(续):
```verilog
[19:0] * bme280_dig_H2[15:0]) >> 10;
bme280_comp_data <= bme280_comp_data - ((bme280_dig_H3[7:0] * bme280_comp_data) >> 4);
bme280_comp_data <= bme280_comp_data - (bme280_dig_H4[7:0] << 12);
bme280_comp_data <= bme280_comp_data - (bme280_dig_H5[7:0] * ((bme280_comp_data >> 1) - 16384) >> 10);
bme280_comp_data <= bme280_comp_data - (bme280_dig_H6[7:0] * ((bme280_comp_data >> 1) - 16384) * ((bme280_dig_H6[7:0] * ((bme280_comp_data >> 1) - 16384)) >> 10) >> 11);
bme280_humidity <= (bme280_comp_data * 1000) >> 16;
end
end
always @(posedge CLK_100MHZ) begin
if (rst) begin
current_second <= 0;
current_minute <= 0;
current_hour <= 0;
current_day <= 0;
current_month <= 0;
current_year <= 0;
end else begin
if (rtcc_int) begin
if (current_second == 59) begin
current_second <= 0;
if (current_minute == 59) begin
current_minute <= 0;
if (current_hour == 23) begin
current_hour <= 0;
if (current_day == rtcc_days_in_month[current_month]) begin
current_day <= 1;
if (current_month == 12) begin
current_month <= 1;
current_year <= current_year + 1;
end else begin
current_month <= current_month + 1;
end
end else begin
current_day <= current_day + 1;
end
end else begin
current_hour <= current_hour + 1;
end
end else begin
current_minute <= current_minute + 1;
end
end else begin
current_second <= current_second + 1;
end
end
end
end
// Pmod OLED 模块
wire [7:0] oled_data;
wire oled_cs_n;
wire oled_dc_n;
wire oled_res_n;
wire oled_sclk;
wire oled_mosi;
assign oled_sclk = CLK_100MHZ;
assign oled_cs_n = 1'b1;
assign oled_dc_n = 1'b1;
assign oled_res_n = 1'b1;
// OLED 模块的实例化
oled oled_inst (
.sclk(oled_sclk),
.cs_n(oled_cs_n),
.dc_n(oled_dc_n),
.res_n(oled_res_n),
.mosi(oled_mosi),
.data(oled_data)
);
// OLED 模块初始化
initial begin
#500000;
oled_cs_n <= 1'b0;
#1;
oled_res_n <= 1'b0;
#10;
oled_res_n <=