- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计报告
基于51单片机温度传感器设计
姓名:阮晓健
学号:200905020118
任课教师:林凡强
成都理工大学2012年5
系统概述
摘要:
本设计是以51单片机为核心的温度传感器设计, 该系统以STC89C52单片机为中心控制单元,由数码管显示模块,蜂鸣器警报模块组成,并预设温度报警上下限,系统启动后可以实时采集环境中的温度,并且当温度超出上下限的值以后蜂鸣器报警.
关键词:STC89C51、数码管、蜂鸣器、DS18B20温度传感器
系统框图:
原理概述:
STC89C52单片机为主控制器,用于处理采集的温度值以及相关报警值。本设计采用DALLAS公司的DS18b20温度传感器采集温度,通过主控制器进行温度的采样以及转换并在数码管上进行相应的显示,当外界温度值超出预设的报警温度值时,通过蜂鸣器报警提示。
实验要求:
温度读取
LED数码管或LCD显示
定时读取数据
报警
实验设备:
51学习开发板,STC89C52单片机,DS18B20
设计内容:
软件流程图:
N
Y
设计方法:
DS18B20特性
? 独特的单线接口仅需一个端口引脚进行通讯
? 简单的多点分布应用
? 无需外部器件
? 可通过数据线供电
? 零待机功耗
测温范围-55---+125℃,以0.5℃递增。华氏器件-67---+257℉,以0.9℉递增
? 温度以9 位数字量读出
? 温度数字量转换时间 200ms(典型值)
? 用户可定义的非易失性温度报警设置
? 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
? 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
温度传感器说明:
DS1820 数字温度计以 9 位数字量的形式反映器件的温度值。 DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和 DS1820 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS1820 都有一个独特的片序列号, 所以多只 DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在 HVAC 环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。
数码管显示:
数码显示器件按显示方法不同,显示器有很多种,他们是字形重叠式显示器、分段式显示器、点阵式显示器。分段式显示器有七段和八段显示之分,在这里,我们选用4位8段数码管显示采集到的温度值,数码管显示具有耗能低,稳定性好,价格便宜等优点。
蜂鸣器:
压电式蜂鸣器是一种电声转换器件。压电式蜂鸣器具有体积小、灵敏度高、耗电省、可靠性好,造价低廉的特点和良好的频率特性。因此它广泛应用于各种电器产品的报警、发声用途。最常见的莫过于音乐贺卡、电子手表、袖珍计算器、电子门铃和电子玩具等小型电子用品上作发声器件。
硬件原理图:
51单片机:
温度传感器: 蜂鸣器连接:
源代码:
/***************温度传感器**********************/
//制作:RXJ
//时间:2012/6/2
//修改:无
/************************************************/
#includereg52.h
#includemath.h
#includeINTRINS.H
#define uchar unsigned char
#define uint unsigned int;
sbit DQ=P1^3;//ds18b20 端口
sbit beeper=P1^0;
//全局变量
uint temp,TempH,TempL;
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段数码管段码表共阴
uchar num,readflag=0,str[6];
uchar i;
unsigned int ReadTemperature(void);
void Init_DS18B20(void);
unsigned char ReadOneChar(void);
void WriteOneChar(unsigned char dat);
void delay(unsigned int i);
void init_timer();
void beep();
void main()
{
str[0]=0;
init_timer();
文档评论(0)