• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

酒精检测(MQ3气敏传感器)设计Verilog代码Quartus仿真讲解视频

09/03 08:57
584
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240925121914Z3.doc

共1个文件

名称:酒精检测(MQ3气敏传感器)设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

基于FPGA的酒精检测(MQ3气敏传感器)

研究思路和方法:

本设计采用FPGA作为主控芯片;采用MQ3气敏传感器检测酒精浓度;采用adc0832模块采集MQ3气敏传感器输出的模拟信号;通过矩阵键盘实现酒精浓度阈值的设定;采用LCD1602显示模块显示相应的酒精浓度和设定阈值;当酒精浓度超过设定的不同阈值时通过语音播报模块发出不同的提示声音。

清单:

FPGA最小系统

MQ3气敏传感器

dc0832模块

矩阵键盘

LCD1602

语音播报模块

MQ3气敏传感器

PCF8591模块

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

讲解视频:

https://www.bilibili.com/video/BV1qfxueyEM3/

设计文档:

顶层模块

I2c_dir

Keypad

Oled

Pcf8591

Pll

部分代码展示:

module?fpga_alcohol_test(
inputsys_clk_1,
inputkey,
outputoled_scl,
inoutoled_sda,
outputad_scl,
inoutad_sda,
???input???????????uart_rxd?,??
???output??????????uart_txd?,??
outputregled,
outputreg[1:0]yu_out,
input???[3:0]?key_row??,
output[3:0]?key_col??
);
parameter????SLAVE_ADDR?=??7'h48????????;?//?器件地址(SLAVE_ADDR)
parameter????BIT_CTRL???=??1'b0?????????;?//?字地址位控制参数(16b/8b)
parameter????CLK_FREQ???=?26'd50_000;?//?i2c_dri模块的驱动时钟频率(CLK_FREQ)
parameter????I2C_FREQ???=?18'd250???;?//?I2C的SCL时钟频率
reg[3:0]code[1:0];
reg[3:0]yuzhi[1:0];
regcode_num;
wire??dht11_done;
wire[7:0]??tempH;
wire[7:0]??tempL;
wire[7:0]??humidityH;
wire[7:0]??humidityL;
wire[3:0]key_value;//按键值
wirekey_flag;//按键按下的标志位
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_rh_wl?;????????????????//?i2c读写控制
wire???[?7:0]??i2c_data_r;????????????????//?i2c读出的数据
wire???[19:0]??num???????;????????????????//?数码管要显示的数据
wirelocked;
wiresys_clk;
regsys_rst_n;
reg?[3:0]rst_cnt;
assign??dht11_done?=?1'b1;
assign??tempH?=?8'd01;
assign??tempL?=?8'd02;
assign??humidityH?=?8'd03;
always?@(posedge?sys_clk_1?)?begin
???if(locked?==?1'b0)
??????rst_cnt??<=?4'd0;??
???else?if(key?==?1'b0)
??????rst_cnt??<=?4'd0;
???else?if(rst_cnt==4'd10)
??????rst_cnt??<=?4'd10;
???else
??????rst_cnt??<=?rst_cnt?+?1'b1;
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1130

  • 2-240925121914Z3.doc
    下载

相关推荐