基于单片机的温度控制系统.docx

基于单片机的温度控制系统.docx

ID:55296420

大小:291.88 KB

页数:13页

时间:2020-05-09

基于单片机的温度控制系统.docx_第1页
基于单片机的温度控制系统.docx_第2页
基于单片机的温度控制系统.docx_第3页
基于单片机的温度控制系统.docx_第4页
基于单片机的温度控制系统.docx_第5页
资源描述:

《基于单片机的温度控制系统.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于单片机的温度控制系统选题背景温度控制在农业生产中有着重要意义,它直接影响到农作物的产量。为保证农业生产的顺利进行,首要问题是加强温度的监测工作。但传统的方法是通过人工进行检测,这种人工测试方法费时费力、效率低,且测试的温度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温度测量仪。一,实现功能1,临界温度设定2,实时温度检测3,动态温度显示4,高温低温报警二,功能模块1,DS18B20实现温度检测2,数码管实现温度动态显示3,矩阵键盘实现温度设定4,蜂鸣器实现高温低温报警三,应用范围1,室温检测2,温室栽培3,火灾报警等电路

2、图主程序流程图:T0中断流程图:温度采样子程序流程图键扫描程序流程图:报警子程序流程图:程序:程序名称:DS18B20温度计、温度监控系统说明:三个按键,分别是1.监控温度设置键2.温度减少3.温度增加编写日期:2009年4月29号******************************************************************/#include#defineuintunsignedint#defineucharunsignedchar//宏定义sbitDQ=P3^6;//定义DS18B20总

3、线I/OsbitSET=P3^1;//定义调整键sbitDEC=P3^2;//定义减少键sbitADD=P3^3;//定义增加键sbitBEEP=P3^7;//定义蜂鸣器bitshanshuo_st;//闪烁间隔标志bitbeep_st;//蜂鸣器间隔标志sbitDIAN=P2^7;//小数点ucharx=0;//计数器signedcharm;//温度值全局变量ucharn;//温度值全局变量ucharset_st=0;//状态标志signedcharshangxian=38;//上限报警温度,默认值为38signedcharxiaxian=5

4、;//下限报警温度,默认值为38ucharcodeLEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};/*****延时子程序*****/voidDelay_DS18B20(intnum){while(num--);}/*****初始化DS18B20*****/voidInit_DS18B20(void){unsignedcharx=0;DQ=1;//DQ复位Delay_DS18B20(8);//稍做延时DQ=0;//单片机将DQ拉低Delay_DS18B20(80

5、);//精确延时,大于480usDQ=1;//拉高总线Delay_DS18B20(14);x=DQ;//稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat

6、=0x80;Delay_DS18B20(4);}return(dat);}

7、/*****写一个字节*****/voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay_DS18B20(5);DQ=1;dat>>=1;}}/*****读取温度*****/unsignedintReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedintt=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);//

8、跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器a=ReadOneChar();//读低8位b=ReadOneChar();//读高8位t=b;t<<=8;t=t

9、a;tt=t*0.0625;t=tt*10+0.5;//放大10倍输出并四舍五入return(t);}/*****END*****//*****延时子程序*****/voidDelay(uintnum){whil

10、e(--num);}/*****初始化定时器0*****/voidInitTimer(void){TMOD=0x01;TH0=0x3c;TL0=0xb

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。