久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2136|回復: 0
打印 上一主題 下一主題
收起左側

單片機ds18b20數碼管顯示問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:516588 發表于 2019-5-23 21:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我在用中斷讀取溫度值的時候,送到數碼管中顯示的時候會閃爍,源程序如下
#include<reg52.h>
#include<intrins.h>
typedef unsigned int ui;
typedef unsigned char uc;
sbit dq=P3^7;
sbit a1=P1^7;
sbit a2=P1^6;
sbit a3=P1^5;
bit flag;
uc num;
ui m,c=0;
uc code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uc code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,
0xed,0xfd,0x87,0xff,0xef};
void delay(uc x)
{
        uc a,b;
        for(a=x;a>0;a--)
                for(b=10;b>0;b--);
}
void delay1(uc x)
{
        while(--x);
}
void delay2(ui x)
{
        ui a,b;
        for(a=x;a>0;a--)
                for(b=500;b>0;b--);
}
void inti()                 //初始化
{
        uc i;
        dq=1;
        _nop_();
        _nop_();
        dq=0;
    delay(20);  //大概延時640us
        dq=1;
        while((dq)&&(i<200))
        i++;
        delay1(50);          //延時114us讓ds18b20保持低電平
        dq=1;
}
void write_time(uc dat)          //寫操作
{
        uc i,a;
        for(i=0;i<8;i++)
        {
            a=dat&0x01;
                dat>>=1;
                if(a==0)   //判斷是否寫0;
                {
                        dq=0;
                        delay1(27);         //延時64us,至少60us
                        dq=1;
                }
                else                   //否則寫1
                {
                        dq=0;
                        _nop_();
                        _nop_();
                        dq=1;
                        delay1(27);//延時了64us,從拉低總線開始到這兒至少60us
                }                                
        }
        dq=1;
}
uc read_time()          //讀操作
{
        uc i,date=0,a=0;
        for(i=0;i<8;i++)
        {
                dq=0;
                _nop_();
                dq=1;
                _nop_();
                _nop_();
                a=dq;
                date=(date>>1) | (a<<7);
                delay1(27);        //延時64us
        }
        return date;
}  
ui duwendu()
{               
        uc a=0,b=0;
        float k=0;
        inti();
        delay(35);
        write_time(0xcc);
        write_time(0x44);
        delay2(300);
        inti();
        delay(35);
        write_time(0xcc);
        write_time(0xbe);
        a=read_time();
        b=read_time();
        c=b;                  //C為整形數據,一般占用2個字節
        c<<=8;
        c=c|a;
        k=c*0.0625;
        c=k*10+0.5;
        return c;
}

         
void display(uc bai,uc shi,uc ge)
{
        a1=1;
        a2=1;
        a3=0;
        P0=table[bai];
        delay(5);

        a1=0;
        a2=0;
        a3=1;
        P0=table1[shi];
        delay(5);

        a1=1;
        a2=0;
        a3=1;
        P0=table[ge];
        delay(5);
}

void main()
{        
        EA=1;
        ET1=1;
        TMOD=0X10;
        TH1=0X4C;
        TL1=0X00;
        TR1=1;        
        while(1)
        {
//                duwendu();
                display(c/100,c%100/10,c%10);        
        }               
}        
void zd1() interrupt 3         //中斷
{         
        TH1=0x4c;
        TL1=0x00;
        num++;
        if(num==10)
        {
                num=0;
                duwendu();
        }
}  

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品中文字幕久久二区 | 在线欧美亚洲 | 亚洲精品一区二区三区中文字幕 | 作爱视频免费观看 | 国产精品一区二区日韩 | 国产精品久久久久久52avav | 中文字幕在线一区二区三区 | 久久伊人精品 | 欧美成人一区二区三区片免费 | 99精品久久久久久 | 免费的av网站 | 午夜亚洲 | av香蕉| 午夜天堂精品久久久久 | 国产美女视频黄a视频免费 国产精品福利视频 | 亚洲精品国产第一综合99久久 | 亚洲码欧美码一区二区三区 | 精品视频在线免费观看 | 日韩视频精品在线 | 日韩电影一区 | 美女网站视频免费黄 | 波多野结衣中文字幕一区二区三区 | 日本久久精品 | 日本人做爰大片免费观看一老师 | www.888www看片 | 国产免费一区二区三区免费视频 | 国产美女视频黄 | 涩爱av一区二区三区 | 国产高潮好爽受不了了夜夜做 | 女同久久 | 成人精品一区 | 一区二区视频 | 成人毛片视频免费 | 毛片国产 | av在线播放网址 | 欧美亚州综合 | 亚洲欧美在线视频 | 欧美精品中文 | 国产乱码精品一区二区三区五月婷 | 黑人精品欧美一区二区蜜桃 | 久久免费精品 |