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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

【求助】cvavr 不用1wire函數編寫ds18b20讀不出溫度

[復制鏈接]
跳轉到指定樓層
樓主
ID:46918 發表于 2012-12-1 23:56 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式

最近幾天,一直在用cvavr編寫ds18b20的程序,用protues進行仿真,一直沒成功過,很糾結。讀出來的數據不是ffff,就是37.6,剛剛讀出個-123.9出來了,調ds18b20 的溫度lcd顯示也不變,估計是沒有讀出數據來,求高手指點迷津,下面是程序,麻煩大俠指出問題所在,希望有好心人分享下杰作(最好是通過仿真的)如果是分模塊做的希望把模塊中的子程序也附上,本人剛上手,很多東西都不是很熟,有的話發我郵箱非常感謝!

我是用頭文件的形式把ds要用的函數嵌進主函數的,我用的是lcd顯示,lcd程序也是沒有調用函數,是自己編的,是ok的,現在問題就是讀不出數據來

要說明的幾點就是我在<dspredef.h>中已經定義好了端口:

#ifndef _dspredef_h_
#define _dspredef_h_

#include <mega16.h>

#include <delay.h>

//#define nop() #asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")#asm ("nop")
                   
            


#define uchar unsigned char
#define uint unsigned int

#define openlcd DDRC = 0xc0;DDRB = 0xff
#define lcden PORTC.6
#define lcdrs PORTC.7

#define outdsdq DDRA.7 = 1
#define indsdq DDRA.7 = 0
#define ds18dqw PORTA.7
#define ds18dqr PINA.7

 


#endif

上面的是定義文件

#ifndef _dsfun_h_
#define _dsfun_h_

#include <dspredef.h>

uchar numtable[] = "0123456789. -";
uchar tmpcode[6] = {0,0,0,0,0,0};

uchar dsreset()
{
    uchar a;
    outdsdq;
    ds18dqw = 0;
   
    #asm("cli")
    delay_us(500);
    #asm("sei")
   
    ds18dqw = 1;
    
    #asm("cli")
    delay_us(100);
    #asm("sei")
   
    indsdq;
    a = ds18dqr;
    a = ds18dqr;
   
    #asm("cli")
    delay_us(500);
    #asm("sei")
   
    return (a);
      
}

uchar dsread()
{
    uchar i,k = 0,buf;
    i = 8;
    while(i--)
    {  
        outdsdq;
        ds18dqw = 0;
       
        #asm("cli")
        delay_us(10);
        #asm("sei")
       
        ds18dqw = 1;
        indsdq;
        k >>= 1;
        buf = ds18dqr;
        buf = ds18dqr;
        if(buf)k |= 0x80;
       
        #asm("cli")
        delay_us(50);
        #asm("sei")
       
    }
    return (k);
}

void dswrite(uchar dat)
{
    uint j;
    outdsdq;
    for(j = 1;j <= 8;j++)
    {
        ds18dqw = 0;
       
        #asm("cli")
        delay_us(10);
        #asm("sei")
       
        if(dat & 0x01)
        {
            ds18dqw =1;
           
//            #asm("cli")
//            delay_us(45);
//            #asm("sei")
        }
//        else
//        {
//            ds18dqw = 0;
//           
//            #asm("cli")
//            delay_us(45);
//            #asm("sei")
//           
//            ds18dqw = 1;
//            
//            #asm("cli")
//            delay_us(35);
//            #asm("sei")
//        }
        #asm("cli")
        delay_us(100);
        #asm("sei")
        ds18dqw = 1;  
        dat >>= 1;
    }
}

void dschange()
{
    dsreset();
    dswrite(0xcc);
    dswrite(0x44);  
}

uint dstmp()
{
    uchar tmpl,tmph;
    uint tmp;
    dsreset();
    dswrite(0xcc);
    dswrite(0xbe);
    tmpl = dsread();
    tmph = dsread();
   
    tmp = tmpl;
    tmp <<= 8;
    tmp |= tmph;
   
    return (tmp);
   
       
}

void tmpdispose(uint t)
{  
    if(t <= 0x07ff)
    tmpcode[0] = numtable[11];
    else
    {
        tmpcode[0] = numtable[12];
        t = ~t +1;
    }
    t *= 0.625;
    tmpcode[1] = numtable[t / 1000];
    tmpcode[2] = numtable[(t % 1000) / 100];
    tmpcode[3] = numtable[(t % 100) / 10];
    tmpcode[4] = numtable[10];
    tmpcode[5] = numtable[t % 10];
}

#endif

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线视频网 | 亚洲一区二区在线视频 | 成人免费网站 | 成人精品久久久 | 在线一级片 | 国产乱xxav | 日韩av手机在线观看 | 精品国产久 | 激情五月婷婷综合 | 日本国产高清 | 久久国产精品免费一区二区三区 | 日韩av在线中文字幕 | 成人性视频免费网站 | 国产精品国产三级国产aⅴ原创 | 国产精品一区二区av | 国产精品99久久久久久动医院 | 91在线精品视频 | 一本色道精品久久一区二区三区 | 亚洲二区在线 | 欧美爱爱视频网站 | 国产精品日韩欧美一区二区三区 | 日韩欧美日韩在线 | 波多野结衣中文字幕一区二区三区 | 3级毛片 | 国产99精品 | www.99re5.com| 天堂一区 | 亚洲一区二区三区国产 | 91pao对白在线播放 | 狠狠婷婷综合久久久久久妖精 | 久久看精品 | 日本三级视频 | 成人在线免费视频观看 | 97精品一区二区 | 超碰日本 | 99国产精品视频免费观看一公开 | 久久综合九九 | 九九九久久国产免费 | 久久久久亚洲精品中文字幕 | 特级黄一级播放 | 亚洲 日本 欧美 中文幕 |