找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机豆浆机控制系统设计源码加论文下载

[复制链接]
跳转到指定楼层
楼主
一个简单的豆浆机控制系统,有完整的程序源码和设计论文。用51单片机做的下面是实物图.


原理图


豆浆机设计论文的目录
前 言    1
第1章 绪论    1
第2章 设计方案    2
2.1 设计思路    2
2.2 设计原理    2
第3章 豆浆机的外部结构设计    4
3.1 杯体    4
3.2 机头    4
3.3 加热管    4
3.4 防溢电极    5
3.5 温度传感器    5
3.6 防干烧电极    5
3.7 刀片    5
3.8 电机    5
第4章 系统硬件设计    6
4.1 单片机AT89C51简介    6
4.1.1 主要特性    6
4.1.2 引脚图    7
4.2 电源电路的设计    9
4.2.1 稳压器    10
4.2.2 整流器    11
4.3 温度传感器电路设计    11
4.3.1 温度传感器DS18B20测温原理    11
4.3.2 温度传感器DS18B20引脚图    13
4.3.3 温度传感器DS18B20电路设计    13
4.4 加热和打浆电路设计    14
4.5 防干烧及防溢出电路的设计    15
4.6 报警电路设计    16
第5章 系统软件设计    17
5.1 流程图    17
5.2 温度传感器程序    18
5.3 加热和打浆程序    23
5.4 防干烧防溢程序    25
5.5 报警电路程序    27
结 论    28
谢  辞    29
参考文献    30
附 录    31
外文资料翻译    41

设计思路
由于以前的豆浆机,磨浆要过滤豆渣,豆浆熬煮也要自己动手,还要特别注意豆浆溢锅的问题,程序繁琐麻烦,给人们带来不便,针对这些情况拟定开发家用豆浆机全自动控制电路装置。
家用豆浆机先是接通电源,按下“启动”键,加热管进行加热,并有温度传感器进行检测,当温度达到80℃时,控制电路会停止加热,电机会带动刀片运行,进行对豆物的粉碎和磨浆。运行一段时间后停止,然后再次运行电机,如此反复4至6次。再次对豆浆进行加热,当达到一定温度时,豆浆上溢,进入熬煮程序,最后进行报警,豆浆加工完成。


由单片机、电源电路、温度传感器、放干烧电路电路、防溢电路、打浆电路、加热电路、报警电路等组成。先将黄豆放入豆浆机内,搅拌壶内倒入适量的水,装好搅拌机。接上电源,指示灯LED亮,提示已接通电源,处于待命状态。按下启动键,开始加热,温度达到80℃时,停止加热;搅拌马达运转,将黄豆粉碎,然后马达停转,又开始加热,直到豆浆沸腾煮熟,停止加热,发出报警声,提示豆浆已做好。

单片机源码:
  1. ORG    0000H
  2. AJMP   MAIN
  3. ORG    0003H
  4. AJMP   FGS
  5. MAIN :SETB   IT0         ;选择边缘触发方式
  6.     SETB   EX0          ;允许外部中断0
  7.     SETB   EA            ;CPU允许中断
  8. ;****功能选择程序****                                                                                                
  9. GNXE:JNB   P2.0,GN1        ;富纤豆浆
  10. JNB   P2.1,GN2        ;浓香豆浆
  11. ;****富纤豆浆工作程序****
  12. GN1:  SETB     P1.0       ;启动加热
  13.        CLR      P2.3
  14.        MOV    R1,#1EH    ;设置循环30次(延时30分钟)
  15. ACALL  AA0        ; 调用
  16. ACALL  WENDU
  17.        MOV    B,TPL         ;从30H中取温度值
  18.        MOV    A,#50H         ;设定温度为80度
  19.        DIV     AB        ;比较A、B大小,商存于A中
  20. CJNE    A,#00H,DJ1        
  21. DJNZ    R1,GN1
  22. ;****打浆程序*****
  23. DJ1:  CLR   P1.0              ;停止加热
  24.       MOV  R0,#6             ;循环六次
  25.       SETB  P1.1              ;启动打浆
  26. ACALL BB
  27. CLR   P1.1
  28. ACALL DD
  29. DJNZ  R0,DJ1
  30. ;****煮浆程序****
  31.     ZJ1:  SETB   P1.0              ;启动加热
  32.           MOV   R1,#1EH     ;设置循环30次(延时30分钟)
  33.           ACALL  AA0                   ;调用
  34. JNB    P3.2, FYYZ1
  35. DJNZ   R1,  ZJ1
  36. ;****防溢延煮程序***
  37. FYYZ1:   CLR     P1.0                 ;停止加热
  38.           ACALL   AA0                  ;等待一分钟
  39.           SETB    P1.0             ;启动加热
  40.       MOV     R1,#8       ;设置循环8次(防溢延煮8分钟)
  41.       ACALL   AA0                  ;调用
  42. JB       P3.2,FYYZ1
  43. DJNZ    R1,FYYZ1
  44. ACALL   BJ
  45. AJMP    MAIN
  46. ;*****浓香豆浆工作程序****
  47. GN2:  SETB    P1.0                ;启动加热
  48.        CLR     P2.4
  49.        MOV    R1,#1EH      ;设置循环30次(延时30分钟)
  50. ACALL  AA0                 ;调用
  51.        MOV    B,TPL               ;从30H中取温度值
  52.        MOV    A,#50H              ;设定温度为80度
  53.        DIV     AB            ;比较A、B大小,商存于A中
  54. CJNE    A,#00H,DJ2
  55. DJNZ    R1,GN2
  56. ;****打浆程序*****
  57. DJ2:  CLR     P1.0                 ;停止加热
  58. MOV    R0,#4                ;循环四次
  59.        SETB   P1.1                  ;启动打浆
  60. ACALL   CC
  61. CLR      P1.1
  62. ACALL   DD
  63. DJNZ     R0,DJ2
  64. ;****煮浆程序****
  65. ZJ2:  SETB     P1.0                ;启动加热
  66.       MOV     R1,#1EH        ;设置循环30次(延时30分钟)
  67. ACALL   AA0                 ;调用
  68. JB    P3.2,FYYZ2
  69. DJNZ    R1,ZJ2
  70. ;****防溢延煮程序****
  71. FYYZ2:  CLR     P1.0                 ;停止加热
  72.        ACALL  AA0                 ;等待一分钟
  73.        SETB    P1.0                 ;启动加热
  74.        MOV    R1,#8      ;设置循环8次(防溢延煮8分钟)

  75. …………限于本文篇幅 余下代码请从51黑电子下载附件…………
复制代码




完整源码及论文下载:
豆浆机.zip (1.02 MB, 下载次数: 193)

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

使用道具 举报

沙发
ID:410499 发表于 2018-10-16 14:37 | 只看该作者
楼主你这个是程序,能不能用的?
回复

使用道具 举报

板凳
ID:369182 发表于 2019-12-20 15:44 | 只看该作者
有完整仿真图吗
回复

使用道具 举报

地板
ID:243394 发表于 2019-12-20 19:41 | 只看该作者
谢谢分亨
回复

使用道具 举报

5#
ID:607530 发表于 2019-12-21 17:37 | 只看该作者
qq104542 发表于 2018-10-16 14:37
楼主你这个是程序,能不能用的?

这个是汇编
回复

使用道具 举报

6#
ID:253767 发表于 2019-12-22 08:14 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

7#
ID:667331 发表于 2019-12-23 12:42 | 只看该作者
#include<reg51.h>
#include<intrins.h>
#define uchar  unsigned char
#define uint  unsigned int
sbit M0=P3^0;   //八路NPN达林顿连接晶体管连接6线步进电机
sbit M1=P3^1;
sbit M2=P3^2;
sbit M3=P3^3;
sbit sw0=P3^6;   //K1开始
sbit sw1=P3^7;   //K2
sbit key0=P1^0;   //K3
sbit key1=P1^1;    //K4
sbit f=P3^4;       //蜂鸣器
uchar Speed=1;  //分
uchar m;
uchar t=0;
uchar n=0;
uchar Date=0;
uchar Ledplay[6];
uchar bn=0;
uchar code  SEG7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x38,0x77,0x40,0x00};
uchar code  Scan_bit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
uchar data  Dis_buf[]={0,0,10,10,10,10};
uchar z;
void Delayxms(uint t)        //延时ms            
{
    unsigned char i,j,k;
   for(k=0;k<t;k++)
  {
           _nop_();
                   _nop_();
                _nop_();
           i = 11;
           j = 190;
      do
          {
                   while (--j);
           } while (--i);
   }               
}
void Delay1us(uchar t)        //延时1us            
{
    uchar i;
   for(i=0;i<t;i++)
  {
           _nop_();
           _nop_();
           _nop_();         
   }               
}
void display(void)                        //数码管显示时间
{                                                
      uchar i;              
     for(i=0;i<6;i++)
    {
         P2=0xff;               //全部数码管位选失能
                 P0=SEG7[Dis_buf[i]];        //第i个数码管显示
                 P2= Scan_bit[i];
                 Delayxms(1);
    }                                       
}

void Timer0_init(void)  //计时器
{
    TMOD=0x51;
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        EA=1;
        ET0=1;
        TR0= 1;
}
uchar cnt=100;        //秒
void Timer0_int(void) interrupt 1 using        1   //定时中断
{
    t++;
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        if(t==20)
        {
           t=0;
           Date=n;
           n=0;
           cnt--;
           if(cnt==0)
           {
             while(1)
                 {
                     f=0;
                         f=1;
                 }
                  
           }
        }
        if(key0==0)  //检测K3按下
        {
           Delayxms(10);  //延时10ms
           if(key0==0)   
           {
              Speed++;
                  if(Speed>20)
                  {
                    Speed=20;
                  }
           }
           while(key0==0);
        }
        if(key1==0)    //检测K4按下
        {
           Delayxms(10);
           if(key1==0)
          {
             Speed--;
                 if(Speed==0)
                 {
                    Speed=1;
                 }
          }
          while(key1==0);
        }
}        
void delay()                     
{  
    uchar i=5+Speed;
    while(--i!=0)
  {
     Dis_buf[0]=13;
         Dis_buf[1]=cnt%10;
         Dis_buf[2]=cnt/10;
         Dis_buf[3]=12;
     Dis_buf[4]=Speed%10;
         Dis_buf[5]=Speed/10;
         display();
  }                          
}
void R_rotation()
{
   M3=0;
   M0=1;
   delay();
   n++;
   M0=0;
   M1=1;
   delay();
   n++;
   M1=0;
   M2=1;
   delay();
   n++;
   M2=0;
   M3=1;
   delay();
   n++;
}
/*void F_rotation()
{
   M0=0;
   M3=1;
   delay();
   n++;
   M3=0;
   M2=1;
   delay();
   n++;
   M2=0;
   M1=1;
   delay();
   n++;
   M1=0;
   M0=1;
   delay();
   n++;
}*/
void main()
{  
   int flag = 0;
   Timer0_init();  //初始化
        while(1)
        {
                if(flag==1)
                        R_rotation();
                if(sw1==0)                //检测K2是否按下               
                {
                        cnt=10;
                        flag=1;
                }
                if(sw0==0)                //检测K1是否按下               
                {
                        cnt=20;
                        flag=1;
                }
        }
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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