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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1866|回復(fù): 1
收起左側(cè)

關(guān)于DS18B20,STC15的驅(qū)動顯示00

[復(fù)制鏈接]
ID:813514 發(fā)表于 2020-8-20 08:46 | 顯示全部樓層 |閱讀模式
DS18B20我只想顯示兩位的數(shù)碼管,但啟動后一直顯示00,不顯示溫度不知道哪里出錯啦,求教!還有兩位數(shù)碼管的動態(tài)顯示我是在定時器里10MS的刷新頻率,DS18B20在進行時是關(guān)閉中斷的,這就造成刷新停止會出現(xiàn)一閃一閃的效果,如果能讓兩位數(shù)碼管在讀取DS18B20時候不閃,程序哪里需要改進跪求~

#include "ds18b20.h"

u8 Get_DS18B20_Ack(void)
{
        u8 ack=0;
        EA=0;
        DS18B20_Pin=0;
        Delay600us();
        DS18B20_Pin=1;
        Delay50us();
        ack=DS18B20_Pin;
        while(!DS18B20_Pin);
        EA=1;
       
        return(ack);
}

void DS18B20_WriteByte(u8 DS18B20_Byte)
{
        u8 mask;
        EA=0;

        for(mask=0x01;mask!=0;mask<<=1)
        {
                DS18B20_Pin=1;
          DS18B20_Pin=0;
          Delay2us();
                DS18B20_Pin=mask&DS18B20_Byte?1:0;
                Delay70us();
        }
        DS18B20_Pin=1;
        EA=1;
}

u8 DS18B20_ReadByte(void)
{
       
        unsigned char dat,mask;
        EA=0;
        for(mask=0x01;mask!=0;mask<<=1)
        {
                DS18B20_Pin=0;
                Delay2us();
                DS18B20_Pin=1;
                Delay2us();
                if(DS18B20_Pin)
                {
                        dat|=mask;
                }
                else
                {
                        dat&=~mask;
                }
                Delay70us();
        }
        DS18B20_Pin=1;
        EA=1;
       
        return(dat);
}

u8 DS18B20_Start(void)
{
        u8 ack=0;
        ack=Get_DS18B20_Ack();
        if(ack==0)
        {
                DS18B20_WriteByte(0xcc);
                DS18B20_WriteByte(0x44);
        }
       
        return(ack);
}

u16 Get_DS18B20_Temp(void)
{
        u16 temp;
        u8 LSB,MSB;
        u8 ack;
        ack=Get_DS18B20_Ack();
        if(ack==0)
        {
                DS18B20_WriteByte(0xcc);
                DS18B20_WriteByte(0xbe);
                LSB=DS18B20_ReadByte();
                MSB=DS18B20_ReadByte();
        }
        temp=MSB<<4;
        temp|=(LSB&0xf0)>>4;
        temp=temp*0.0625;
       
        return(temp);
}


回復(fù)

使用道具 舉報

ID:813514 發(fā)表于 2020-8-20 08:46 | 顯示全部樓層
#include "stc15.h"
#include "delay.h"
#include "ds18b20.h"

sbit Bit_0=P3^1;
sbit Bit_1=P3^0;
sbit DIO=P3^2;
sbit SCLK=P3^3;
sbit RCLK=P3^5;




unsigned char code numtab[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

u16 Temp;
void Timer2Init(void)       
{
        AUXR |= 0x04;               
        T2L = 0xA0;               
        T2H = 0x15;               
        AUXR |= 0x10;       
        IE|=0x80;
        IE2|=0x04;
}


void LED_ShowNum(u8 tab);
void LED_Display(u8 num);


void main(void)
{
        SCLK=0;                RCLK=0;
        Timer2Init();
        Delay800ms();
        while(1)
        {
                Delay800ms();
                DS18B20_Start();
                Temp=Get_DS18B20_Temp();
                Temp>>=4;
        }
       
}

void LED_ShowNum(u8 tab)
{
        u8 i;

        for(i=0x80;i!=0;i>>=1)
        {
                DIO=tab&i?1:0;
                SCLK=0; SCLK=1;
        }
        RCLK=0;        RCLK=1;
}
void LED_Display(u8 num)
{
                        static u8 i=0;
                        if(i==0)
                        {
                                            Bit_1=0;
                                                        Bit_0=1;
                                LED_ShowNum(numtab[num/10]);
                                                        i=1;
                        }
                        else
                        {               
                                                        Bit_1=1;
                                                        Bit_0=0;
                    LED_ShowNum(numtab[num%10]);
                                                        i=0;
                        }

}
void TIM2_IRQHandler(void) interrupt 12
{
        LED_Display(Temp);
}
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女在线观看 | 精品久久香蕉国产线看观看亚洲 | 91成人在线视频 | 91精品国产91久久久久久最新 | 污片在线观看 | 69福利影院 | 欧美啊v在线观看 | 午夜视频在线观看网址 | 久久久久久中文字幕 | 国产精品久久久久一区二区三区 | 91麻豆产精品久久久久久 | 欧美一区二区三区视频在线 | 亚洲欧美视频 | 成年男女免费视频网站 | 亚洲品质自拍视频 | 日韩www| 国产精品久久久久久久久久久久久久 | www.99re| 精品国产一区二区在线 | 亚洲欧美综合精品久久成人 | 国产中的精品av涩差av | 国产精品99免费视频 | 国内精品久久久久 | 国产网站在线免费观看 | 欧美一级大黄 | 三级免费 | 欧美日韩亚洲二区 | 欧美在线观看一区 | 日韩在线欧美 | 美女久久久久久久 | 中文字幕国产视频 | 久久久久久久久久久高潮一区二区 | 黄色中文字幕 | 欧美最猛黑人xxxx黑人 | 色婷婷综合久久久久中文一区二区 | 毛片高清 | 国产91久久精品一区二区 | 中文字幕在线观看视频网站 | 久久久av| 亚洲成人一区二区在线 | 久久99精品久久久久蜜桃tv |