欢迎来到天天文库
浏览记录
ID:11040161
大小:46.00 KB
页数:7页
时间:2018-07-09
《单片机温度传感器c程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//DS18B20温度传感器和数码管显示//编程时间:2010.4.7-2010.4.9//陈小雄上传////**********************************************************//连线表:CPU=stc89C52SysClock=12MHz//LEDLE=P1.0控制位高电平有效LEDSEG=P2KEYBOARD=P3LEDWEI=P0.5-0,LED高到底//**********************************************************//DS18B20//********
2、**************************************************//连线表:CPU=stc89C52SysClock=12MHz*//单总线:TMDAT=P1.1////**********************************************************#include#defineucharunsignedchar#defineuintunsignedintuchardiscount=0;//显示扫描位计数ucharlast=0;//最终温度值ucharitcount=0x1
3、3;//定时器延时计数ucharseg[4];//数码管显示暂存uchartem[2];//读取温度暂存ucharflag=0;//温度正负标志位/********************LED引脚定义********************/sfrLEDSEG=0xA0;//P2sfrLEDWEI=0xB0;//P3/********************DS18B20引脚定义********************/sbitTMDAT=P1^0;//温度传感器数据位/********************DS18B20函数定义**************
4、*****/voiddmsec(uintcount);//延时(count)毫秒voidtmreset(void);//产生复位信号voidtmpre(void);//检测器件应答信号bittmrbit(void);//从总线读一个bituchartmrbyte(void);//从总线读一个字节voidmwbyte(uchardat);//向总线写一个字节voidtmstart(void);//启动一次温度转换uchartmrtemp(void);//读取温度数据/********************LED函数定义*******************/uc
5、har*uchartodectoseg(ucharunm);//字符转换为十进制然后转换为数码管段表voiddisp(uchar*seg);//显示函数voiddelay_ms(uintt);//延时函数/************************************************/ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x39};/*************数码表*******0123456789无显示C**************/
6、/************************************************/uchar*uchartodectoseg(ucharunm){ucharx00,xx,x0,x,n;x00=unm/100;//取百位xx=unm%100;//取余x0=xx/10;//取十位x=xx%10;//取余即取个位n=0;seg[n]=table[x00];n++;seg[n]=table[x0];n++;seg[n]=table[x];n++;seg[n]=table[11];//最后一位显示摄氏度符号Cif(flag==1)seg[0]=0x40;
7、//显示负号‘-’if(seg[0]==table[0])seg[0]=table[10];//如果百位为零则不显示if((seg[0]==table[0])&(seg[1]==table[0]))seg[1]=table[10];//如果百位为零且十位为零则十位不显示returnseg;}/***************************************************//******DELAY***************************/voiddelay_ms(uintt){uintm,n;for(m=0;m8、for(n=0;n<95
8、for(n=0;n<95
此文档下载收益归作者所有