打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于AT89C2051+ds18b20的温度计程序设计
//本程序我己经通过使用,大家可以放心参考,不过这个程序只能显示二位,后两位是显示一个温度的符号!
#include
#include
#define uchar unsigned char
#define uint unsigned int

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint tempe;

sbit DQ=P3^5;
sbit p=P3^1;
sbit q=P3^2;
sbit r=P3^3;
sbit s=P3^4;

void delay1(uint z) //延时函数
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--) ;
}

void delay(uint t)
{
    while(t--);
}

void display(void)
{
    p=0;
    P1=table[tempe/10];
    delay1(1);
    P1=0xff;
    p=1;
    
    q=0;
    P1=table[tempe];
    delay1(1);
    P1=0xff;
    q=1;
    
    r=0;
    P1=0x9c;
    delay1(1);
    P1=0xff;
    r=1;
    
    s=0;
    P1=0xc6;
    delay1(1);
    P1=0xff;
    s=1;
}

void init_ds18b20(void)
{
    uchar sample;
    DQ=1;
    delay(8);
    DQ=0;
    delay(80);
    DQ=1;
    delay(8);
    sample=DQ;  //return(sample)带返回检测器件响应
    delay(4);
}

void wr_ds18b20(uchar dat)
{
    uchar i;
    for(i=0;i<8;i++)
    {
        DQ=0;
        DQ=dat&0x01;
        delay(4);
        DQ=1;
        dat>>=1;
    }
    delay(4);
}

uchar re_ds18b20(void)
{
    uchar i;
    uchar result;
    for(i=0;i<8;i++)
    {
        DQ=0;
        result>>=1;
        _nop_();
        DQ=1;
        if(DQ)
            result|=0x80;
        delay(4);
    }
    return(result);    
}

uchar rd_temperature(void)
{
    uchar a,b;
    init_ds18b20();
    wr_ds18b20(0xcc);   //跳过ROM
    wr_ds18b20(0x44);   //启动温度测量
    delay(300);
    
    init_ds18b20();
    wr_ds18b20(0xcc);
    wr_ds18b20(0xbe);
    a=re_ds18b20();
    b=re_ds18b20();
    b<<=4;
    b+=(a&0xf0)>>4;
    return(b);
}

void main()
{
    while(1)
    {
        tempe=rd_temperature();
        display();
        delay(1);
        display();
        delay(1);
    }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
51单片机多路DS18B20测温显示并读取序列号
51单片机制作实践
51/51单片机第9课:DS18B20温度检测系统
单片机温度检测报警程序(ds18b20)-Changing's Blog
温控器上下限设置方法
595级连的led点阵程序 - mingrihuiyi的日志 - 网易博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服