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

標題: 【求助】cvavr 不用1wire函數編寫ds18b20讀不出溫度 [打印本頁]

作者: xuan12321    時間: 2012-12-1 23:56
標題: 【求助】cvavr 不用1wire函數編寫ds18b20讀不出溫度

最近幾天,一直在用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






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 操久久 | 国产成人一区二区 | 涩涩视频在线观看免费 | 国产精品综合 | 欧美激情欧美激情在线五月 | 午夜亚洲| 中文字幕av网站 | 黄色成人国产 | 国产一区二区三区免费 | 国产伦精品一区二区三区在线 | 黄色一级大片在线免费看产 | 日日射夜夜骑 | www.日韩 | 黄a在线播放 | 日韩区| 鲁一鲁资源影视 | 日韩精品视频一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 国产精品毛片一区二区在线看 | 国产精品久久久久久av公交车 | 国产中文在线观看 | 婷婷激情五月网 | 殴美成人在线视频 | 七七婷婷婷婷精品国产 | 精品久久一区 | 91久久精品国产91久久性色tv | 欧美国产精品 | 日韩一区二区三区视频 | 青青操91 | 97国产在线观看 | 日本精品一区二区三区视频 | 青草青草久热精品视频在线观看 | 日一日操一操 | 看a网站| 久久久91精品国产一区二区三区 | 亚洲第一区久久 | 精品国产高清一区二区三区 | 视频在线日韩 | 国产精品激情 | 国产精品一区二 | 日本二区在线观看 |