微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 高手进来帮忙修改下程序

高手进来帮忙修改下程序

时间:10-02 整理:3721RD 点击:
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit DQ=P3^4;
uint temp;
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint x)
{
uchar i;
while(x--);
for(i=0;i<120;i++);
}
void delay1(uint a)
{
while(--a);
}
void disp(uchar num)//显示函数
{
uchar shi,ge;
shi=num/10;
ge=num%10;
dula=1;
P0=table[shi];
dula=0;
P0=xff;
    wela=1;
P0=0xfe;
wela=0;
delay(5);
   
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
}
uchar init_18b20()
{
uchar a;
DQ=1;
//高电平 的延时
delay1(8);
//拉低总线
DQ=0;
//480-960us;
delay1(90);
DQ=1;//释放总线
_nop_();
_nop_();
a=DQ;//检测总线
delay1(100);
DQ=1;//拉高总线
return(a);
}
void write(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
  DQ=0;
  DQ=dat&0x01;//0000 0001
  delay1(5);
  DQ=1;
  dat>>=1
}
}
uchar read()
{
uchar i;dat=0;
DQ=1;
    _nop_();
for(i=0;i<8;i++)
{
  DQ=0;
     _nop_();
     _nop_();
  dat>>=1;
  DQ=1;
  _nop_();
  _nop_();
  if(DQ)
        dat|=0x80;
  delay1(30);
  DQ=1;
}
return(dat)
}
void read_tu()
{  uchar a,b;
init_18b20();
write(0xcc);
write(0x44);
init_18b20();
write(0xcc);
write(0xbe);
a=read();
b=read()
    b<<=4;
b+=(a&0xf0)>>4;
return b;
}
void main()
{
delay(30);
while(1);
{
  temp=read_tu();
  disp(temp);
}
}
这是温度报警器的程序,设置了高于70度低于-20度 报警,我想把数值改下,要怎么改啊


你确定你那个程序有报警的功能?

自己解决啊,多调试啊,这样才能学到东西啊!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top