资源描述:
《单片机测量温的电路图及相应程序另一种方案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#include#include#defineucharunsignedchar#defineuintunsignedint;/******************************************************************//*定义端口*//*************************************************
2、*****************/sbitseg1=P2^0;sbitseg2=P2^1;sbitseg3=P2^2;sbitDQ=P1^3;//ds18b20端口sbitDQ2=P1^4;//ds18b20端口sfrdataled=0x80;//显示数据端口/******************************************************************//*全局变量*//******************************************************************/
3、uinttemp;uinttemp2;ucharflag_get,count,num,minute,second;ucharcodetab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//7段数码管段码表共阳ucharstr[4];/******************************************************************//*函数声明*//**************************************************
4、****************/voiddelay1(ucharMS);unsignedintReadTemperature(void);unsignedintReadTemperature2(void);voidInit_DS18B20(void);voidInit_DS18B202(void);unsignedcharReadOneChar(void);unsignedcharReadOneChar2(void);voidWriteOneChar(unsignedchardat);voidWriteOneChar2(unsignedcha
5、rdat);voiddelay(unsignedinti);voidUARTinit(void){SCON=0x50;/*SCON:模式1,8-bitUART,使能接收*/TMOD
6、=0x20;/*TMOD:timer1,mode2,8-bitreload*/TH1=0xFD;/*TH1:reloadvaluefor9600baud@11.0592MHz*/TR1=1;/*TR1:timer1run*///EA=1;/*打开总中断*///ES=1;TI=1;}/******************************************
7、************************//*主函数*//******************************************************************/main(){unsignedintTempH,TempL;unsignedintTempH2,TempL2;TMOD
8、=0x01;//定时器设置TH0=0xef;TL0=0xf0;IE=0x82;TR0=1;UARTinit();P2=0x00;count=0;while(1){str[0]=tab[(TempH%100)/10];//十位温度s
9、tr[1]=tab[(TempH%100)%10];//个位温度str[2]=tab[(TempH2%100)/10];//十位温度str[3]=tab[(TempH2%100)%10];//个位温度if(flag_get==1)//定时读取当前温度{temp=ReadTemperature();TempH=temp>>4;TempL=temp&0x0F;TempL=TempL*6/10;//小数近似处理temp2=ReadTemperature2();TempH2=temp2>>4;TempL2=temp2&0x0F;TempL2=TempL
10、2*6/10;//小数近似处理printf("%d,%d",TempH,TempH2);flag_get=0;}}}/************