完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本程序是DS18B20实现温度测量并显示在数码管上的!
#include #include #define uchar unsigned char #define uint unsigned int ***it D0=P3^4; //数据线 uint num; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, //不带小数点的0~9; 0xbf,0x86,0xdb,0xaf, 0xe6,0xed,0xfd,0x87, 0xff,0xef,0xf7,0xfc, 0xb9,0xde,0xf9,0xf1}; //带小数点的0~9; void delayms(uint z) { uint i,j; for(i=z;i>0;i--) for(j=124;j>0;j--); } void delayus(uchar ms) //微秒级的延时;延时2*ms+5(μs). { while(--ms); } void init() { uchar pan=1; while(pan) { D0=1; _nop_(); _nop_(); D0=0; delayus(185);//延时750μs; delayus(185); D0=1; delayms(5); if(D0==0) pan=0; D0=1; } } void write_byte(uchar dat) //写字节 { uchar i ; bit w; for(i=8;i>0;i--) { w=dat&0x01; dat>>=1; if(w==0) //写0; { D0=0; delayus(25); D0=1; } else //写1; { D0=0; delayus(2); D0=1; delayus(20); D0=1; } } } uchar read_byte() { uchar dat1,j; for(j=8;j>0;j--) { D0=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); if(D0==1) dat1=dat1|0x80; delayus(15); dat1>>=1; } return dat1; } uint gettemp() //获得温度数值 { uchar a,b; uint temp; float ftemp ; init(); delayms(1); write_byte(0xcc); //跳过读ROM指令 write_byte(0x44); //开始温度转换; delayms(1000); write_byte(0xbe); //读取RAM中的数据 a=read_byte(); b=read_byte(); temp=b; temp<<=8; temp=temp|a; ftemp=temp*0.0625; temp=ftemp*10+0.5; ftemp=ftemp+0.05; return temp; } void display(num) //数码管显示没有错误。我试过 { uchar shi,ge,shifen; shi=num/100; ge=num%100/10; shifen=num%100%10; P1=0x01; P0=table[shi]; delayms(5); P1=0x02; P0=table[ge+10]; delayms(5); P1=0x04; P0=table[shifen]; delayms(5); } void main() { while(1) { num=gettemp(); display(num); } } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
726 浏览 0 评论
777 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
680 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1149 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1120 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11800 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:10 , Processed in 1.294069 second(s), Total 71, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号