⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 Keil C 写的51单片机DS18B20温度传感器的驱动
💻 C
字号:
#include<reg51.h>
#include<stdio.h>
#include"inc/define.h"		//数据类型定义
#include"inc/exactdly.h"	//精确延时函数
#include"inc/ds18b20.h"

extern u8 gActive_DS18B20;

void SerialInit(void);

int main()
{
	u8 i;
	s16 tempert;
	u8 ramData[9] = {0};
	u8 serialNO[8] = {0};
	
	SerialInit();
	while(1)
	{	
		SetAlarm(100,-30);
		GetRAMData(ramData);
		/*keil c的printf跟ansi c的printf不太一样。如果数据是8位的话需要加上b */
		printf("The High alarm Temperature is: %bd\n",(s8)ramData[2]);
		printf("The Low alarm Temperature is: %bd\n",(s8)ramData[3]);
		
		if(0==GetSerialNO(serialNO,1))
		{
			printf("serial number: ");
			for(i=0;i<8;i++)
				printf("%#bx  ",(u8)serialNO[i]);
			printf("\n");
		}
		else
		{
			printf("Wrong serial number Getted! Try again!\n");
		}
			
		tempert=GetTempert(1);
		if(-0x8400 != tempert)	//获得的温度数据正确
			printf("Now temperature is %4.1f\n",tempert/16.00);	
		else
			printf("Wrong temperature Getted! Try again!\n");
		printf("\n");

	}  
		
	return 0;
}

void SerialInit()	//串口初始化,为使用printf()和scanf()做准备
{
	SCON=0x53;	
	TMOD=0x20;
	TH1=0xFD;
	TR1=1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -