完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
#include
#include #include #include #define uint unsigned int #define uchar unsigned char ***it ds=P3^3; ***it led1=P0^0; ***it guan1=P2^7; ***it guan2=P2^6; ***it guan3=P2^5; ***it guan4=P2^4; uint shu[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90}; uint shu1[]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10}; bit stuas; int temp; float f_temp; uchar dat; // ds18b20初始化 bit DS18b20_init(void) { ds=1; _nop_(); ds=0; Delay10us(65); ds=1; Delay10us(1); while(!ds); return stuas; } //写字节函数 void write_onebyte(uchar dat) { uchar i=0; ds=1; _nop_(); _nop_(); for(i=0;i<8;i++) { ds=0; Delay10us(6); ds=dat&0x01; ds=1; dat>>=1; } } //读字节函数 uchar read_onebte(void) { uchar i=0,dat=0x00; ds=1; _nop_(); _nop_(); for(i=0;i<8;i++) { ds=0; Delay6us(); ds=1; _nop_(); _nop_(); _nop_(); dat>>=1; if(ds) { ds |=0x80; } Delay10us(3); ds=1; } return dat; } uint read_temp() { uchar a,b; DS18b20_init(); write_onebyte(0xcc); write_onebyte(0x44); //发出温度转化命令 DS18b20_init(); write_onebyte(0xcc); write_onebyte(0xbe); //发出读温度命令 a=read_onebte(); //读高8位 b=read_onebte(); //读低8位 temp=(uint)a; temp<<=8; temp=temp | (uint)b; f_temp=temp*0.0625; temp=f_temp*10+0.5; f_temp=f_temp+0.05; return temp; } void display(uint t) { uint ge,shi,bai,qian; ge=t%10; shi=t/10%10; bai=t/100%10; qian=t/1000; P1=shu[qian]; guan1=0; Delay_ms(1); guan1=1; P1=0x00; P1=shu[bai]; guan2=0; Delay_ms(1); guan2=1; P1=0x00; P1=shu1[shi]; guan3=0; Delay_ms(1); guan3=1; P1=0x00; P1=shu[ge]; guan4=0; Delay_ms(1); guan4=1; P1=0x00; } void main() { DS18b20_init(); while(1) { if(stuas==0) { read_temp(); display(read_temp()); } else { DS18b20_init(); led1==0; } } } |
|
相关推荐
8个回答
|
|
|
看我发的贴.应该可以帮你一把
|
|
|
|
|
|
|
|
|
|
|
|
无作用
|
|
|
|
|
|
|
|
|
但,你那个程序中 有串口中断啊
|
|
|
|
|
|
但,你那个程序中有中断啊
|
|
|
|
|
|
不理它.串口只是来打印调试信息的.或者是以前的程序没有删除它.
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1634 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4741 浏览 0 评论
4231 浏览 9 评论
3824 浏览 16 评论
4400 浏览 1 评论
4213浏览 3评论
2381浏览 0评论
3395浏览 0评论
1159浏览 0评论
2844浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:28 , Processed in 1.036305 second(s), Total 93, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3383