版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、# include # include float flag=0;unsigned int up=30,down=20,kf=1,hfflag=1,hf;/up为报警温度上限值,down为报警温度下限值;/kf为报警温度设定标志位,kf为1,数码管显示温度值,kf=0,进入报警温度设定选项。/hfflag为摄氏度与华氏温度转换标志位,hfflag=1,显示的为摄氏度值,hfflag=0,显示的为华氏温度值。/hf为用来存储华氏温度。sbit DQ = P20; /ds18b20 端口 unsigned char tab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0
2、 x7d,0 x07,0 x7f,0 x6f,0 x39,0 x63,0 x40,0 x71;/0 x39,0 x63用来显示摄氏度,0 x40用来显示-。unsigned char tabb=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef; /带有小数点的0-9.void displayset();void delayms( int x) /延时1ms函数 int m,j; for(m=1;m=x;m+) for(j=1;j0) i-; /根据协议要满足 大于 480usDQ = 1; /拉高总线i=4;while(i0
3、) i-; void dswait() /等待ds18b20响应的函数 while(DQ); while(DQ); /检测到应答脉冲bit readone()/读取一位数据 unsigned int i;bit b;DQ=0;i+; /根据资料,进行一次unsigned int 型数据的+,大约为8us时间 ,此处i+,符合协议要求至少保持1usDQ=1;i+;i+; /延时约16us, 符合协议要求的至少延时15us以上b=DQ;i=8;while(i0) i-; /延时约64us, 符合读时隙不低于60us要求return(b);unsigned char readB()/读取一字节数据u
4、nsigned int i;unsigned char j,dat=0;for(i=0;i8;i+)j=readone();dat=(j1);/将每一次输出的值通过移位相或送到datreturn(dat);void writeB(unsigned char dat)/写操作,通过次函数可以控制ds18b20进行一系列操作unsigned int i;unsigned char j;bit b;for(j=0;j=1;if(b) /写1, 将DQ拉低15us后, 在15us60us内将DQ拉高, 即完成写1 DQ=0;i+;i+; /此处延时16us。满足延时15us以后 DQ=1; /将DQ拉
5、高i=8;while(i0) i-; /延时约64us, 符合写时隙不低于60us要求else/写0, 将DQ拉低60us120usDQ=0;i=8;while(i0) i-;DQ=1;i+;i+; /整个写0时隙过程已经超过60usvoid sendchange()/温度转换reset();dswait();delayms(1);writeB(0 xcc); /写入跳过序列号命令字 writeB(0 x44); /写入温度转换命令字void sendread()/读取数据reset();dswait();delayms(1);writeB(0 xcc); /写入跳过序列号命令字 writeB
6、(0 xbe);/写入读取数据令字int getvalue()/获取温度函数 unsigned int tempvalue; long temp1,temp2; int value,final; float t; unsigned char low,high; sendread(); /读取数据 low=readB(); high=readB(); tempvalue=high; tempvalue=5)/四舍五入 t=t+(0.01); final=t*100; hf=(32+t*1.8)*100;/华氏温度转换 else final=t*100; hf=(32+t*1.8)*100; fl
7、ag=t; return(final);void baojing()/报警函数if(flag=up|flag=down) P2_2=0; else P2_2=1; void display() /数码管显示函数unsigned int m,a,b,c,d,e;if(kf=1) /kf=1,显示温度值,kf=0,进入报警温度设定项 if(hfflag=0) /hfflag=0,显示华氏温度 getvalue(); m=hf;elsem=getvalue();a=m/10000;b=(m%10000)/1000;c=(m%10000)%1000)/100;d=(m%10000)%1000)%100
8、)/10;e=m%10;if(hfflag=1)P0=tab10;P1_0=1;P1_0=0;P0=0 xfe;P1_1=1;P1_1=0;delayms(1);if(hfflag=0)P0=tab13;P1_0=1;P1_0=0;P0=0 xfe;P1_1=1;P1_1=0;delayms(1);P0=tab11;P1_0=1;P1_0=0;P0=0 xfd;P1_1=1;P1_1=0;delayms(1);P0=tabe;P1_0=1;P1_0=0;P0=0 xfb;P1_1=1;P1_1=0;delayms(1);P0=tabd;P1_0=1;P1_0=0;P0=0 xf7;P1_1=1
9、;P1_1=0;delayms(1);P0=tabbc;P1_0=1;P1_0=0;P0=0 xef;P1_1=1;P1_1=0;delayms(1);P0=tabb;P1_0=1;P1_0=0;P0=0 xdf;P1_1=1;P1_1=0;delayms(1);P0=taba;P1_0=1;P1_0=0;P0=0 xbf;P1_1=1;P1_1=0;delayms(1);baojing();void keyscan() /键盘扫描函数unsigned int a,b,c,d;for(d=0;d125)up=0;if(down125)down=0;set1=up;set2=down;d1=se
10、t1/100;d2=(set1%100)/10;d3=set1%10;d4=set2/100;d5=(set2%100)/10;d6=set2%10;P0=tabd3;P1_0=1;P1_0=0;P0=0 xfe;P1_1=1;P1_1=0;delayms(1);P0=tabd2;P1_0=1;P1_0=0;P0=0 xfd;P1_1=1;P1_1=0;delayms(1);P0=tabd1;P1_0=1;P1_0=0;P0=0 xfb;P1_1=1;P1_1=0;delayms(1);P0=tab12;P1_0=1;P1_0=0;P0=0 xe7;P1_1=1;P1_1=0;delayms(1);P0=tabd6;P1_0=1;P1_0=0;P0=0 xdf;P1_1=1;P1_1=0;delayms(1);P0=tabd5;P1_0=1;P1_0=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济宁市嘉祥县2025年三下数学期中综合测试试题(含解析)
- 济南市长清区2025届三年级数学第二学期期末学业质量监测模拟试题(含答案)
- 洛阳市涧西区2025-2026学年四年级数学第二学期期中统考模拟试题含答案解析
- 泰州市靖江市2025届数学三下期中综合测试模拟试题(含答案)
- 燃气具安装维修工道德考核试卷含答案
- 电器附件装配工岗前基础模拟考核试卷含答案
- 刃具制造工安全意识强化水平考核试卷含答案
- 浆染联合机挡车工班组协作考核试卷含答案
- 裁缝安全宣传测试考核试卷含答案
- 数控插工安全素养知识考核试卷含答案
- 2026年产前筛查和产前诊断试题
- 2026年高邮市消防系统事业单位公开招聘工作人员3人笔试备考题库及答案解析
- 2025年河南省检察官逐级遴选笔试题目及答案
- 《勤洗生活衣物》教学设计-2026-2027学年滇教版初中劳动技术七年级上册
- 注册消防工程师继续教育2025年部分题目与答案(126题)
- 2026年江苏省徐州市中考英语真题(含答案)
- 2026年东阳市城管辅助人员招聘真题(附答案)
- 肉联厂屠宰人员安全防护手册
- 2026年度湖北省部分工程高、中级职称水平能力测试(轻工)复习题及答案
- AQ3035-2010危险化学品重大危险源安全监控技术规范关键条款解读
- T∕CHCIA 013-2023 液体香氛规范
评论
0/150
提交评论