基于单片机测量温度的电路图及相应程序new

基于单片机测量温度的电路图及相应程序new

ID:18448885

大小:69.50 KB

页数:5页

时间:2018-09-18

基于单片机测量温度的电路图及相应程序new_第1页
基于单片机测量温度的电路图及相应程序new_第2页
基于单片机测量温度的电路图及相应程序new_第3页
基于单片机测量温度的电路图及相应程序new_第4页
基于单片机测量温度的电路图及相应程序new_第5页
资源描述:

《基于单片机测量温度的电路图及相应程序new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#include#defineucharunsignedchar#defineuintunsignedint;/******************************************************************//*定义端口*//******************************************************************/sbitseg1=P2^0;sbitseg2

2、=P2^1;sbitseg3=P2^2;sbitDQ=P1^3;//ds18b20端口sfrdataled=0x80;//显示数据端口/******************************************************************//*全局变量*//******************************************************************/uinttemp;ucharflag_get,count,num,minute,second;ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66

3、,0x6d,0x7d,0x07,0x7f,0x6f};//7段数码管段码表共阳ucharstr[6];/******************************************************************//*函数声明*//******************************************************************/voiddelay1(ucharMS);unsignedintReadTemperature(void);voidInit_DS18B20(void);unsignedcharReadOneChar(voi

4、d);voidWriteOneChar(unsignedchardat);voiddelay(unsignedinti);/******************************************************************//*主函数*//******************************************************************/main(){unsignedcharTempH,TempL;TMOD

5、=0x01;//定时器设置TH0=0xef;TL0=0xf0;IE=0x82;TR0=1;P2=0x00;count

6、=0;while(1){str[5]=0x39;//显示C符号str[1]=tab[TempH/100];//十位温度str[2]=tab[(TempH%100)/10];//十位温度str[3]=tab[(TempH%100)%10]

7、0x80;//个位温度,带小数点str[4]=tab[TempL];if(flag_get==1)//定时读取当前温度{temp=ReadTemperature();if(temp&0x8000){str[0]=0x40;//负号标志temp=~temp;//取反加1temp+=1;}elsestr[0]=0;TempH=temp>>4;TempL=tem

8、p&0x0F;TempL=TempL*6/10;//小数近似处理flag_get=0;}}}/******************************************************************//*定时器中断*//******************************************************************/voidtim(void)interrupt1using1//中断,用于数码管扫描和温度检测间隔{TH0=0xef;//定时器重装值TL0=0xf0;num++;if(num==50){num=0;flag_get

9、=1;//标志位有效second++;if(second>=60){second=0;minute++;}}count++;if(count==1){P2=0;dataled=str[0];}//数码管扫描if(count==2){P2=1;dataled=str[1];}if(count==3){P2=2;dataled=str[2];}if(count==4){P2=3;dataled=str[3];}if(coun

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。