首页 » 智能 » 51/52单片机14课:温控开关_法式_声明

51/52单片机14课:温控开关_法式_声明

admin 2024-12-27 09:55:23 0

扫一扫用手机浏览

文章目录 [+]

#include <reg51.h>//头文件

#define uint unsigned int//宏定义

51/52单片机14课:温控开关_法式_声明 51/52单片机14课:温控开关_法式_声明 智能

#define uchar unsigned char //宏定义

51/52单片机14课:温控开关_法式_声明 51/52单片机14课:温控开关_法式_声明 智能
(图片来自网络侵删)

sbit DQ=P3^2;//18B20的2脚与单片机P3.2口相接

sbit P10=P1^0;//数码管位选引脚P1.0

sbit P11=P1^1;//数码管位选引脚P1.1

sbit P14=P1^4;//继电器掌握引脚

uchar temp;

uchar htemp=30;//动作温度值

code unsigned char sz []={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9数组

void delay (uint t);//延时函数声明

void delayms(uint a);//for语句延时函数声明

void init();//18B20初始化程序声明

void write (uchar dat);//写1字节程序声明

uchar read ();//读1字节程序声明

void display();//显示程序声明

uchar readtemp();//读温度程序声明

void delay (uint t)//延时函数

{

while(t--);

}

void delayms(uint a) //for语句延时函数

{

uint x,y;

for(x=a;x>0;x--)

for(y=110;y>0;y--);

}

void init ()//18B20初始化程序

{

uchar n;

DQ=1;

delay(8);

DQ=0;

delay(80);

DQ=1;

delay(8);

n=DQ;

delay(4);

}

void write (uchar dat)//写1字节程序

{

uchar i;

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

{

DQ=0;

DQ=dat&0x01;

delay (4);

DQ=1;

dat>>=1;//dat=dat>>1

}

delay(4);

}

uchar read ()//读1字节程序

{

uchar i,value;

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

{

DQ=0;

value>>=1;

DQ=1;

if(DQ)///

value|=0x80;

delay(4);

}

return value;

}

uchar readtemp()//读温度程序

{

uchar a,b;

init();

write (0xcc);

write (0x44);

delay (300);

init ();

write (0xcc);

write (0xbe);

a=read();

b=read();

b<<=4;

b+=(a&0xf0)>>4;

return b;

}

void display ()//显示程序

{

P10=0;

P0=sz[temp/10];

delayms(2);

P10=1;

P11=0;

P0=sz[temp%10];

delayms(2);

P11=1;

}

void main()//主程序

{

while(1)

{

temp=readtemp();

display ();

if (temp>=htemp)

{

P14=0;

}

else

{

P14=1;

}

}

}

标签:

相关文章

招远IT培训,助力未来职场精英的摇篮

随着科技的飞速发展,我国已进入数字经济时代。在这个时代背景下,IT行业成为了最具发展潜力的行业之一。而招远IT培训,作为培养未来职...

智能 2024-12-29 阅读0 评论0

捷忆思IT库,智能时代的数据宝库

随着互联网技术的飞速发展,大数据、人工智能、云计算等新兴技术层出不穷,数据已经成为新时代的重要资产。在这样的背景下,捷忆思IT库应...

智能 2024-12-29 阅读0 评论0