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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4094|回復: 1
打印 上一主題 下一主題
收起左側

基于51單片機的自動售水機程序

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

單片機源程序如下:
  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重載值的高字節
  10. unsigned char T0RL = 0;  //T0重載值的低字節
  11. bit setIndex=0;                //出水標志位 為1出水 為0不出水
  12. bit setIndex1=0;  //停水標志位 為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;      //定時器計數頻率
  22.     tmp = (tmp * ms) / 1000;  //計算所需的計數值
  23.     tmp = 65536 - tmp;        //計算定時器重載值
  24.     tmp = tmp + 18;           //補償中斷響應延時造成的誤差
  25.        
  26.     T0RH = (unsigned char)(tmp>>8);  //定時器重載值拆分為高低字節
  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中斷服務函數,完成數碼管、按鍵掃描與秒表計數 */
  55. void InterruptTimer0() interrupt 1
  56. {
  57.           static unsigned int tmr1s = 0;       
  58.     TH0 = T0RH;  //重新加載重載值
  59.     TL0 = T0RL;
  60.     LedScan();   //數碼管掃描顯示
  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. /* 按鍵動作函數,根據鍵碼執行相應的操作,keycode-按鍵鍵碼 */
  77. void KeyAction(unsigned char keycode)
  78. {
  79.                                 if  ((keycode>='0') && (keycode<='9'))  //本例中不響應字符鍵
  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)  //向左鍵,向左切換設置位
  93.                                 {
  94.                                 }
  95.                                 else if (keycode == 0x27)  //向右鍵,向右切換設置位
  96.                                 {
  97.                                 }
  98.                                 else if (keycode == 0x0D)  //回車鍵,進入設置模式/啟用當前設置值
  99.                                 {
  100.                                                         if (setIndex == 0)  //不處于出水狀態時,進入設置狀態
  101.                                                         {                                                                               
  102.                                                                                 setIndex=1;
  103.                                                                                 setIndex1=0;
  104.                                                         }
  105.                                                         else                //已處于出水狀態時,保存時間并退出設置狀態
  106.                                                         {
  107.                                                         }
  108.                                 }
  109.                                 else if (keycode == 0x1B)  //Esc鍵,停水
  110.                                 {
  111.                                                                                 setIndex=0;
  112.                                                                                 setIndex1=1;
  113.                                                                                 LedBuff[6]=0xff;
  114.                                 }
  115. }
復制代碼

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


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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品在线观看 | 免费日本视频 | 九九热在线视频观看这里只有精品 | 国产露脸对白88av | 天天草草草 | 国产在线一区二区 | 国产午夜精品一区二区三区嫩草 | 久久躁日日躁aaaaxxxx | 欧美综合在线视频 | 丁香婷婷综合激情五月色 | 欧美一级毛片免费观看 | 成人不卡在线 | 一区二区三区回区在观看免费视频 | 亚洲人在线观看视频 | 欧美日本一区 | 精品一区二区三区四区视频 | 久久激情视频 | 中文字幕亚洲一区 | 欧美一区视频 | 亚洲综合在线视频 | 日本精品一区二区三区视频 | 国产精品99久久久久久动医院 | 在线视频 欧美日韩 | 日本不卡一区 | 日本一二三区在线观看 | 99国产精品视频免费观看一公开 | 日韩久草 | 高清国产午夜精品久久久久久 | 久久综合伊人 | 秋霞在线一区二区 | 国产99久久久国产精品 | av网站免费看 | 激情的网站 | 亚洲精品黄 | 色欧美片视频在线观看 | 成人久久久 | 亚洲高清在线观看 | 久久精品色欧美aⅴ一区二区 | 中国一级特黄毛片大片 | 午夜精品久久久久久久久久久久久 | 国产亚洲精品精品国产亚洲综合 |