完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
开发板温度模块电路图如下:
目的:利用开发板温度传感器测量温度,并在数码管显示。 主函数: #include《reg52.h》 #include《temp.h》 #define uc unsigned char #define ui unsigned int ***it LSA=P2^2; ***it LSB=P2^3; ***it LSC=P2^4; uc code x[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uc disp[8]; void delay(uc x) { uc i,j; for(i=1;i《=x;i++) for(j=1;j《=110;j++); } void digdisplay() { uc i; for(i=1;i《=6;i++) { switch(i) { case(1): LSA=0;LSB=0;LSC=0;break; case(2): LSA=1;LSB=0;LSC=0;break; case(3): LSA=0;LSB=1;LSC=0;break; case(4): LSA=1;LSB=1;LSC=0;break; case(5): LSA=0;LSB=0;LSC=1;break; case(6): LSA=1;LSB=0;LSC=1;break; } P0=disp[i]; delay(1); P0=0x00; } } void datapros(int temp) { float tp; if(temp《0) { disp[6]=0x40; temp=temp-1; temp=~temp; tp=temp; temp=tp*0.0625*100+0.5;//*100将两位小数加入整数中方便后期处理,+0.5是四舍五入进位处理 } else { disp[6]=0x00; tp=temp; temp=tp*0.0625*100+0.5; } disp[5]=x[temp/10000]; disp[4]=x[temp%10000/1000]; disp[3]=x[temp%1000/100]|0x80; disp[2]=x[temp%100/10]; disp[1]=x[temp%10]; } void main() { while(1) { datapros(ds18b20readtemp()); digdisplay(); } } DS18B20温度传感器配置: #include《temp.h》 void delay1ms(ui x) { ui i,j; for(i=1;i《=x;i++) for(j=1;j《=110;j++); } uc ds18b20init() { uc a,b; dsport=0; for(b=71;b》0;b--)//延时500微秒 for(a=2;a》0;a--); dsport=1; while(dsport) { delay1ms(5);//延时5微秒 return 0; } return 1; } void ds18b20writebyte(uc dat) { uc i,j; for(i=1;i《=8;i++) { dsport=0; j++;//?? dsport=dat&0x01; for(j=31;j》0;j--);//延时65微秒 dsport=1; dat》》=1; } } uc ds18b20readbyte() { uc i,j,dat,byte=0; for(i=1;i《=8;i++) { dsport=0; j++; dsport=1; j++;j++;//延时6微秒 dat=dsport; byte=(byte》》1)|(dat《《7); j=4;while(j--);//延时48微秒 } return byte; } void ds18b20changtemp() { ds18b20init(); delay1ms(1); ds18b20writebyte(0xcc); ds18b20writebyte(0x44); } void ds18b20readtempcom() { ds18b20init(); delay1ms(1); ds18b20writebyte(0xcc); ds18b20writebyte(0xbe); } int ds18b20readtemp() { int temp=0; uc tmh,tml; ds18b20changtemp(); ds18b20readtempcom(); tml=ds18b20readbyte(); tmh=ds18b20readbyte(); temp=tmh; temp《《=8; temp|=tml; return temp; } 温度传感器头文件: #ifndef _temp_H #define _temp_H #include《reg52.h》 #ifndef uc #define uc unsigned char #endif #ifndef ui #define ui unsigned int #endif ***it dsport=P3^7; int ds18b20readtemp(); #endif |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
329浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:45 , Processed in 2.157684 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号