名称:ds18b20温度显示及串口发送设计Verilog代码Quartus? 开拓者开发板
软件:Quartus
语言:Verilog
代码功能:
ds18b20温度显示及串口发送
1、驱动ds18b20温度温度传感器,读取温度
2、温度显示在数码管,并可以通过串口发送至电脑
3、当温度达到报警预置时,报警
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在开拓者开发板验证,开拓者开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
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