找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3212|回复: 13
打印 上一主题 下一主题
收起左侧

基于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, 下载次数: 125, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶2 踩
回复

使用道具 举报

来自 2#
ID:893265 发表于 2021-4-2 11:29 | 只看该作者
reworld 发表于 2021-3-30 14:29
您好~LCD1602没有显示内容诶

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

51hei.png

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:720305 发表于 2021-3-28 17:32 | 只看该作者
电机周围那四个器件是什么啊 急急急
回复

使用道具 举报

地板
ID:766622 发表于 2021-3-30 14:29 | 只看该作者
您好~LCD1602没有显示内容诶
回复

使用道具 举报

5#
ID:720305 发表于 2021-4-1 16:25 | 只看该作者
reworld 发表于 2021-3-30 14:29
您好~LCD1602没有显示内容诶

可能是protues版本的问题 我也做了一份类似的 可以私聊我
回复

使用道具 举报

6#
ID:893265 发表于 2021-4-2 11:25 | 只看该作者
AI工程 发表于 2021-3-28 17:32
电机周围那四个器件是什么啊 急急急

二极管
回复

使用道具 举报

7#
ID:893265 发表于 2021-4-2 11:28 | 只看该作者
reworld 发表于 2021-3-30 14:29
您好~LCD1602没有显示内容诶

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

使用道具 举报

8#
ID:899171 发表于 2021-4-2 14:44 | 只看该作者
参考下,希望我的温度传感器能有用
回复

使用道具 举报

9#
ID:766622 发表于 2021-4-25 17:04 | 只看该作者

回复晚了抱歉,谢谢!
回复

使用道具 举报

10#
ID:296417 发表于 2021-5-8 14:13 | 只看该作者
估计有参考价值
回复

使用道具 举报

11#
ID:915917 发表于 2021-5-10 21:05 | 只看该作者
AI工程 发表于 2021-3-28 17:32
电机周围那四个器件是什么啊 急急急

整流桥
回复

使用道具 举报

12#
ID:245820 发表于 2021-5-11 10:58 | 只看该作者
刚好学习温度传感器,学习了,谢谢
回复

使用道具 举报

13#
ID:939357 发表于 2021-6-20 21:55 | 只看该作者
AI工程 发表于 2021-4-1 16:25
可能是protues版本的问题 我也做了一份类似的 可以私聊我

你好求您的仿真设计
回复

使用道具 举报

14#
ID:941093 发表于 2021-6-21 18:23 | 只看该作者
祝51黑越来越好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表