#include<reg51.h>
#include"zhong.h"
#define uint unsigned int
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar t0,t1,yuzi,time;
void daleyt_1(uchar t)
{
for(t1=0;t1<t;t1++);
}
void int_1() interrupt 1
{
time++;
if(time==50){
D3=~D3;
D4=~D4;
D5=~D5;
D6=~D6;
time=0;
}
}
void main()
{
uchar yuzi,fazi,sswendu;
uint o;
EA=1;
TMOD=0X10;
ET0=1;
TH0=(65536-25000)/256;
TL0=(65536-25000)%256;
TR0=1;
D3=0;D4=0;D5=0;D6=0;
w1=0;w2=1;w3=0;w4=1;
P0=0xff;
yuzi=25;
o=3;
while(1)
{
sswendu = ReadTemperature();
yousmxs();
dj();
if(key1==0){
daleyt_1(10);
if(key1==0)
o=1;
}
if(key2==0){
daleyt_1(10);
if(key2==0)
o=2;
}
if(key3==0){
daleyt_1(10);
if(key3==0)
o=3;
}
if(key4==0){
daleyt_1(10);
if(key4==0)
o=4;
}
switch(o){
case 1:if(fazi==40){yuzi=25;break;}
fazi = yuzi++;
break;
case 2:if(fazi==10){yuzi=25;break;}
fazi = yuzi--;
break;
case 3:wendu_xs();break;
case 4:chufa_xs();break;
}
}
}
#include<reg51.h>
#include"zhong.h"
#define uint unsigned int
#define uchar unsigned char
uchar z,j;
uchar i;
uchar code shuzhi[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void yousmxs()
{
if(dianji_z==0)
{
P0=shuzhi[0];
}
else
{
for(i=0;i<2;i++)
{
P0=shuzhi[i];
}
}
daleyt_1(20);
w3=~w3;w4=~w4;
}
void chufa_xs()
{
z=fazi/10;
j=fazi%10;
P0=shuzhi[z];
daleyt_1(1);
w1=~w1;w2=~w2;
P0=shuzhi[j];
}
void wendu_xs()
{
z=sswendu/10;
j=sswendu%10;
P0=shuzhi[z];
daleyt_1(1);
w1=~w1;w2=~w2;
P0=shuzhi[j];
}
温度是ds18b20
#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DQ=P2^2;
void delay(uchar time)
{
uchar n;
n=0;
while(n<time)n++;
return;
}
uchar Init_DS18B20(void)
{
uchar x=0;
DQ=1;
delay(8);
DQ=0;
delay(85);
DQ=1;
delay(14);
x=DQ;
delay(20);
return x;
}
uchar ReadOneChar(void)
{
uchar i=0;
uchar dat=0;
for(i=8;i>0;i--)
{
DQ=1;
delay(1);
DQ=0;
dat>>=1;
delay(2);
if(DQ)dat|=0x80;
delay(4);
}
return(dat);
}
void WriteOneChar(uchar dat)
{
uchar i=0;
for(i=8;i>0;i--)
{
DQ=0;
delay(2);
DQ=dat&0x01;
delay(5);
DQ=1;
dat>>=1;
}
delay(4);
}
uchar ReadTemperature(void)
{
uchar l=0;
uchar m=0;
uchar temp,tempture;
Init_DS18B20();
WriteOneChar(0xcc);
WriteOneChar(0x44);
delay(125);
WriteOneChar(0xcc);
WriteOneChar(0xbe);
l=ReadOneChar();
m=ReadOneChar();
tempture=((m*256)+l)>>4;
delay(200);
return tempture;
}
你好,我是有问必答小助手。为了技术专家团更好地为您解答问题,烦请您补充下(1)问题背景详情,(2)您想解决的具体问题,(3)问题相关代码图片或者报错信息。便于技术专家团更好地理解问题,并给出解决方案。
您可以点击问题下方的【编辑】,进行补充修改问题。