DS18B20 测温显示,proteu s 仿真。 Written by jinsongliang 具体程序如下 Main.c: #include #include"lib51v3.c" #include"18b20.c" #include"segv3.c" void main (void) { unsigned char disp[5]={10,0,0,14,2}; signed char temp=0; while(1) { /*1、读取温度值*/ temp=Get_Temputer(); //2、显示前处理*/ if(temp<0) {disp[0]=13; temp=-temp; disp[1]=temp/10; disp[2]=temp%10; } else {disp[0]=temp/100; disp[1]=temp/10-disp[0]*10; disp[2]=temp%10; if(!disp[0]) //百位数不为 0 则显示,若要显示 0,可将其注释掉 disp[0]=10; } //3、显示*/ Seg_Display(disp); } } Lib51v3.c void Delay_Nus (unsigned char n) { while(n--); //for (;n>0;n--); } 18b20.c: /****************************************************************** 时序很重要,移植时注意延时函数 ******************************************************************/ #define B20_PORT P1 //此处可以设置I/O 口 #define B20_CHANNEL 0 #define R_B20_CHANNEL() B20_PORT&(1<