久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6645|回復: 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, 下載次數: 195)

分享到:  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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品在线播放 | 欧美亚洲免费 | 成人性视频在线播放 | 亚洲人在线观看视频 | 日韩区| 51ⅴ精品国产91久久久久久 | 91免费在线看 | www.一区二区三区 | 在线免费观看欧美 | 欧美午夜精品久久久久免费视 | 色婷婷综合久久久久中文一区二区 | 日韩aⅴ视频| 日韩欧美在线观看视频 | 孕妇一级毛片 | 欧美日韩高清一区二区三区 | 日韩在线播放中文字幕 | 香蕉久久久久久 | 91精品国产高清一区二区三区 | 国产成人精品一区二区三区在线 | 伊人网在线播放 | 欧美三区 | 一级欧美一级日韩片 | 国产精品久久久久久婷婷天堂 | 国产一区二区三区免费观看视频 | 91人人在线| 国产精品美女久久久久aⅴ国产馆 | www.亚洲一区二区三区 | 久久久久久久久久久久91 | 亚洲va国产日韩欧美精品色婷婷 | 欧美成人免费在线 | 国产成人免费视频网站视频社区 | 日本精品一区二区三区视频 | www亚洲一区 | 久久99精品久久久久久狂牛 | 久久久久久久久久久久久久国产 | 久久精品亚洲欧美日韩精品中文字幕 | 亚洲成av人影片在线观看 | 国精日本亚洲欧州国产中文久久 | 精久久 | 日韩午夜 | 操操日 |