|
这个实验利用DS18B20做一个温度计实验,详情见 附件 平台:FDR51开发板 主程序代码: #include #include "ds18b20.h" #include "delay.h" #define LEDPORT P0 /*-------------数码管显示函数-------------------- 参数:number 要显示的数字 参数:pos 要显示的位置(从左到右为1--4) 返回值:无 ------------------------------------------------*/ void display(uchar number,uchar pos)//数码管显示函数 { uchar temp; //临时变量 if(number<10 && pos<5 && pos>0)//确定数据合法 { temp=(number<<4)&0xf0;//获得要显示的数据 temp+=1<<(pos-1); //送位置位 LEDPORT=temp; ////送显示数据,开始显示 } else return; } void leddisplay(unsigned int count) { unsigned char i="500"; while(i--) { if(count>=1000) { display(count/1000,1); delay_ms(1); display(count%1000/100,2); delay_ms(1); display(count%100/10,3); delay_ms(1); display(count%10,4); delay_10us(10); } else if(count>=100) { display(count/100,2); delay_ms(1); display(count%100/10,3); delay_ms(1); display(count%10,4); delay_10us(10); } else if(count>=10) { display(count/10,3); delay_ms(1); display(count%10,4); delay_10us(10); } else { display(count,4); delay_10us(10); } } } void main() { unsigned int temp="0"; while(1) { temp=(zhengshu*10+xiaoshu1); Read_18B20(); leddisplay(temp); } } |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|