新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 18B20溫度1602顯示

        18B20溫度1602顯示

        作者: 時間:2016-11-30 來源:網絡 收藏

        void ReadTemp(void)
        {
        uchar a=0;
        uchar b=0;
        uchar t=0;
        Init_DS18B20();
        WriteOneChar(0xCC); // 跳過讀序號列號的操作
        WriteOneChar(0x44); // 啟動溫度轉換
        delay_18B20(100); // this message is wery important
        Init_DS18B20();
        WriteOneChar(0xCC); //跳過讀序號列號的操作
        WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
        delay_18B20(100);
        a=ReadOneChar(); //讀取溫度值低位
        b=ReadOneChar(); //讀取溫度值高位
        temp_value=b<<4;
        temp_value+=(a&0xf0)>>4;
        }

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

        void time1(void)
        {
        unsigned char i;

        for(i=0;i<20;i++)
        {
        TMOD = 0x01;
        TH0 = 0x3C;
        TL0 = 0x0B0;
        TR0 = 1;
        while(!TF0);
        TF0=0;
        TH0=0x3c;
        TL0=0x0b0;
        TR0=1;
        }
        }
        void wait() //等待繁忙
        {
        P0=0xff;
        do
        {
        EN=0;
        RS=0;
        RW=1;
        EN=1;
        }while(busy==1);
        EN=0;
        }
        void writecmd(unsigned char k)//寫命令
        {
        wait();
        RS=0;
        RW=0;
        P0=k;
        EN=1;
        EN=0;
        }
        void writedat(unsigned char p) //寫數據
        {
        wait();
        RS=1;
        RW=0;
        P0=p;
        EN=1;
        EN=0;
        }
        void init1602() //1602初始化
        {
        writecmd(0x38);
        writecmd(0x0c);
        writecmd(0x06);
        writecmd(0x01);
        }
        void main()
        {
        unsigned char *p;


        init1602();
        p=show1;
        writecmd(0x80);
        while(*p!=

        主站蜘蛛池模板: 通辽市| 永靖县| 黄骅市| 延长县| 梅州市| 澳门| 章丘市| 吉安市| 佛教| 奇台县| 唐山市| 阜新市| 和林格尔县| 日土县| 台江县| 陆丰市| 曲阜市| 黄山市| 桃园市| 麻栗坡县| 子长县| 周口市| 陵川县| 祁连县| 九江县| 昆明市| 富裕县| 东兴市| 垣曲县| 寿宁县| 富顺县| 天气| 原阳县| 英德市| 蒙自县| 凤翔县| 昭通市| 雷州市| 边坝县| 惠水县| 双桥区|