开发工具:
文件大小: 958byte
下载次数: 0
上传时间: 2014-11-08
详细说明: #include #define uchar unsigned char #define uint unsigned int int a b c temp; sbit DS P3^3; 18B20端口设置 uchar code table[] { 0x3F "0" 0x06 "1" 0x5B "2" 0x4F "3" 0x66 "4" 0x6D "5" 0x7D "6" 0x07 "7" 0x7F "8" 0x6F "9" }; void dsdelay int num 延时10约为53us 时钟为11 0592M { while num ; } void delay uint z 延时函数 { uint x y; for x z;x>0;x for y 110;y>0;y ; } int init 18B20初始化 { uchar x 0; DS 1; dsdelay 8 ; 延时44us DS 0; dsdelay 110 ; 延时约500us DS 1; dsdelay 14 ; 稍微延时 读取x x DS; dsdelay 20 ; } uchar readchar 从18B20中读取1个字节 { uchar i 0; uchar dat; for i 8;i>0;i { DS 0; dat>> 1; DS 1; if DS dat| 0x80; dsdelay 4 ; } return dat ; } void writechar uchar dat 向18B20中写数据 { uchar i 0; for i 8;i>0;i { DS 0; DS dat&0x1; dsdelay 5 ; DS 1; dat>> 1; } } uint readtemp 读取温度值 { uchar a; uchar b; uint t; float tt; a 0; b 0; t 0; tt 0; init ; writechar 0xcc ; 跳过读序号列号的操作 writechar 0x44 ; 启动温度转换 init ; writechar 0xcc ; 跳过读序号列号的操作 writechar 0xbe ; 读取温度寄存器 a readchar ; 读高8位 b readchar ; 读高8位 t b; t<< 8; t t|a; 两字节合成一个整型变量 tt t 0 0625; 得到真实十进制温度值 因为DS18B20可以精确到0 0625度 所以读回数据的最低位代表的是0 0625度 t tt 10+0 5; 放大十倍 这样做的目的将小数点后第一位也转换为可显示数字 同时进行一个四舍五入操作 return t ; } void display 数码管显示温度值 { P1 0xf0; 位选 P2 table[a]; 段选 delay 3 ; P1 0xf1; P2 table[b]; delay 3 ; P1 0xf2; P2 0x08; delay 3 ; P1 0xf3; P2 table[c]; } void main 主函数 { int m; m 0; while 1 { if m 0 消除85现象 { delay 500 ; temp readtemp ; delay 500 ; delay 200 ; m 1; } else { temp readtemp ; a temp 100; b temp0 10; c temp; display ; } } }">#include #define uchar unsigned char #define uint unsigned int int a b c temp; sbit DS P3^3; 18B20端口设置 uchar code table[] { 0x3F "0" 0x06 "1" 0x5B "2" 0x4F " [更多] ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.