原创 51 ds18b20温度计实验 实验(十五)

2008-5-12 11:10 4733 7 7 分类: MCU/ 嵌入式

点击下载


这个实验利用DS18B20做一个温度计实验,详情见附件


平台:FDR51开发板


主程序代码:


#include <reg52.h>


#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);
 }
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条