Harbin Institute of Technology
《微机与微控制器原理》课
课程设计报告
基于数字温度传感器的数字温度设计
******* **
学 号: *********1
班 级: 1705008
**** ***
哈尔滨工业大学
《微机与微控制器原理》课程设计评分及标准
课程设计题目: | |||
学号: 姓名: 同组人学号及姓名: | |||
考察项目 | 考察内容 | 得分 | 备注 |
A任务要求及工作原理100分 | 任务理解明确,设计方案可行,系统原理框图、准确(90-100分) | ||
任务理解明确,设计方案可行,系统原理框图较为全面(80-89分) | |||
任务理解明确,设计方案较合理,系统原理框图不全(60-79分) | |||
任务理解不明确,设计方案不合理,原理框图不全(60分以下) | |||
B实现过程100分 | 按时完成、实现过程正确、解决问题能力强(90-100分) | ||
按时完成、实现过程正确、具有解决问题能力(80-89分) | |||
按时完成、实现过程正确、问题能力较弱(60-79分) | |||
不能按时完成、实现过程不正确、解决能力较弱(60分以下) | |||
C结果验收100分 | 实验数据处理准确规范、结果合理、结论正确(90-100分) | ||
实验数据处理准确、结果合理、结论正确(80-89分) | |||
实验数据处理较准确、结果基本合理、结论基本正确(60-79分) | |||
有大量错误,未达到课程设计目的(60分以下) | |||
D实验报告内容 100分 | 格式规范;内容充实准确,分析深刻,程序完整、正确、规范(90-100分) | ||
格式规范;内容完整准确;分析正确,程序完整、正确、较规范(80-89分) | |||
格式较规范;内容较完整;分析基本正确,程序完整、正确、不规范(60-79分) | |||
格式不规范;内容不完整,程序不完整、正确、不规范(60分以下) | |||
综合评分 | |||
评 语 | 评阅教师签字(盖章): 年 月 日 | ||
课程设计题目: 基于数字温度传感器的数字温度计
一、课程设计任务要求
利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其测量温度为-55℃~125℃.数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,采用3位共阳LED来进行显示。
二、工作原理
从温度传感器DS18B20可以很容易读取被测温度值,进行转换即可满足实验要求,由单片
机对DS18B20进行初始化,先将DQ拉高再将其拉低电平持续480us~960us后释放,等待15us~60us,若DS18B20被初始化成功,则会由DQ线发出一持续60~240us的低电平,由其判断是否初始化成功,再通过写入程序对芯片发出指令,主要指令为跳过RAM匹配,启动温度转换,当单片机从DS18B20芯片读取数据时,将DQ从高拉到低进行初始化,在此后15us内若DQ为1则采样1,若为0,则采用0(注意当DQ拉低后需延时一段时间等待 DQ电平稳定),采用两个8位变量分别记录温度低位与高位,再通过一个16位的全局变量,将从芯片中读取的温度进行整合得到所需数据,通过数据转换函数将所得数据转为十进制温度,通过表中数据传递至数码管端显示。
独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 ° C至+125 ℃ 。华氏相当于是-67 ° F到257° F。在摄氏度-10 ° C至+85 ° C范围内精度为±0.5 ° C
温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消费电子产品温度计、或任何热敏感系统
描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数)。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。
DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。
三、单片机应用系统设计及原理图
应用系统电路图设计
四、实现方法及扩展或创新设计
1.基本功能实现方法
通过使单片机使DS18B20进行初始化,通过写函数对DS18B20发出指令,跳过匹配RAM,进行温度转换的指令,通过单片机对DS18B20发出读时序,开始采集DS18B20所采集到的温度,并通过温度处理函数将所得的温度进行转换,通过数码管显示函数将温度显示出来。
2、自己发挥的扩展创新设计
增添了一个蜂鸣器,当温度低于或高于一定值时,蜂鸣器会接收到P3.0口发出的脉冲,做出报警的效果,当温度回复到正常范围时,蜂鸣器停止报警,当蜂鸣器报警时并不影响数码管的显示
五、实现步骤
1、Proteus仿真
a.在Proteus中打开设计文档;
b.建立实验程序并编译,加载hex文件,仿真;
c.如不能正常工作,打开调试窗口进行调试。
2、自己发挥的扩展设计实现步骤
通过改变DS18B20所得的温度值,使其低于或高于阈值,蜂鸣器进行报警,当其恢复时,蜂鸣器停止报警。
六、数据记录与结果分析
进行数据记录,记录调试过程
观察实验结果,并进行分析。
七、具体分工
任杰:查阅DS18B20芯片手册,编写程序,设计电路,软件仿真,撰写报告
菅宇鹏:查阅DS18B20芯片手册,软件调试,撰写报告
八、建议与体会
通过本次课程设计,知道了面对一个陌生的芯片到使用它的全过程,通过查阅芯片的使用方式,数据手册,通过编写程序来对其进行使用,在一定程度上让我知道了延时的重要性,延时准确,才能使其工作,才能更稳定的读取数据,延时函数的设计及其使用很大程度上影响了我们所得数据的稳定性,在编写程序的过程中需要不断地调试来进行纠正,不断的改写程序到问题所出现的地方,将函数分开写可以更快更好的到程序的问题并进行改正,最后达到实验要求。在实验编程中熟悉了对汇编语言的运用,提高了自己的编程能力。
九、实验程序(程序需要完整、规范且有注释,原则上要求汇编)
#include "reg52.h" //编译器预处理
typedef unsigned int u16;
typedef unsigned char u8; c++课程设计报告
sbit LSA=P2^3; //管脚命名
sbit LSB=P2^4;
sbit LSC=P2^5;
sbit LSD=P2^6;
sbit BUZZ=P3^0;
sbit DQ=P3^4; //P3.4的命名为DQ
u8 DisplayData[8]; //设置数组来传递数据
u8 code smgduan[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6};//共阳
数码管的显示前十为0~9,最后一位为字符c
u8 buzz=0;//定义使蜂鸣器鸣叫的数值
void delay(u16 i)//延时函数6us左右
{
while(i--);
}
void Delay1ms(u16 y)//Delaylms 延时函数
{
u16 x;
for( ; y>0; y--)
{
for(x=110; x>0; x--);
}
}
u8 Ds18b20Init()//参考DS18B20手册初始化方式
{
u8 i;
DQ = 1;
DQ = 0;//将DQ拉低 480us~960us
i =100;
while(i--);//延时650us左右
DQ = 1;//拉高DQ线,如果 DS18B20 做出反应会将在 15us-60us 发出低电平
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论