第一范文网 - 专业文章范例文档资料分享平台

基于单片机的数字温度计课程设计报告

来源:用户分享 时间:2025/5/30 0:03:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

报警点调节电路

可以通过微动开关,任意调节报警点的上下限,电路如图8所示

图8 报警点调节电路

显示电路

显示电路采用集成的四位一体的数码管,为共阴极结构,通过设置不同的段码可以显示温度。

图9显示电路

3 软件设计 系统分析 系统程序主要包括DS1820初始化程序,向DS1820读字节程序,向DS1820写字节程序,读取温度及转换程序,温度显示程序,报警程序。

初始化 向ds1820读一字节 向ds1820写一字节 读取温度及转换 显示温度

图10主程序流程图

各子程序及其流程图设计 初始化子程序

令为高电平,延迟一段时间后令为低电平触发DS1820的初始化,低电平持续一段时间,然后读取的状态,直到的状态回到高电平时说明初始化完成。

#include <> #define DQ P2_7 #define dm P0 sbit w0=P2^3; sbit w1=P2^4; sbit w2=P2^5; sbit w3=P2^6; sbit jia=P2^0; sbit jian=P2^1; sbit xuan=P2^2; //sbit p2_7=P2^7; sbit speaker=P1^0; #define uint unsigned int #define uchar unsigned char uint mark; uint xiaoshu; int temp1=0; uint H_t=10,L_t=-5;

uchar table_dm[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar table_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; uchar table_fuhao[]={0x00,0x40}; void delay(unsigned int i) {

while(i--); } //初始化函数

=1 延时 =0 延时 N

=1? Y 完成

图11 初始化流程图

DS1820的读写字节子程序

单片机向DS1820读写字节都是从最低位开始的。

Init_DS18B20(void) {

unsigned char x=0; DQ = 1; delay(8); DQ = 0; delay(80); DQ = 1; delay(14);

x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20);

} //读一个字节

=1 =1 延时 延时 读数据 写数据 待写入字节右移一位 待写入字节右移一位

图12 读操作 温度读取及转换子程序

在读取温度值命令前,应使用温度转换命令才能保证读入的是当前温度值转换过程中DS1820会拉低总线直至转换完成,因此可以读取温度总线的状态来判断温度转换是否完成。

ReadOneChar(void) {

unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; dat>>=1; DQ = 1; if(DQ) dat|=0x80; delay(4); }

return(dat);

图13写操作

基于单片机的数字温度计课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4cp4727oyr2teb88j4i568ub00wtu60063s_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top