使用vivado2020.2,用zybo板,气压温度湿度传感器Grove-Temp&Humi&Barometer Sensor (BME280),实时时钟日历模块Pmod RTCC,128x32像素单色OLED屏Pmod OLED开发一个软件,要求:利用气压温度湿度传感器测量环境,并和实时日历一起显示在128x32像素单色OLED屏上,我不会创建工程,请详细说明并给出详细的全部代码
时间: 2023-12-07 08:02:41 浏览: 64
Verilog 代码(续):
```verilog
oled_inst.cmd(8'hC8); // Set COM Output Scan Direction
oled_inst.cmd(8'hDA); // Set COM Pins Hardware Configuration
oled_inst.cmd(8'h12);
oled_inst.cmd(8'h81); // Set Contrast Control
oled_inst.cmd(8'hCF);
oled_inst.cmd(8'hD9); // Set Pre-charge Period
oled_inst.cmd(8'hF1);
oled_inst.cmd(8'hDB); // Set VCOMH Deselect Level
oled_inst.cmd(8'h40);
oled_inst.cmd(8'hA4); // Set Entire Display On/Off
oled_inst.cmd(8'hA6); // Set Normal/Inverse Display
oled_inst.cmd(8'hAF); // Set Display On
oled_cs_n <= 1'b0;
oled_inst.cmd(8'h21); // Set Column Address
oled_inst.cmd(8'h00);
oled_inst.cmd(8'h7F);
oled_inst.cmd(8'h22); // Set Page Address
oled_inst.cmd(8'h00);
oled_inst.cmd(8'h03);
oled_cs_n <= 1'b1;
#1000000;
end
// OLED 显示函数
// 参数:
// x: 横坐标,0 到 127
// y: 纵坐标,0 到 3
// byte: 字节,要在 OLED 上显示的内容
//
// 说明:
// OLED 由 4 页组成,每页 32 行,每行 8 个像素,横坐标 0 到 127,纵坐标 0 到 3。
// 每个字节在 OLED 上占 8 个像素,从左到右依次为 bit7 到 bit0。
//
function void oled_display (input [6:0] x, input [1:0] y, input [7:0] byte);
reg [6:0] addr_x;
reg [4:0] addr_y;
reg [7:0] data;
addr_x = x;
addr_y = y;
case (y)
2'b00: addr_y = 0x00 | addr_y;
2'b01: addr_y = 0x40 | addr_y;
2'b10: addr_y = 0x80 | addr_y;
2'b11: addr_y = 0xC0 | addr_y;
endcase
oled_cs_n <= 1'b0;
阅读全文