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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4076|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的自動售水機(jī)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:371387 發(fā)表于 2018-12-23 01:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51的自動售水機(jī)

單片機(jī)源程序如下:
  1. #include <reg52.h>

  2. sbit BUZZ = P1^6;
  3. sbit ADDR3 = P1^3;
  4. sbit ENLED = P1^4;

  5. extern void KeyScan();
  6. extern void LedScan();
  7. extern void KeyDriver();
  8. extern void shujuzhuanhuan(float danjia,float shui);
  9. unsigned char T0RH = 0;  //T0重載值的高字節(jié)
  10. unsigned char T0RL = 0;  //T0重載值的低字節(jié)
  11. bit setIndex=0;                //出水標(biāo)志位 為1出水 為0不出水
  12. bit setIndex1=0;  //停水標(biāo)志位 為1停水 為0出水
  13. unsigned int chushuishijian=0;
  14. float shuiL=0,zongjia=0;
  15. extern        unsigned char LedBuff[7];
  16. /* 配置并啟動T0,ms-T0定時時間 */

  17. void ConfigTimer0(unsigned int ms)
  18. {
  19.     unsigned long tmp;  //臨時變量
  20.    
  21.     tmp = 11059200 / 12;      //定時器計數(shù)頻率
  22.     tmp = (tmp * ms) / 1000;  //計算所需的計數(shù)值
  23.     tmp = 65536 - tmp;        //計算定時器重載值
  24.     tmp = tmp + 18;           //補(bǔ)償中斷響應(yīng)延時造成的誤差
  25.        
  26.     T0RH = (unsigned char)(tmp>>8);  //定時器重載值拆分為高低字節(jié)
  27.     T0RL = (unsigned char)tmp;
  28.     TMOD &= 0xF0;   //清零T0的控制位
  29.     TMOD |= 0x01;   //配置T0為模式1
  30.     TH0 = T0RH;     //加載T0重載值
  31.     TL0 = T0RL;
  32.     ET0 = 1;        //使能T0中斷
  33.     TR0 = 1;        //啟動T0
  34. }
  35. void main()
  36. {
  37.                 EA = 1;            //開總中斷
  38.                 ENLED = 0;
  39.                 ADDR3 = 1;
  40.     ConfigTimer0(2);  //配置T0定時1ms
  41.                 while(1)
  42.                 {
  43.                                 KeyDriver();
  44.                                 if((setIndex==1)&&(setIndex1==0))
  45.                                 {
  46.                                                 shujuzhuanhuan(0.5,shuiL);
  47.                                 }
  48.                                 if((setIndex1==1)&&(setIndex==0))
  49.                                 {
  50.                                                 shujuzhuanhuan(0.5,zongjia);
  51.                                 }
  52.                 }
  53. }


  54. /* T0中斷服務(wù)函數(shù),完成數(shù)碼管、按鍵掃描與秒表計數(shù) */
  55. void InterruptTimer0() interrupt 1
  56. {
  57.           static unsigned int tmr1s = 0;       
  58.     TH0 = T0RH;  //重新加載重載值
  59.     TL0 = T0RL;
  60.     LedScan();   //數(shù)碼管掃描顯示
  61.     KeyScan();   //按鍵掃描
  62.                 if(setIndex)
  63.                 {
  64.                                 tmr1s++;
  65.                                 if(tmr1s >= 500)
  66.                                 {
  67.                                         tmr1s = 0;
  68.                                         chushuishijian++;
  69.                                         shuiL=chushuishijian*0.1;
  70.                                         zongjia=shuiL*0.5;
  71.                                         BUZZ = ~BUZZ;
  72.                                         LedBuff[6]=0xfe;
  73.                                 }
  74.                 }  
  75. }


  76. /* 按鍵動作函數(shù),根據(jù)鍵碼執(zhí)行相應(yīng)的操作,keycode-按鍵鍵碼 */
  77. void KeyAction(unsigned char keycode)
  78. {
  79.                                 if  ((keycode>='0') && (keycode<='9'))  //本例中不響應(yīng)字符鍵
  80.                                 {                                                       
  81.                                 }
  82.                                 else if (keycode == 0x26)  //向上鍵,
  83.                                 {                                                       
  84.                                 }
  85.                                 else if (keycode == 0x28)  //向下鍵,清除
  86.                                 {
  87.                                                         shuiL=0;
  88.                                                         zongjia=0;
  89.                                                         setIndex=0;
  90.                                                         setIndex1=1;
  91.                                 }
  92.                                 else if (keycode == 0x25)  //向左鍵,向左切換設(shè)置位
  93.                                 {
  94.                                 }
  95.                                 else if (keycode == 0x27)  //向右鍵,向右切換設(shè)置位
  96.                                 {
  97.                                 }
  98.                                 else if (keycode == 0x0D)  //回車鍵,進(jìn)入設(shè)置模式/啟用當(dāng)前設(shè)置值
  99.                                 {
  100.                                                         if (setIndex == 0)  //不處于出水狀態(tài)時,進(jìn)入設(shè)置狀態(tài)
  101.                                                         {                                                                               
  102.                                                                                 setIndex=1;
  103.                                                                                 setIndex1=0;
  104.                                                         }
  105.                                                         else                //已處于出水狀態(tài)時,保存時間并退出設(shè)置狀態(tài)
  106.                                                         {
  107.                                                         }
  108.                                 }
  109.                                 else if (keycode == 0x1B)  //Esc鍵,停水
  110.                                 {
  111.                                                                                 setIndex=0;
  112.                                                                                 setIndex1=1;
  113.                                                                                 LedBuff[6]=0xff;
  114.                                 }
  115. }
復(fù)制代碼

所有資料51hei提供下載:
自動售水機(jī).zip (57.43 KB, 下載次數(shù): 59)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-12-26 00:32 | 只看該作者
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 性一交一乱一透一a级 | 黄色成人免费看 | 日韩精品一区二区三区免费观看 | 91在线精品一区二区 | 男女网站视频 | 日韩高清在线观看 | 视频一区二区国产 | 亚洲精品免费视频 | 美女久久 | 亚洲一区二区在线播放 | 日韩三级在线观看 | 亚洲精品一区二区在线观看 | 日韩成人在线网址 | 91在线观看视频 | av电影一区二区 | 国产伦精品一区二区三毛 | 天天色av| 精品国产91乱码一区二区三区 | 一级a性色生活片久久毛片 午夜精品在线观看 | 日韩精品a在线观看图片 | 在线观看国产wwwa级羞羞视频 | 精品国产一区二区三区四区在线 | 91精品国产综合久久久久久丝袜 | 日本三级全黄三级a | 国产精品一区一区 | 涩涩视频在线观看 | 国产精品久久久久久久久久久久久 | 亚洲国产网 | 精品综合久久久 | 欧美日韩看片 | 国产a视频 | 成人在线视频网站 | 日韩日韩日韩日韩日韩日韩日韩 | 九九久久国产精品 | 国产激情免费视频 | 久久中文高清 | 色婷婷国产精品综合在线观看 | 日韩精品 | 午夜精品一区二区三区在线视频 | 夜夜爽99久久国产综合精品女不卡 | 欧美激情一区二区三级高清视频 |