版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、18b20测温数码管显示实验-精确到小数点后4位/滑国虎于09.9.20完成/DS18B20的读写程序,数据脚P1.5/温度传感器18B20程序,采用器件默认的12位转化/最大转化时间750微秒,显示温度-55到+125度,显示精度/为0.1度,显示采用4位LED共阳显示测温值/P0口为段码输入,P27P21为位选/*/#include"reg51.h"#include"intrins.h"/_nop_();延时函数用#defineDisdataP0/段码输出口#definediscanP2/扫描口#defineucharunsignedchar#def
2、ineuintunsignedintsbitDQ=P1A5;/温度输入口sbitDIN=P0A7;/LED小数点控制uinth;uinttemp;/ucharcodedis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf;/共阳LED段码表"0""1""2""3""4""5""6""7""8""9""不亮&q
3、uot;"-"ucharcodescan_con7=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd;/歹U扫描控制字读出温度暂放uchardatauchardatatemp_data2=(0x00,0x00;/显示单元数据,display7=0x00,0x00,0x00,0x00,0x00,0x00,0x00;/数据和一个运算暂用/*11us延时函数*/voiddelay(uintt)/11usfor(;t>0;t-);/*DS18B20复位函数*/ow_reset(void)charpresence=1;while(presence)while
4、(presence)DQ=1;_nop_();_nop_();/从高拉倒低DQ=0;delay(50);/550usDQ=1;delay(6);/66uspresence=DQ;/presence=0复位成功,继续下一步delay(45);/延时500uspresence=DQ;DQ=1;/拉高电平向1-/*DS18B20写命令函数*/WIRE总线上写1个字节voidwrite_byte(ucharval)uchari;for(i=8;i>0;i-)DQ=1;_nop_();_nop_();/从高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_();/5usDQ
5、=val&0x01;/最低位移出delay(6);/66usval=val/2;/右移1位DQ=1;delay(1);从总/*DS18B20读1字节函数*/线上取1个字节ucharread_byte(void)(uchari;ucharvalue=0;for(i=8;i>0;i-)(DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();/4usDQ=1;_nop_();_nop_();_nop_();_nop_();/4usif(DQ)value|=0x80;delay(6);/66us
6、DQ=1;return(value);/*显示扫描函数*scan()(chark;for(k=0;k<7;k+)/4位LED扫描控制(Disdata=dis_7displayk;/数据显示P0if(k=2)DIN=0;/小数点显示P0.7discan=scan_conk;/位选P2delay(150);discan=0xff;读出温度函数*/*/read_temp()(ow_reset();/总线复位delay(200);write_byte(0xcc);/发命令write_byte(0x44);/发转换命令ow_reset();delay(1);write_byte(0xcc);/发命
7、令write_byte(0xbe);temp_data0=read_byte();/读温度值的低字节temp_data1=read_byte();/读温度值的高字节temp=temp_data1;temp=temp&0x0f;/去掉符号位temp=temp<<8;/temp为16位temp=temp|temp_data0;/两字节合成一个整型变量。returntemp;/返回温度值,具体的温度数值/*温度数据处理函数*/二进制高字节的低半字节和低字节的高半字节组成一字节,这个/字节的二进制转换为十进制后,就是温度值的白、十、个位值,而剩/下的低字节的低半字节转化成十进制后,
8、就是温度值的小数部分/*/work_temp(uinttem)/显示(uinttemp_h,temp_l;ucharn=0;/n=0符号为正/*if(tem>6348)/温度值正负判断(tem=65536-tem;n=1;/负温度求补码,标志位置n=1*/if(tem&0x0800)/为负时(tem=temp+1;n=1;temp_h=tem>>4;/去掉小数temp_l=tem&0x000f;/取出小数temp_l=temp_l*625;/把小数转化为整数display0=temp_h/100;temp_h=temp_h%100;display1=temp_
9、h/10;display2=temp_h%10;display3=temp_l/1000;temp_l=temp_l%1000;display4=temp_l/100;temp_l=temp_l%100;display5=temp_l/10;/*display6=temp_l%10;符号位显示判断*/if(!display0)/display0=0display0=0xff;/最高位为0时不显示if(!display1)display1=0xff;/次高位为0时不显示if(n)/负温度n=1display0=0x0b;/负温度时最高位显示"-",10111111/*主函数*/main()Disdata=0xff;/初始化端口P0discan=0xff;/P2for(h=0;h<4;h+)/开机显示"0000"(displayh=0;ow_reset();/开机先转换一次write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CCAA 141-2026步行碳普惠项目减排量核算技术规范
- T/CI 790-2024水域精细化管养智能装备
- 装修工程变更洽商管理方案
- 绿化养护季度实施推进方案
- 输电线路混凝土工程监理规划
- 装配式构件安装工程技术方案
- 九年级数学《相似三角形的判定定理1》练习课教学设计
- 汽车卷帘驱动电机设计规范
- 2026年煤矿安全生产标准化学习题库(附答案)
- 高三地理第一轮复习“地形的判读、描述与影响”教学设计
- 2025年湖北卷化学-加标签(精校版)(无答案)
- 2026秋新教材统编版四年级上册语文第一单元教案(大单元教学设计)
- 5.2 必须长期坚持的指导思想 课件(25张幻灯片)+内嵌视频
- 室内设计 课件 模块三 办公空间设计
- 2026年高考全国一卷数学试题真题及答案详解(精校打印)
- 2026年四川省拟任县处级领导干部理论(任职资格考试)全真模拟试题及答案
- 1.2 地球与地球仪 第3课时课件(共20张) 七年级地理上学期人教版
- 终身学习:中学教师专业成长与实践路径
- 2026年上海安全员A证考试题库(附答案)
- 常州大学怀德学院教师招聘考试真题及答案
- 火锅店服务员培训课件
评论
0/150
提交评论