毕业设计(论文)知识产权声明
毕业设计(论文)知识产权声明
本人完全了解西安工业大学有关保护知识产权的规定,即:本科学生在校攻读学士学位期间毕业设计(论文)工作的知识产权属于西安工业大学。本人保证毕业离校后,使用毕业设计(论文)工作成果或用毕业设计(论文)工作成果发表论文时署名单位仍然为西安工业大学。学校有权保留送交的毕业设计(论文)的原文或复印件,允许毕业设计(论文)被查阅和借阅;学校可以公布毕业设计(论文)的全部或部分内容,可以采用影印、缩印或其他复制手段保存毕业设计(论文)。
(保密的毕业设计(论文)在解密后应遵守此规定)
毕业设计(论文)作者签名:
指导教师签名: 日期:
27
毕业设计(论文)独创性声明
毕业设计(论文)独创性声明
秉承学校严谨的学风与优良的科学道德,本人声明所呈交的毕业设计(论文)是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经发表或撰写过的成果,不包含他人已申请学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了致谢。
毕业设计(论文)与资料若有不实之处,本人承担一切相关责任。
毕业设计(论文)作者签名:
指导教师签名:
日期:
28
附录一
温度测量最小系统硬件图
29
附录二
Verilog HDL源程序,一共包含三个“.v”文件 1. ds18b20_drive.v module ds18b20_drive(
input clk, // 50MHz时钟 input rst_n, // 异步复位
inout one_wire, // One-Wire总线 output [15:0] temperature // 输出温度值 );
//++++++++++++++++++++++++++++++++++++++ // 分频器50MHz->1MHz 开始
//++++++++++++++++++++++++++++++++++++++ reg [5:0] cnt; // 计数子
always @ (posedge clk, negedge rst_n) if (!rst_n) cnt <= 0; else
if (cnt == 49) cnt <= 0;
else
cnt <= cnt + 1'b1;
reg clk_1us; // 1MHz 时钟
always @ (posedge clk, negedge rst_n) if (!rst_n)
clk_1us <= 0; else
if (cnt <= 24) // 24 = 50/2 - 1 clk_1us <= 0; else
clk_1us <= 1; //-------------------------------------- // 分频器50MHz->1MHz 结束
//--------------------------------------
//++++++++++++++++++++++++++++++++++++++ // 延时模块 开始
30
//++++++++++++++++++++++++++++++++++++++
reg [19:0] cnt_1us; // 1us延时计数子 reg cnt_1us_clear; // 请1us延时计数子
always @ (posedge clk_1us) if (cnt_1us_clear) cnt_1us <= 0; else
cnt_1us <= cnt_1us + 1'b1; //-------------------------------------- // 延时模块 结束
//--------------------------------------
//++++++++++++++++++++++++++++++++++++++ // DS18B20状态机 开始
//++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++ // 格雷码
parameter S00 = 5'h00; parameter S0 = 5'h01; parameter S1 = 5'h03; parameter S2 = 5'h02; parameter S3 = 5'h06; parameter S4 = 5'h07; parameter S5 = 5'h05; parameter S6 = 5'h04; parameter S7 = 5'h0C; parameter WRITE0 = 5'h0D; parameter WRITE1 = 5'h0F; parameter WRITE00 = 5'h0E; parameter WRITE01 = 5'h0A; parameter READ0 = 5'h0B; parameter READ1 = 5'h09; parameter READ2 = 5'h08; parameter READ3 = 5'h18;
reg [4:0] state; // 状态寄存器 //-------------------------------------
31