vhdl设计FPGA读写DS18B20温度传感器quartus工程源码+文档说明 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity ds18B20 is port( clk : in std_logic;---50MHz rst_n: in std_logic; --复位信号输入 one_wire : inout std_logic; --DS18B20数据线 ---------------- dataout : out std_logic_vector(7 downto 0); --数码管数据输出 en : out std_logic_vector(3 downto 0)); --数码管位选信号 end ds18B20; architecture Behavioral of ds18B20 is signal dataout_buf:std_logic_vector(3 downto 0); signal count:std_logic_vector(17 downto 0); --分频计数器 signal cnt_scan:std_logic_vector(17 downto 0); --数码管的扫描显示计数器 signal clk_1us:std_logic;-- 1MHz 时钟 signal cnt_1us:integer range 0 to 750002;-- 1us延时计数子 signal cnt_1us_clear:std_logic;-- 请1us延时计数子 TYPE STATE_TYPE is (S00,S0,S1,S2,S3,S4,S5,S6,S7, WRITE0,WRITE1,WRITE00,WRITE01,READ0,READ1,READ2,READ3); --状态机 signal state: STATE_TYPE; --初始状态设置为复位状态 signal one_wire_buf:std_logic;-- One-Wire总线 缓存寄存器 signal temperature_buf:std_logic_vector(15 downto 0);-- 采集到的温度值缓存器(未处理) signal DS18B20_DATA_buf:std_logic_vector(15 downto 0);-- 采集到的温度值缓存器(未处理) signal DS18B20_DATA_buf_temp:std_logic_vector(15 downto 0);-- 采集到的温度值缓存器(未处理) signal step:integer range 0 to 50;--子状态寄存器 0~50 signal bit_valid:integer range 0 to 15;--有效位 signal one_wire_in:std_logic; signal t_buf:std_logic_vector(15 downto 0); signal t_buf_temp:std_logic_vector(15 downto 0); signal cnt:integer range 0 to 50;-- 计数子 -- //++++++++++++++++++++++++++++++++++++++ -- // 分频器50MHz->1MHz 开始 -- //++++++++++++++++++++++++++++++++++++++ begin -- process (clk,rst_n) -- begin -- if rising_edge(clk) then -- if(rst_n='0') then -- cnt <= 0; -- else -- if(cnt = 49)then -- cnt <= 0; -- else -- cnt <= cnt + 1; -- end if; -- end if; -- end if; -- end Process;
FPGA读写DS18B20温度并通过七段数码管显示verilog设计实验Quartus9.1工程源码,可以做为你的学习设计参考。 /ds18b20_seg7.v //---------------------------------------- module ds18b20_seg7( input CLOCK_50, // 板载50MHz时钟 input Q_KEY, // 板载按键RST // inout DS18B20, // output [7:0] SEG7_SEG, // 七段数码管 段脚 output [7:0] SEG7_SEL // 七段数码管 待译位脚 ); //++++++++++++++++++++++++++++++++++++++ // 获取温度值开始 //++++++++++++++++++++++++++++++++++++++ wire [15:0] t_buf; ds18b20_drive ds18b20_u0( .clk(CLOCK_50), .rst_n(Q_KEY), // .one_wire(DS18B20), // .temperature(t_buf) ); //------------------------------------- // 获取温度值 结束 //------------------------------------- //+++++++++++++++++++++++++++++++++++++ // 显示键盘值 开始 //+++++++++++++++++++++++++++++++++++++ seg7x8_drive seg7_u0( .i_clk (CLOCK_50), .i_rst_n (Q_KEY), .i_turn_off (8'b1110_1000), // 熄灭位[2进制] .i_dp (8'b0000_0010), // 小数点位[2进制] // 欲显数据[16进制] // 正负位 空白 十位 个位 小数位 .i_data ({12'h0, t_buf[15:12], 4'h0, t_buf[11:0]}), .o_seg (SEG7_SEG), .o_sel (SEG7_SEL) ); //------------------------------------- // 显示键盘值 结束 //------------------------------------- endmodule
用数码管与DS18B20设计温度报警器程序
2021-11-30 14:48:50 20KB 程序
1
项目中使用的一个DS18B20 动态模拟程序。。。。(分阶段,升温,恒温,以及模拟扰动)
2021-11-29 21:09:48 28KB DS18B20 LPC2138
1
proteus仿真,51挂三个ds18b20,数码管循环显示温度,包括rom搜索算法,内含Proteus仿真图形。c语言源代码,kill原工程文件,仿真通过,可以搜索ROM,读温度,单线控制。
2021-11-29 17:43:51 102KB ds18b20 rom搜索
1
DS18B20的示例。 DS18B20 经典的温度传感器, 简单好用,包含search rom的实现.需要与自己的one wire 主机进行对接
2021-11-29 16:08:44 609KB DS18B20 Sensor
1
BASYS2开发板 实现温度实时显示和越限报警
2021-11-28 15:29:41 1.99MB 数码管显示 DS18B20
1
基于C51单片机上的DS18B20驱动程序,多路DS18B20 + LCD1602,带protues仿真图
2021-11-28 10:51:21 66KB c语言
1
LPC2138的温度传感器DS18B20程序
2021-11-27 15:00:42 180KB ds18b20 arm
1
传感器作为一种获取信息的重要工具,在工业生产、科学技术等领域发挥着重大的作用。但随着微处理器技术的迅猛发展以及测控系统自动化、智能化的发展,传统的传感器已与各种微处理器相结合,并连入网络,形成了带有信息检测、信号处理、逻辑思维等一系列功能的智能,传感器。
2021-11-27 14:49:29 306KB 传感器
1