- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计
温度报警器
院 系: 自动化学院 专业班级: 自动化0804班 日 期:
1.课程设计描述:设计一个温度报警系统,实现采集温度并在数码管上显示,超过温度范围单片机报警。
2.课程设计具体要求:利用一片STC89C52单片机作为主控制器,应用数字温度计DS18B20,能够实现采集温度并在数码管上显示,可以通过按键设置温度报警的上限和下限,超过报警上下限时,系统报警,并启动冷却或加热装置。
3.主要元器件:STC89C52(1片)、电容(22PF*2、10UF*1)、数码管(共阳)、晶振(11.0592MHZ)小按键、发光二极管、Keil uVsion2、Proteus 7 Professional、Win-tc软件。
4.基本原理阐述:DS18B20是数字式温度传感器,能够感应外界温度,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。温范围-55~+125,在-10~+85时精度为±0.5。DS18B20的引脚定义:(1)DQ为数字信号输入/输出端(2)GND为电源地(3)VDD为外接供电电源输入端#includereg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^6;
sbit beep=P3^7;
//共阴极数码管
uchar code[]={ox3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
//温度小数位对照表
uchar code table[]={0,1,1,2,3,4,4,5,6,6,7,8,8,9,9};
char Alarm_HL[2]={70,-20};//char类型的取值范围为-128~+127
uchar CurrentT=0;//当前读取温度的整数部分
uchar Temp_value[]={0x00,0x00};//从DS18B20读取的温度值
uchar Display_Digit[]={0,0,0,0};//待显示的各温度数位
bit HI_Alarm=0,LO_Alarm=0;//高低温报警标志
bit DS18B20_IS_OK=1;//传感器正常标志
uint Time0_Count=0;//定时器延时累加
void Delay(uint x)
{
while(--x);
}
//初始化DS18B20
uchar Init_DS18B20()
{
uchar status;
DQ=1;Delay(8);
DQ=0;Delay(90);
DQ=1;Delay(8);
status=DQ;
Delay(100);
DQ=1;
return status;
}
//读一字节
uchar Readonebyte()
{
uchar i,dat=0;
DQ=1;
_nop_();
for(i=0;i8;i++)
{
DQ=0;
dat=1;
DQ=1;
_nop_();
_nop_();
if(DQ)
dat|=0x80;
Delay(30);
DQ=1;
}
return dat;
}
//写一字节
void Writeonebyte(uchar dat)
{
uchar i;
for(i=0;i8;i++)
{
DQ=0;
DQ=dat0x01;
Delay(5);
DQ=1;
dat=1;
}
}
//读取温度值
void Read_temperature()
{
if(Init_DS18B20()==1)
DS18B20_IS_OK=0;
else
{
Writeonebyte(0xcc); //跳过序列号
Write0nebyte(0x44); //启动温度转化
Init_DS18B20();
Write0nebyte(0xcc);
Write0nebyte(0xbe); //读取温度寄存器
Temp_Value[0]=Readonebyte(); //温度低8位
Temp_Value[1]=Readonebyte(); //温度高8位
Alarm_Temp_HL[0]=Readonebyte();//报警温度TH
Alarm_Temp_HL[1]=Readonebyte();//报警温度TL
DS18B20_IS_OK=1;
}
}
//设置DS18B20温度报警值
void Set_Alarm_Temp_Value()
{
Init_D
您可能关注的文档
- 安徽理工大学市场营销专业毕业论文.doc
- 毕业论文创新让数学课堂更精彩.doc
- 毕业设计 西河二水库双线特大桥施工组织设计.doc
- 博林特公司企业文化研究公司管理毕业论文.doc
- 测绘毕业设计生活基地项目基坑支护实训报告.doc
- 超声电机等效电学模型的研究.ppt
- 大学毕业工作起步阶段理财方案设计.doc
- 当前村级财务管理存在的问题及对策研究.doc
- 东风汽车离合器毕业论文.doc
- 多功能万年历毕业设计.doc
- DB32T-党政机关办公区域安保服务规范及编制说明.pdf
- DB21T4064-2024 小叶白蜡高枝嫁接技术规程.pdf
- DB3702T37-2024 2023基岩层序划分技术规范.pdf
- DB53T1326-2024 泡核桃良种适应性评价技术规范.pdf
- 《碳纤维包装箱》(征求意见稿)及编制说明.pdf
- 隧道二次衬砌混凝土控裂施工技术规程.pdf
- DB43T3080.6-2024 湖南省立木材积、生物量及碳系数计量监测系列模型 第6部分:其他软阔立木材积与生物量模型.pdf
- TCECS-钢结构工程顶提升滑移施工及验收标准.pdf
- DB53T809-2024 物流服务合同 仓储与运输.pdf
- DB53T1329-2024 中小企业公共服务机构标准体系建设指南.pdf
文档评论(0)