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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5484|回復: 1
收起左側

基于單片機的微波爐課程設計 原理圖 仿真和源程序都有

[復制鏈接]
ID:161768 發(fā)表于 2017-2-27 23:24 | 顯示全部樓層 |閱讀模式
原理圖是用ad軟件畫的,單片機微波爐課程設計資料包里面含程序源碼 proteus仿真和ad畫的原理圖
0.png

仿真原理圖:
0.png

單片機微波爐的程序源碼:
  1. #include <reg51.h>
  2. #define  uint unsigned int
  3. #define  uchar unsigned char
  4. uint dis[]={0x00,0x00,0x00,0x00};
  5. uint pv=1,pv_j=6,pv_l=24; //定義 檔位、加熱時間、冷卻時間(每個周期)
  6. uint count_s=0;    //記錄定時時間
  7. uint cyc0=20,cyc1=20;    // 為了計時一秒,定時器一次中斷為50ms,20*50ms=1s
  8. uchar codevalue[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff};  //七段數碼管顯示碼,顯示0~9和全亮
  9. uchar codecho[]={0xfe,0xfd,0xfb,0xf7};                  //位選碼
  10. sbit P10=P1^0;                //引腳定義
  11. sbit P11=P1^1;
  12. sbit P12=P1^2;
  13. sbit P13=P1^3;
  14. sbit P14=P1^4;
  15. sbit P15=P1^5;
  16. sbit P16=P1^6;
  17. sbit P17=P1^7;
  18. sbit duan=P2^0;
  19. sbit wei=P2^1;
  20. sbit P22=P2^2;
  21. sbit P23=P2^3;
  22. sbit P24=P2^4;
  23. /*--------------------
  24.   延時函數,大致延時一毫秒
  25. -------------------*/
  26. void delay_ms(uint t)
  27. {uchar i;
  28.         while(t--)         
  29.         {
  30.                 i=250;
  31.                 while(--i);               
  32.         }        
  33. }
  34.         /*------------------------
  35.    定時器初始化
  36. --------------------------*/
  37. void t_clr()
  38. {
  39.         EA=1;            //CPU開中斷
  40.         ET0=1;
  41.         ET1=1;           //定時器 中斷允許
  42.         TMOD=0X11;       //定時器T1、T0 定時   方式一
  43.         TH0=0X3c;
  44.         TL0=0Xaf;
  45.                     //12M 晶振,65536-15536=50000,50000us*20=1000000us=1s
  46.         TH1=0X3c;
  47.         TL1=0X0af;
  48. }
  49. /*------------------------
  50.     鍵盤掃描函數
  51. --------------------------*/
  52. void key_scan()
  53. {
  54.         if(!P10)
  55.         {
  56.          delay_ms(70);
  57.                 if(!P10)
  58.                 count_s+=30;      //時間 +30秒
  59.         if (count_s>6000)
  60.             count_s=0;
  61.         }
  62.         
  63.     if(!P11)
  64.         {
  65.          delay_ms(70);
  66.                 if(!P11)
  67.                 count_s+=60;       //時間 +1 分
  68.         if (count_s>6000)
  69.             count_s=0;
  70.         }

  71.         if(!P12)
  72.         {
  73.          delay_ms(70);
  74.                 if(!P12)
  75.                 count_s+=300;      //時間+5分
  76.         if (count_s>6000)
  77.             count_s=0;
  78.         }

  79.         if(!P13)
  80.         {
  81.          delay_ms(70);
  82.                 if(!P13)
  83.                 count_s=0;         //時間清零

  84.         }

  85.         if(!P14)
  86.         {
  87.          delay_ms(70);
  88.                 if(!P14)
  89.                 {if (pv<3)
  90.                  pv++;               //檔位+1
  91.          pv_j=pv*6+6;        //加熱時間
  92.          pv_l=30-pv_j;       //冷卻時間
  93.                 }

  94.         }

  95.         if(!P15)
  96.         {
  97.          delay_ms(70);
  98.                 if(!P15)
  99.                 {if (pv>0)
  100.                  pv--;               //檔位-1
  101.          pv_j=pv*6+6;
  102.          pv_l=30-pv_j;
  103.                 }

  104.         }

  105.         if(!P16)
  106.         {
  107.          delay_ms(70);
  108.                 if(!P16)
  109.                 {
  110.                  P22=1;
  111.          if(count_s==0)          //如果沒有設定時間,不加熱,定時器不工作
  112.             {TR0=0;
  113.             TR1=0;}
  114.          else                    //如果已經設定時間,則開始計時,開始加熱
  115.                     {                  
  116.             pv_j=6*pv+6;
  117.             pv_l=30-pv_j;
  118.             t_clr();
  119.             TR0=1;
  120.                     TR1=1;
  121.             P22=0;}
  122.                 }

  123.         }

  124.         if(!P17)               //停止加熱,終止定時器
  125.         {
  126.          delay_ms(70);
  127.                 if(!P17)
  128.                 {P22=1;
  129.                  P23=0;
  130.                  TR0=0;
  131.                  TR1=0;
  132.                 }
  133.         }
  134. }
  135. /*------------------------
  136.     時間變換為每個顯示位
  137. --------------------------*/
  138. void time_converter()
  139. {
  140.         dis[0]=count_s/600;             //取分的十位
  141.         dis[1]=(count_s/60)%10;         //取分的個位
  142.                                  
  143.         dis[2]=(count_s%60)/10;         //取秒的十位
  144.         dis[3]=(count_s%60)%10;                  //取秒的個位
  145. }
  146. /*------------------------
  147.    顯示函數
  148. --------------------------*/
  149. void display()
  150. {  
  151.    
  152.     uchar t;
  153.         uchar k;
  154.         for(k=0;k<4;k++)                                //LED顯示
  155.         {
  156.          wei=1;
  157.          P0=codecho[k];
  158.          wei=0;               
  159.      P0=0xff;
  160.      delay_ms(1);
  161.          duan=1;
  162.      P0=codevalue[dis[k]];
  163.          duan=0;
  164.      P0=0xff;
  165.      delay_ms(1);     

  166.          }
  167.         P3=codevalue[pv];                 //顯示檔位 */
  168.         while(!P24)                                          //按鍵測試
  169.         {
  170.         for(t=0;t<4;t++)
  171.         {
  172.         wei=1;
  173.         P0=codecho[t];
  174.         wei=0;
  175.     P0=0xff;
  176.     delay_ms(1);
  177.         duan=1;
  178.     P0=codevalue[10];        
  179.         duan=0;
  180.     P0=0xff;
  181.     delay_ms(1);
  182.         P3=codevalue[10];
  183.         }     
  184.   }
  185. }
  186. /*------------------------
  187.      主函數
  188. --------------------------*/
  189. void main()
  190. {            
  191.     uchar n=200;
  192.     P23=0;
  193.         t_clr();        //初始化        
  194.         while(1)
  195.         {
  196.                 key_scan();   //鍵盤掃描
  197.                 time_converter();//數值轉換
  198.                 display();     //顯示
  199.         }
  200. }
  201. /*------------------------
  202.    定時器T0中斷
  203. --------------------------*/
  204. void t0() interrupt 1
  205. {        
  206.     TR0=0;
  207.     TH0=0X3c;
  208.         TL0=0Xaf;
  209.     cyc0--;
  210.         if (cyc0==0)
  211.                 {cyc0=20;
  212.                 count_s--;  //時間-1S
  213.         if (count_s==0)  //如果定時已到
  214.             {
  215.                          P22=1;      //停止加熱,定時器終止
  216.              TR0=0;
  217.              TR1=0;
  218.              P23=1;
  219.             }
  220.         else
  221.             TR0=1;        //繼續(xù)定時
  222.                 }
  223.     else
  224.         TR0=1;
  225.            
  226. }
  227. /*------------------------
  228.     定時器T1中斷
  229. --------------------------*/
  230. void t1() interrupt 3
  231. {
  232.     TR1=0;
  233.     TH1=0X3c;
  234.         TL1=0X0af;
  235.     TR1=1;
  236.     if (pv_j!=0)          //需要加熱
  237.         {cyc1--;
  238.         if (cyc1==0)
  239.             {cyc1=20;
  240.             pv_j--;
  241.             if (pv_j==0)   //加熱時間到
  242.                 {
  243.                     P22=1;      //否則,停止加熱,進入冷卻階段
  244.                 }
  245.             }
  246.         }
  247.     else if (pv_l!=0)           //是否需要冷卻
  248.         {cyc1--;
  249.         if (cyc1==0)
  250.             {cyc1=20;
  251.             pv_l--;
  252.             if (pv_l==0)         //冷卻時間到
  253.                 {
  254.                                 P22=0;          //進行加熱
  255.                 pv_j=pv*6+6;}    //再次設定加熱時間
復制代碼


完整的資料包下載(含程序源碼 proteus仿真和ad畫的原理圖):
http://m.zg4o1577.cn/bbs/dpj-77955-1.html
回復

使用道具 舉報

ID:355383 發(fā)表于 2018-6-20 17:57 | 顯示全部樓層
這么多連接。。。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人精品一区二区男人看 | 精品欧美乱码久久久久久 | 欧美亚洲视频 | 在线激情视频 | 精品一区二区三区视频在线观看 | 日韩一区二区在线播放 | 日韩在线观看网站 | 国产精品18久久久 | 播放一级毛片 | 中文字幕在线三区 | 欧美日韩国产在线观看 | 精品视频久久久 | 亚洲日韩第一页 | 综合视频在线 | 欧美日韩一区二区三区不卡视频 | 国产精品福利在线观看 | 黄色一级大片在线免费看产 | 国产999精品久久久久久 | 国产精品免费大片 | 日韩av啪啪网站大全免费观看 | 中文精品视频 | 国产偷录视频叫床高潮对白 | 精品国偷自产在线 | 欧美日韩电影一区二区 | 东方伊人免费在线观看 | 九色91视频| 一区二区三区回区在观看免费视频 | 久久精品欧美一区二区三区不卡 | 精品国产第一区二区三区 | 久久久国产一区二区三区 | a级片网站| 国户精品久久久久久久久久久不卡 | 99亚洲精品 | 国产色婷婷精品综合在线播放 | 在线观看黄色电影 | 国产免费自拍 | 日本高清视频在线播放 | 极品电影院 | 亚洲精品成人网 | 日韩欧美大片 | 国产美女在线免费观看 |