新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DS18B20延時函數版

        DS18B20延時函數版

        作者: 時間:2016-11-30 來源:網絡 收藏
        程序運行效果圖:



        //晶振12MHZ 常溫下測量0--99.9度

        本文引用地址:http://www.104case.com/article/201611/323912.htm

        #include
        #include
        #define uchar unsigned char
        #define uint unsigned int
        sfr wdtrst=0xa6;
        uchar code seg7[]={0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60}; //數碼管整數
        sbit dec=P0^5;//數碼管小數位
        sbit Dq=P3^4; //DS18B20讀寫口
        sbit alarm=P3^3; //喇叭報警位
        uint warning=0;//報警溫度變量
        //-------------------
        void rst() //看門狗系統復位函數晶振是12MHZ則看門狗自動復位時間為16ms
        {
        wdtrst=0x1e;
        wdtrst=0xe1;
        }
        //----------------------------
        void alarmstart()interrupt 3 //報警中斷子函數
        {
        if(warning>270)//溫度大于27度喇叭報警
        {alarm=~alarm;}
        TH1=0xff;
        TL1=0x60;
        TF1=0;
        EA=1;
        ET1=1;
        }

        //-----------------------------延時函數集---------------------
        void delay10us() //延時10us
        {
        _nop_(); _nop_(); _nop_(); _nop_();
        _nop_(); _nop_();
        }
        //----------
        void delay610us() //延時610us
        {
        uchar i,j;
        for(i=0;i<2;i++)
        for(j=0;j<100;j++);
        }

        //----------
        void delay34us() //延時34us
        {
        uchar i,j;
        for(i=0;i<2;i++)
        for(j=0;j<3;j++);
        }
        //----------
        void delay(uint k) //常用延時函數
        {
        uchar i,j;
        for(i=0;ifor(j=0;j<100;j++);
        }

        //-----------------DS18B20初始化函數----------
        uchar init18b20()
        {
        uint k=0;
        Dq=0;
        delay610us(); //延時610us
        Dq=1; //釋放總線
        delay10us(); //延時10us
        while(Dq==1) //18b20應答信號判斷是否超時
        {
        if(k<800)k++;
        else return 1;
        }
        k=0;
        while(Dq==0) //18b20是否釋放判斷
        {
        if(k<800)k++;
        else return 2;
        }
        return 3; //啟動成功返回 3
        }


        上一頁 1 2 下一頁

        關鍵詞: DS18B20延時函

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 洪洞县| 柳林县| 平山县| 集安市| 彩票| 嵊州市| 保靖县| 仁怀市| 龙山县| 清徐县| 乌审旗| 静安区| 开鲁县| 浮山县| 嘉峪关市| 清苑县| 剑河县| 施甸县| 会昌县| 襄汾县| 靖远县| 旅游| 广东省| 新沂市| 革吉县| 平度市| 军事| 名山县| 额尔古纳市| 张家界市| 彭阳县| 越西县| 景泰县| 东光县| 顺昌县| 凤阳县| 桦南县| 普宁市| 常宁市| 佛山市| 青阳县|