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

ds18b20温度显示及串口发送设计verilog代码Quartus 开拓者开发板

09/18 09:47
408
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241022201415Q5.doc

共1个文件

名称:ds18b20温度显示及串口发送设计Verilog代码Quartus? 开拓者开发板

软件:Quartus

语言:Verilog

代码功能:

ds18b20温度显示及串口发送

1、驱动ds18b20温度温度传感器,读取温度

2、温度显示在数码管,并可以通过串口发送至电脑

3、当温度达到报警预置时,报警

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

本代码已在开拓者开发板验证,开拓者开发板如下,其他开发板可以修改管脚适配:

开拓者开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚约束

6. Testbench

7. 仿真图

整体模块仿真

温度temp_data=2516,即25.16°,数码管显示位选和段选为sel,seg_led,蜂鸣器beep为低电平,不报警,串口信号tx发送串行温度数据到电脑。

串口发送模块仿真

仿真图分析:串口发送数据为tx_data=00011001,uart_txd信号为起始位低电平,tx_data[0]~tx_data[7],最后是停止位高电平。tx_flag在一次完整发送周期内保持高电平,低电平时表示一个字节发送完成。

蜂鸣器模块仿真

蜂鸣器模块主要是产生三种不同频率的波形,beep_clk1,beep_clk2,beep_clk3,上图显示了三种不同的频率。beep_clk1=10Hz,beep_clk2=5Hz,beep_clk3=2.5Hz。当输入din大于35度时,蜂鸣器输出beep_clk1,当大于30度是,输出beep_clk2,小于10度时输出beep_clk3。

数码管显示模块

数码管显示模块用于控制数码管的段选和位选,段选seg_led表示8段数码管所亮的数字,位选表示当前点亮哪个数码管。Dot_disp表示是否显示小数点,当dot_disp为低电平是显示小数点。图中可看出数码管显示如下图

部分代码展示:

//温度显示,串口发送,报警
module?temp_disp(
????input????????????sys_clk?????,????//输入的系统时钟
????input????????????sys_rst_n???,????//输入的复位信号
????inout????????????dq??????????,????//ds18b20温度传感器单总线
	?output???????????tx??????????,????//串口发送
	?output???????????beep_out????,????//蜂鸣器报警
????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),???????//?显示的数值,对采集到的温度进行转换,保留2位小数
????.point?????????(POINT????),???????//?小数点具体显示的位置,从高到低,高电平有效
????.en????????????(1'b1?????),???????//?数码管使能信号
????.sign??????????(sign?????)????????//?符号位(高电平显示“-”号)
);

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

  • 2-241022201415Q5.doc
    下载

相关推荐