




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的温度控制系统选题背景温度控制在农业生产中有着重要意义,它直接影响到农作物的产量。为保证农业生产的顺利进行,首要问题是加强温度的监测工作。但传统的方法是通过人工进行检测,这种人工测试方法费时费力、效率低,且测试的温度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温度测量仪。一,实现功能1,临界温度设定2,实时温度检测3,动态温度显示4,高温低温报警二,功能模块1,DS18B20实现温度检测2,数码管实现温度动态显示3,矩阵键盘实现温度设定4,蜂鸣器实现高温低温报警三,应用范围1,室温检测2,温室栽培3,火灾报警等电路图主程序流程图:T0中断流程图:温度采样子程序流程图 键扫描程序流程图:报警子程序流程图:程序:程序名称:DS18B20温度计、温度监控系统说 明:三个按键,分别是1.监控温度设置键 2.温度减少 3.温度增加编写日期:2009年4月29号*/#include #define uint unsigned int#define uchar unsigned char /宏定义sbit DQ=P36; /定义DS18B20总线I/Osbit SET=P31; /定义调整键sbit DEC=P32; /定义减少键sbit ADD=P33; /定义增加键sbit BEEP=P37; /定义蜂鸣器bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P27; /小数点uchar x=0; /计数器signed char m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0; /状态标志signed char shangxian=38; /上限报警温度,默认值为38signed char xiaxian=5; /下限报警温度,默认值为38uchar code LEDData=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;/*延时子程序*/void Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 Delay_DS18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 Delay_DS18B20(80); /精确延时,大于480us DQ = 1; /拉高总线 Delay_DS18B20(14); x = DQ; /稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B20(20);/*读一个字节*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); return(dat);/*写一个字节*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat=1; /*读取温度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0x44); /启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器 a=ReadOneChar(); /读低8位 b=ReadOneChar(); /读高8位 t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; /放大10倍输出并四舍五入 return(t);/*END*/*延时子程序*/void Delay(uint num) while( -num );/*初始化定时器0*/void InitTimer(void) TMOD=0x01; TH0=0x3c; TL0=0xb0; /50ms(晶振12M)/*定时器0中断服务程序*/void timer0(void) interrupt 1 TH0=0x3c; TL0=0xb0; x+;/*外部中断0服务程序*/void int0(void) interrupt 0 EX0=0; /关外部中断0 if(DEC=0&set_st=1) shangxian-; if(shangxianxiaxian)shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxian-; if(xiaxian99)shangxian=99; else if(ADD=0&set_st=2) xiaxian+; if(xiaxianshangxian)xiaxian=shangxian; /*读取温度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /获取温度值并减去DS18B20的温漂误差 a=c/100; /计算得到十位数字 b=c/10-a*10; /计算得到个位数字 m=c/10; /计算得到整数位 n=c-a*100-b*10; /计算得到小数位 if(m99)m=99;n=9; /设置温度显示上限 /*显示开机初始化等待画面*/void Disp_init() P2 = 0xbf; /显示- P1 = 0xf7; Delay(200); P1 = 0xfb; Delay(200); P1 = 0xfd; Delay(200); P1 = 0xfe; Delay(200); P1 = 0xff; /关闭显示/*显示温度子程序*/void Disp_Temperature() /显示温度 P2 =0xc6; /显示C P1 = 0xf7; Delay(300); P2 =LEDDatan; /显示个位 P1 = 0xfb; Delay(300); P2 =LEDDatam%10; /显示十位 DIAN = 0; /显示小数点 P1 = 0xfd; Delay(300); P2 =LEDDatam/10; /显示百位 P1 = 0xfe; Delay(300); P1 = 0xff; /关闭显示/*显示报警温度子程序*/void Disp_alarm(uchar baojing) P2 =0xc6; /显示C P1 = 0xf7; Delay(200); P2 =LEDDatabaojing%10; /显示十位 P1 = 0xfb; Delay(200); P2 =LEDDatabaojing/10; /显示百位 P1 = 0xfd; Delay(200); if(set_st=1)P2 =0x89; else if(set_st=2)P2 =0xc7; /上限H、下限L标示 P1 = 0xfe; Delay(200); P1 = 0xff; /关闭显示/*报警子程序*/void Alarm() if(x=10)beep_st=beep_st;x=0; if(m=shangxian&beep_st=1)|(mxiaxian&beep_st=1)BEEP=0; else BEEP=1;/*主函数*/void main(void) uint z; InitTimer(); /初始化定时器 EA=1; /全局中断开关 TR0=1; ET0=1; /开启定时器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z2)set_st=0; if(set_st=0) EX0=0; /关闭外部中断0 EX1=0; /关闭外部中断1 check_wendu(); Disp_Temperature(); Alarm(); /报警检测 else if(set_st=1) BEEP=1; /关闭蜂鸣器 EX0=1; /开启外部中断0 EX1=1; /开启外部中断1 if(x=10)shanshuo_st=shanshuo_s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东佛山狮山镇镇属一级公司中层副职招聘1人笔试备考题库及答案解析
- 2025安徽皖信人力资源管理有限公司宣州分公司工作人员招聘1人(三)笔试备考试题及答案解析
- 2025广西来宾市第二中学教师招聘6人考试备考试题及答案解析
- 2025广东省中医院海南医院招聘78人备考题库及答案解析
- 2025甘肃天水市事业单位招聘270人备考试题及答案解析
- 2025福建厦门市集美区润德实验幼儿园招聘非在编教职工3人备考试题及答案解析
- 2025福建三明永安市城市建设投资集团有限公司招聘工作人员5人笔试备考试题及答案解析
- 2025广东汕头市交通运输集团有限公司招聘硕士研究生4人备考题库及答案解析
- 2025年政策性银行服务行业研究报告及未来行业发展趋势预测
- 2025年木器涂料行业研究报告及未来行业发展趋势预测
- 环境空气和废气 氯化氢的测定 离子色谱法(征求意见稿)
- 历史有关的书籍
- 2024年度新版中华人民共和国传染病防治法课件
- 精度班组安全标准化汇报
- 2024年国家电网招聘之法学类题库附参考答案【精练】
- 2024上海市奉贤区第八批储备人才及定向选调生招募91人高频考题难、易错点模拟试题(共500题)附带答案详解
- 电线电缆产品生产许可证实施细则样本
- 湖南高职单招《综合素质测试》考试题库(含答案)
- 口腔颌面部外伤的处理课件
- 《现代涉外礼仪》课件
- 春风十里不如你:一本书读尽冯唐人生金线年轻时极尽欢喜年长
评论
0/150
提交评论