基于51单片机的DS18B20程序(数码管显示)

必须是自己用过可以用的,谢谢了!!!
2024-12-01 05:49:23
推荐回答(2个)
回答(1):

#include
#include"18b20.c"
sbit DQ =P1^0; //定义通信端口
unsigned char tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0, 1, 2 3 4 5 6 7 8 9

void delay(unsigned int i);//延时函数
Init_DS18B20(void); //初始化函数
ReadOneChar(void); //读一个字节
WriteOneChar(unsigned char dat); //写一个字节
ReadTemperature(void); //读取温度
void display(unsigned char i); //温度显示函数
unsigned char c=0,x=0;

//****主程序温度显示函数**********
void display(unsigned char i){
P0=tab[i/10];
P2=0x04;
delay(100);
P0=tab[i%10];
P2=0x02;
delay(100);
P0=tab[x];
P2=0x01;
delay(100);
}
void main(void){
unsigned char temp;
while(1){ //主循环
temp=ReadTemperature();
display(temp);
}
}

回答(2):

网页链接

有源码和protues仿真