欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2975|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

DS18B20和步進(jìn)電機(jī)為啥不會(huì)轉(zhuǎn)呢?

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 200 黑幣 回復(fù)本帖可獲得 10 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:241873 發(fā)表于 2017-12-27 10:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#define uint        unsigned        int
#define        uchar        unsigned        char       
#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}
#define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}
#define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}
#define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;
#define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}
sbit DSPORT=P3^7;
sbit A1=P1^0;
sbit B1=P1^1;
sbit C1=P1^2;
sbit D1=P1^3;
uchar Speed;
void Delay1ms(uint y);
void Delay1ms(uint y)
{
uint x;
for(y;y>0;y--)
   for(x=110;x>0;x--);
}



unsigned char Ds18b20Init()
{
        unsigned int i;
        DSPORT=0;                       
        i=70;        
        while(i--);
        DSPORT=1;                       
        i=0;
        while(DSPORT)      
        {
                i++;
                if(i>5000)
                        return 0;   
        }
        return 1;
}



void Ds18b20WriteByte(unsigned char dat)
{
        unsigned int i,j;
        for(j=0;j<8;j++)
        {
                DSPORT=0;                        
                i++;
                DSPORT=dat&0x01;
                i=6;
                while(i--);
                DSPORT=1;      
                dat>>=1;
        }
}



unsigned char Ds18b20ReadByte()
{
        unsigned char byte,bi;
        unsigned int i,j;        
        for(j=8;j>0;j--)
        {
                DSPORT=0;
                i++;
                DSPORT=1;
                i++;
                i++;
                bi=DSPORT;        

                byte=(byte>>1)|(bi<<7);                                                  
                i=4;               
                while(i--);
        }                                
        return byte;
}
void  Ds18b20ChangTemp()
{
        Ds18b20Init();
        Delay1ms(1);
        Ds18b20WriteByte(0xcc);                             
        Ds18b20WriteByte(0x44);         


}


void  Ds18b20ReadTempCom()
{        

        Ds18b20Init();
        Delay1ms(1);
        Ds18b20WriteByte(0xcc);        
        Ds18b20WriteByte(0xbe);         
}

int Ds18b20ReadTemp()
{
        int temp=0;
        unsigned char tmh,tml;
        Ds18b20ChangTemp();                                 
        Ds18b20ReadTempCom();                        
        tml=Ds18b20ReadByte();               
        tmh=Ds18b20ReadByte();               
        temp=tmh;
        temp<<=8;
        temp|=tml;
        return temp;
}



void        main()
{
        unsigned int tp,j,i;
        tp=Ds18b20ReadTemp;
        Speed=2;
       
    while(1)
        {
                if(tp>=20)
                {      
         Coil_A1      
     Delay1ms(Speed);
     Coil_AB1               
     Delay1ms(Speed);         
         Coil_B1      
      Delay1ms(Speed);
     Coil_BC1
       Delay1ms(Speed);
         Coil_C1      
       Delay1ms(Speed);
     Coil_CD1
      Delay1ms(Speed);
         Coil_D1      
      Delay1ms(Speed);
     Coil_DA1
     Delay1ms(Speed);

                        Coil_OFF;
                        for(i=0;i<10;i++)        
                        {
                                for(j=0;j<60;j++)
                                {
                                        Delay1ms(1000);
                                }
                        }
                }        
        }
   }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:78322 發(fā)表于 2017-12-27 15:01 | 只看該作者
從程序看,你是采樣的溫度值大于20,就會(huì)啟動(dòng)馬達(dá),而且,你的溫度只采樣一次,如果一開始的值小于20,步進(jìn)電機(jī)就不會(huì)動(dòng)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:84283 發(fā)表于 2017-12-27 15:27 | 只看該作者
ds18b20你沒讓它工作,導(dǎo)致tp接收不到。
回復(fù)

使用道具 舉報(bào)

地板
ID:117053 發(fā)表于 2017-12-27 16:45 | 只看該作者
從程序上分析的話,會(huì)不會(huì)是因?yàn)槟愕臏囟葲]有達(dá)到要求,所以導(dǎo)致DS18B20和步進(jìn)電機(jī)不轉(zhuǎn)動(dòng)。
回復(fù)

使用道具 舉報(bào)

5#
ID:241873 發(fā)表于 2017-12-27 19:23 | 只看該作者
立里 發(fā)表于 2017-12-27 15:01
從程序看,你是采樣的溫度值大于20,就會(huì)啟動(dòng)馬達(dá),而且,你的溫度只采樣一次,如果一開始的值小于20,步進(jìn) ...

可以這樣說 我想做的是溫度大于這個(gè)就可以開始工作 不知道咋樣修改 了 可以幫下忙嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:241873 發(fā)表于 2017-12-27 19:23 | 只看該作者
qq1105424012 發(fā)表于 2017-12-27 15:27
ds18b20你沒讓它工作,導(dǎo)致tp接收不到。

這個(gè)就尷尬了 有啥辦法修改一下嗎
回復(fù)

使用道具 舉報(bào)

7#
ID:84283 發(fā)表于 2017-12-27 19:47 | 只看該作者
湮滅GG 發(fā)表于 2017-12-27 19:23
這個(gè)就尷尬了 有啥辦法修改一下嗎

把18B20 采集溫度的函數(shù)放在while中,讓它一直執(zhí)行從而改變得到tp的數(shù)值,20攝氏度以上就轉(zhuǎn)。  
回復(fù)

使用道具 舉報(bào)

8#
ID:84283 發(fā)表于 2017-12-27 19:49 | 只看該作者
湮滅GG 發(fā)表于 2017-12-27 19:23
這個(gè)就尷尬了 有啥辦法修改一下嗎

也就是這個(gè)函數(shù) Ds18b20ReadTemp()
回復(fù)

使用道具 舉報(bào)

9#
ID:241873 發(fā)表于 2017-12-28 10:10 | 只看該作者
qq1105424012 發(fā)表于 2017-12-27 19:49
也就是這個(gè)函數(shù) Ds18b20ReadTemp()

尷尬了 我把這個(gè)放進(jìn)去之后還是沒反應(yīng)。
回復(fù)

使用道具 舉報(bào)

10#
ID:267813 發(fā)表于 2017-12-28 11:33 | 只看該作者
void        main()
{
        unsigned int tp,j,i;
        tp=Ds18b20ReadTemp;
        Speed=2;
        
tp=Ds18b20ReadTemp();
這個(gè)地方有點(diǎn)語法錯(cuò)誤哈,否則你是根本沒有采集溫度,溫度為0,步進(jìn)電機(jī)當(dāng)然不動(dòng)啦
回復(fù)

使用道具 舉報(bào)

11#
ID:267813 發(fā)表于 2017-12-28 11:35 | 只看該作者
改為:
        
        Speed=2;
    while(1)
        {
        tp=Ds18b20ReadTemp();
再試試
        
回復(fù)

使用道具 舉報(bào)

12#
ID:241873 發(fā)表于 2017-12-28 15:14 | 只看該作者
zzzxxxccc 發(fā)表于 2017-12-28 11:33
void        main()
{
        unsigned int tp,j,i;

這個(gè)需要咋樣修改
回復(fù)

使用道具 舉報(bào)

13#
ID:268407 發(fā)表于 2017-12-28 16:29 | 只看該作者
溫度多高啊 ,溫度沒有達(dá)到要求。
回復(fù)

使用道具 舉報(bào)

14#
ID:262845 發(fā)表于 2017-12-30 12:05 | 只看該作者
采集溫度和驅(qū)動(dòng)要控時(shí)序,交差驅(qū)動(dòng),不能同時(shí)控制。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表