标题: 基于51单片机和DS18B20的温控电机Proteus仿真程序设计 [打印本页]

作者: zgk!    时间: 2021-3-24 15:21
标题: 基于51单片机和DS18B20的温控电机Proteus仿真程序设计


#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;
                                                
        }
}



温控电机.zip

121.94 KB, 下载次数: 128, 下载积分: 黑币 -5


作者: AI工程    时间: 2021-3-28 17:32
电机周围那四个器件是什么啊 急急急
作者: reworld    时间: 2021-3-30 14:29
您好~LCD1602没有显示内容诶
作者: AI工程    时间: 2021-4-1 16:25
reworld 发表于 2021-3-30 14:29
您好~LCD1602没有显示内容诶

可能是protues版本的问题 我也做了一份类似的 可以私聊我
作者: zgk!    时间: 2021-4-2 11:25
AI工程 发表于 2021-3-28 17:32
电机周围那四个器件是什么啊 急急急

二极管
作者: zgk!    时间: 2021-4-2 11:28
reworld 发表于 2021-3-30 14:29
您好~LCD1602没有显示内容诶

应该是你版本问题,截图好像发不上来

作者: zgk!    时间: 2021-4-2 11:29
reworld 发表于 2021-3-30 14:29
您好~LCD1602没有显示内容诶

51hei.png (30.6 KB, 下载次数: 71)

51hei.png

作者: hollo08    时间: 2021-4-2 14:44
参考下,希望我的温度传感器能有用
作者: reworld    时间: 2021-4-25 17:04
zgk! 发表于 2021-4-2 11:29

回复晚了抱歉,谢谢!
作者: siyrra    时间: 2021-5-8 14:13
估计有参考价值
作者: dabai001    时间: 2021-5-10 21:05
AI工程 发表于 2021-3-28 17:32
电机周围那四个器件是什么啊 急急急

整流桥

作者: yangbulasi    时间: 2021-5-11 10:58
刚好学习温度传感器,学习了,谢谢
作者: 23195566768    时间: 2021-6-20 21:55
AI工程 发表于 2021-4-1 16:25
可能是protues版本的问题 我也做了一份类似的 可以私聊我

你好求您的仿真设计

作者: 为01518    时间: 2021-6-21 18:23
祝51黑越来越好




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1