单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机自动洗碗机面板程序+PCB原理图设计

[复制链接]
跳转到指定楼层
楼主
QAS 发表于 2019-5-17 18:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Altium Designer画的自动洗碗机原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
#include"STC15Wxx.h"
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint z)
{
        uchar y=0;
        for(;z>0;z--)
        for(y=115;y>0;y--);
}
uint Flag_count=0;
uint Flag_Temp=0;
#include"DS18B20.h"

//#include"LCD1602.h"

sbit LED_FLAG=P1^0;

sbit jinshui=P1^1;//进水
sbit chushui=P1^2;//出水
sbit meng=P1^3;
sbit DJ=P1^4; //电机
sbit ZYB=P1^5;//增压泵
sbit JE=P1^6;//加热
sbit JEB=P1^7;//电源加热

sbit gao=P2^3;//水位高
sbit wu=P2^2; //水位低

sbit qidong=P3^2;
sbit tingzhi=P3^3;

bit FLAG_qidong=0,FLAG_tingzhi=0;

bit detecyion_Water()//检测水位
{
        if(gao==0&&wu==1)//水位高
        {
        //        P1=P1|0x40;//进水关
                jinshui=0;
                chushui=0;//出水关
                return 0;        
        }        
        else                         //水位低
        {
        //        P1=P1&0xfd;//进水开
                jinshui=1;
                chushui=0;//出水关
                return 1;        
        }        
}
bit detecyion_Temp() //检测温度
{
        static uchar FLAG=0;
        EA=0;
        Write_Inst();
//        delay_ms(1000);
        Read_RAM();
        EA=1;
//        display_Temp();
        if(Flag_Temp<=3200)//温度低于32°加热
        {
        //        P1=P1|0xc0;
                FLAG=1;
                JE=1;
                JEB=1;
                return 1;               
        }
        else if((FLAG==1&&Flag_Temp>=3300)||FLAG==0)//加热温度超过34°或大于32°
        {
        //        P1=P1&0x3f;
                FLAG=0;
                JE=0;
                JEB=0;
                return 0;
        }
        delay_ms(1000);
/*        if(FLAG=0&&Flag_Temp>3200)
        {        
                JE=1;
                JEB=1;
                return 0;
        }*/        
}
void wash_dishes_open()//洗碗开2分钟
{
        TR0=1;
        while((!(Flag_count>300))&&(!FLAG_tingzhi))//一分钟
        {
                DJ=1;
                ZYB=1;        
        }
        TR0=0;
}
void wash_dishes_cue()//洗碗关
{
        DJ=0;
        ZYB=0;
        Flag_count=0;
        TH0=(65536-46080)/256;//50ms
        TL0=(65536-46080)%256;               
}
void drainage()//排水
{
        uchar i;
        while((!detecyion_Water())&&(!FLAG_tingzhi))chushui=1;//水排至低水位
        for(i=0;i<5;i++)
        {
                if(FLAG_tingzhi)break;
                if(detecyion_Water())//低水位
                {
                        delay_ms(500);
                        chushui=1;
                        delay_ms(300);
                }
                else
                {
                         while((!detecyion_Water())&&(!FLAG_tingzhi))chushui=1;//水排至低水位
                }        
        }        
}
void CPU_init()
{
        Write_Inst();
        delay_ms(1000);
        P1=P1|0xff;
        P2=P2|0xff;
        IT0=1;//下降沿触发
        IT1=1;
        TMOD=0x01;
        TH0=(65536-46080)/256;//50ms
        TL0=(65536-46080)%256;
        ET0=1;
        TR0=0;
        EX0=1;
        EX1=1;
        EA=1;
}
void main()
{         
        CPU_init();
//        lcd_init();
        while(FLAG_qidong&&(!FLAG_tingzhi))
        {                           
                LED_FLAG=0;
                while(detecyion_Water()&&(!FLAG_tingzhi));//水位
                while(detecyion_Temp()&&(!FLAG_tingzhi));//温度
                wash_dishes_open();//洗碗开2分钟
                wash_dishes_cue(); //洗碗关
                drainage();//排水
                LED_FLAG=1;
                EA=0;
                Write_Inst();
                EA=1;
                delay_ms(1000);
        }
}
void T0_50ms() interrupt 1
{
        TH0=(65536-46080)/256;//50ms
        TL0=(65536-46080)%256;
        Flag_count++;
}
void INT0_0() interrupt 0
{
        FLAG_qidong=1;
        FLAG_tingzhi=0;        
}
void INT1_1() interrupt 2
{
        FLAG_tingzhi=1;
        FLAG_qidong=0;
}

全部资料51hei下载地址:
面板(共阴)-595.7z (1.83 MB, 下载次数: 10)
一次循环.zip (33.03 KB, 下载次数: 8)

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

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