比0 冷1度c语言编程,关于DS18B20的C语言程序(精确度0.1度)

/***************************************************

功能:温度模糊控制系统程序

设计者:蓝若天

来源:http://doc.xuehai.net

晶振:12MHz

****************************************************/

#include

unsigned int set=40; //设定温度存储单元

unsigned int tvaluet; // 前一次温度存储单元

unsigned int tvalue; //当前温度值

unsigned char pwm; //pwm输出缓存

unsigned char tflag=0; //温度正负标志

unsigned char oflag=0; //模糊输出正负标志

sbit DQ =P2^0; //定义通信端口

sbit k1=P1^0; //功能键

sbit k2=P1^1; //加一键

sbit k3=P1^2; //减一键

sbit re=P1^3; //加热

sbit le=P1^4; //制冷

sbit spker=P1^5; //蜂鸣器

unsigned char code tab[]={0x11,0x0d7,0x32,0x92,0x0d4,0x98,0X18,0X0d1,0X10,0X90,

0x01,0x0C7,0x22,0x82,0x0C4,0x88,0x08,0x0C3,0x00,0x80,0x0ff,0x0fe};

//0, 1, 2 3 4 5 6 7 8 9//

//0., 1., 2., 3., 4., 5., 6., 7., 8., 9., close,-//

//*************延时函数*********************

void delay(unsigned int i)

{

while(i--);

}

//*************闪烁显示函数*****************

void display1(void)

{unsigned char i;

for(i=0;i<3;i++)

{SBUF=tab[20];

while(TI!=0)

{TI=0;

break;

}

}

}

//***************显示函数****************

void display2(unsigned char m)

{unsigned char disp[3];

unsigned char i;

disp[0]=0x00;

disp[1]=m%10+10;

disp[2]=m/10;

for(i=0;i<3;i++)

{SBUF=tab[disp];

while(TI!=0)

{TI=0;

break;

}

}

}

//********************按键扫描程序**************

void keyscan(void) //按键扫描程序

{unsigned char n; //按键标志单元

unsigned int sett; //设定温度调整时临时存储单元

k1=1;

k2=1;

k3=1;

n=2;

if(k1==0)

{

delay(600); //按键延时消抖

if(k1==0)

{n--;

sett=set;

spker=0;

delay(600);

spker=1;

while(k1==0);

switch(n)

{case (2):{return;break;}

case (1):

{ while(n)

{display1(); //调用按键调整闪烁显示程序

delay(10000); //调用延时程序

display2(sett); //调用显示程序

delay(10000);

if(k1==0)

delay(600); //按键延时消抖

if(k1==0)

{n--;

spker=0;

delay(600);

spker=1;

while(k1==0);

}

if (k2==0)

delay(600); //按键延时消抖

if (k2==0)

{spker=0;

delay(1000);

spker=1;

if(sett<80)

sett++;

else sett=40;

}

if(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值