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

QQ登錄

只需一步,快速開始

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

基于51單片機(jī)和DS18B20的溫控電機(jī)Proteus仿真程序設(shè)計(jì)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


#include "reg51.h"
#include "ds18b20.c"
#include "lcd1602.c"
#include "timer.c"

sbit led_z = P1^3;
sbit led_f = P1^4;
sbit bz = P1^7;
sbit Ap = P1^0;
sbit Bp = P1^1;

void main(void)
{

        unsigned char tp,tp_old,tep,speed;
        unsigned char bz_on;
        unsigned char way;

        duty = 100;
        pwm = 25;

        tp = 25;
        tp_old = 25;
        tep = 26;

        speed = 0;
        led_z = 1;
        led_f = 1;
        bz = 0;
        bz_on = 0;
        way = 0;

        Init_LCD1602();
        Init_timer0();
        ds18b20_set_temp(85,0);//ζè0-85

        while(1)
        {
                ds18b20_temp_conver();
                LCD_Display_Byte(0,2,'T');
                LCD_Write(1,'e');
                LCD_Write(1,'m');
                LCD_Write(1,'p');
                LCD_Write(1,':');
                LCD_Write(1,'0'+tep/10);
                LCD_Write(1,'0'+tep%10);
                LCD_Write(1,'C');
                delayms(50);

                tp = ds18b20_read_temp();
                if(tp!=tp_old)
                {
                        tp_old = tp;
                        if(tp<100)
                        {
                                tep = tp;
                        }
                }
                if(tep<=10)
                {
                        pwm = (10-tep)*10;
                        speed = pwm;
                        if(tep==0)
                                bz_on = 1;
                        else
                                bz_on = 0;
                        way = 1;
                }
                else if(tep>=45)
                {
                        if(tep<=75)
                        {
                                pwm = (tep-45)*7/2;
                                if(pwm>99)
                                        pwm = 100;
                                speed = pwm;
                        }
                        else
                        {
                                pwm = 100;
                                speed = pwm;
                        }
                        if(tep>=75)
                                bz_on = 1;
                        else
                                bz_on = 0;
                        way= 0;
                }
                if((tep>10)&&(tep<45))
                {
                        pwm = 0;
                        speed = pwm;
                        bz_on = 0;
                }

                LCD_Display_Byte(1,2,'S');
                LCD_Write(1,'p');
                LCD_Write(1,'e');
                LCD_Write(1,'e');
                LCD_Write(1,'d');
                LCD_Write(1,':');
                LCD_Write(1,'0'+speed/100);
                LCD_Write(1,'0'+(speed/10)%10);
                LCD_Write(1,'0'+speed%10);
                LCD_Write(1,'%');

                if(pwm>0)
                {
                        if(!way)
                        {
                                Ap = 1;
                                Bp = 0;
                                led_z = 0;
                                led_f = 1;        
                        }
                        else
                        {
                                Ap = 0;
                                Bp = 1;        
                                led_z = 1;
                                led_f = 0;
                        }
                }
                else
                {
                                led_z = 1;
                                led_f = 1;
                }

                if(bz_on)
                        bz = ~bz;
                else
                        bz = 0;
                                                
        }
}



溫控電機(jī).zip

121.94 KB, 下載次數(shù): 128, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

來自 2#
ID:893265 發(fā)表于 2021-4-2 11:29 | 只看該作者
reworld 發(fā)表于 2021-3-30 14:29
您好~LCD1602沒有顯示內(nèi)容誒

51hei.png (30.6 KB, 下載次數(shù): 71)

51hei.png

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:720305 發(fā)表于 2021-3-28 17:32 | 只看該作者
電機(jī)周圍那四個(gè)器件是什么啊 急急急
回復(fù)

使用道具 舉報(bào)

地板
ID:766622 發(fā)表于 2021-3-30 14:29 | 只看該作者
您好~LCD1602沒有顯示內(nèi)容誒
回復(fù)

使用道具 舉報(bào)

5#
ID:720305 發(fā)表于 2021-4-1 16:25 | 只看該作者
reworld 發(fā)表于 2021-3-30 14:29
您好~LCD1602沒有顯示內(nèi)容誒

可能是protues版本的問題 我也做了一份類似的 可以私聊我
回復(fù)

使用道具 舉報(bào)

6#
ID:893265 發(fā)表于 2021-4-2 11:25 | 只看該作者
AI工程 發(fā)表于 2021-3-28 17:32
電機(jī)周圍那四個(gè)器件是什么啊 急急急

二極管
回復(fù)

使用道具 舉報(bào)

7#
ID:893265 發(fā)表于 2021-4-2 11:28 | 只看該作者
reworld 發(fā)表于 2021-3-30 14:29
您好~LCD1602沒有顯示內(nèi)容誒

應(yīng)該是你版本問題,截圖好像發(fā)不上來
回復(fù)

使用道具 舉報(bào)

8#
ID:899171 發(fā)表于 2021-4-2 14:44 | 只看該作者
參考下,希望我的溫度傳感器能有用
回復(fù)

使用道具 舉報(bào)

9#
ID:766622 發(fā)表于 2021-4-25 17:04 | 只看該作者

回復(fù)晚了抱歉,謝謝!
回復(fù)

使用道具 舉報(bào)

10#
ID:296417 發(fā)表于 2021-5-8 14:13 | 只看該作者
估計(jì)有參考價(jià)值
回復(fù)

使用道具 舉報(bào)

11#
ID:915917 發(fā)表于 2021-5-10 21:05 | 只看該作者
AI工程 發(fā)表于 2021-3-28 17:32
電機(jī)周圍那四個(gè)器件是什么啊 急急急

整流橋
回復(fù)

使用道具 舉報(bào)

12#
ID:245820 發(fā)表于 2021-5-11 10:58 | 只看該作者
剛好學(xué)習(xí)溫度傳感器,學(xué)習(xí)了,謝謝
回復(fù)

使用道具 舉報(bào)

13#
ID:939357 發(fā)表于 2021-6-20 21:55 | 只看該作者
AI工程 發(fā)表于 2021-4-1 16:25
可能是protues版本的問題 我也做了一份類似的 可以私聊我

你好求您的仿真設(shè)計(jì)
回復(fù)

使用道具 舉報(bào)

14#
ID:941093 發(fā)表于 2021-6-21 18:23 | 只看該作者
祝51黑越來越好
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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