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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

溫控系統

[復制鏈接]
跳轉到指定樓層
樓主
ID:124161 發表于 2016-6-4 18:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
原代碼:
  1. #include<reg51.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  2. #include<stdio.h>
  3. #include "LCD12864.h"
  4. #include "18b20.h"
  5. #include "delay.h"

  6. uint count1=70,count2=35;
  7. unsigned char moshicount=1;
  8. unsigned char GNcount=0;
  9. sbit moshi=P1^4;
  10. sbit INC=P1^5;
  11. sbit DEC=P1^6;
  12. sbit gongneng=P1^7;
  13. sbit K1=P1^1;
  14. //閥值設置函數   
  15. void shezhi()
  16. {

  17.    
  18.     moshi=1;
  19.     gongneng=1;
  20.     if(moshi==0)
  21.     {
  22.         DelayMs(10);
  23.         while(moshi==0);
  24.         moshicount++;
  25.     }
  26.     if(gongneng==0)
  27.     {
  28.         DelayMs(10);
  29.         while(gongneng==0);
  30.         GNcount++;
  31.         if(GNcount==3)
  32.             GNcount=0;
  33.     }
  34.     switch(moshicount)
  35.     {
  36.         case 1:
  37.         {
  38.             INC=1;DEC=1;
  39.             if(INC==0)
  40.             {
  41.                 DelayMs(10);
  42.                 while(INC==0);
  43.                 count1++;
  44.             }
  45.             else if(DEC==0)
  46.             {
  47.                 DelayMs(10);
  48.                 while(DEC==0);
  49.                 count1--;
  50.             }
  51.          
  52.         }break;
  53.         case 2:
  54.         {
  55.             
  56.             INC=1;DEC=1;
  57.             if(INC==0)
  58.             {
  59.                 DelayMs(10);
  60.                 while(INC==0);
  61.                 count2++;
  62.             }
  63.             else if(DEC==0)
  64.             {
  65.                 DelayMs(10);
  66.                 while(DEC==0);
  67.                 count2--;
  68.             }
  69.          
  70.         }break;
  71.         case 3:
  72.         {
  73.             moshicount=0;
  74.             
  75.         }break;
  76.     default :break;
  77.     }
  78.    
  79. }



  80. void InitTimer0(void)//定時計數器0初始化
  81. {
  82.     TMOD = 0x01;
  83.     TH0 = 0x0D8;
  84.     TL0 = 0x0F0;
  85.     EA = 1;
  86.     ET0 = 1;
  87.     TR0 = 1;
  88. }



  89. void Timer0Interrupt(void) interrupt 1//定時計數器0中斷服務
  90. {
  91.     TH0 = 0x0D8;
  92.     TL0 = 0x0F0;
  93.     shezhi();
  94.    
  95. }

  96. /*------------------------------------------------
  97.               串口通訊初始化
  98. ------------------------------------------------*/
  99. void UART_Init(void)
  100. {
  101.     SCON  = 0x50;               // SCON: 模式 1, 8-bit UART, 使能接收  
  102.     TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重裝
  103.     TH1   = 0xFD;               // TH1:  重裝值 9600 波特率 晶振 11.0592MHz  
  104.     TR1   = 1;                  // TR1:  timer 1 打開                        
  105.     //EA    = 1;                  //打開總中斷
  106.     //ES    = 1;                  //打開串口中斷
  107.     TI =1;
  108. }

  109. void main(void)
  110. {
  111. unsigned int TempH,TempL,temp;
  112. double temperature;
  113. uchar displaytemp[16];//定義顯示區域臨時存儲數組
  114. InitTimer0();
  115. lcd_init();
  116. UART_Init();
  117. DelayMs(10);          //延時有助于穩定
  118. while(1)
  119. {
  120.   temp=ReadTemperature();
  121.   temperature=(double)temp*0.0625;
  122.   if(temp&0x8000)
  123.      {
  124.      temp=~temp;  // 取反加1
  125.      temp +=1;
  126.      }
  127.   else
  128.      TempH=temp>>4;
  129.      TempL=temp&0x0F;
  130.      TempL=TempL*6/10;//小數近似處理
  131.      printf("%d.%d\n",TempH,TempL);
  132.   
  133.   sprintf(displaytemp,"溫度: %7.3f *C",temperature);//打印溫度值(%7.3fbiaoshi)
  134.   lcd_char(1,0,16,displaytemp);
  135.   if(moshicount!=0)
  136.     {
  137.     sprintf(displaytemp,"最高溫度:%3d  *C",count1);
  138.     lcd_char(2,0,16,displaytemp);
  139.     sprintf(displaytemp,"最低溫度:%3d  *C",count2);
  140.     lcd_char(3,0,16,displaytemp);   
  141.    }
  142.    
  143.     if(GNcount==0)
  144.         {   
  145.             uchar c[16]="功能選擇: 關閉  ";
  146.             lcd_char(4,0,16,c);
  147.         }
  148.     if(GNcount==1)  
  149.         {
  150.             uchar c[16]="功能選擇: 保溫  ";
  151.             lcd_char(4,0,16,c);
  152.             K1=1;
  153.         
  154.         }
  155.     if(GNcount==2)  
  156.         {
  157.             uchar c[16]="功能選擇: 加熱  ";
  158.             lcd_char(4,0,16,c);
  159.             K1=1;
  160.         }

  161. }
  162. }
復制代碼



全部資料(壓縮包)下載
溫控系統.rar (175.67 KB, 下載次數: 46)

評分

參與人數 1黑幣 +12 收起 理由
dzljp + 12 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:67678 發表于 2016-6-5 02:17 | 只看該作者
共享資料的黑幣獎勵!
回復

使用道具 舉報

板凳
ID:79544 發表于 2016-6-6 10:49 | 只看該作者
樓主12864顯示用的是串口顯示!
回復

使用道具 舉報

地板
ID:124699 發表于 2016-6-16 16:16 | 只看該作者
看看  正需要
回復

使用道具 舉報

5#
ID:124699 發表于 2016-6-16 16:17 | 只看該作者
打不開仿真軟件
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产农村妇女毛片精品久久麻豆 | 视频一二三区 | 国产一区在线看 | 嫩草视频在线免费观看 | 日韩av免费看 | 亚洲理论在线观看电影 | 三级在线观看 | 日韩中文字幕免费在线 | 久久精品一区二区三区四区 | 91精品国产一区二区三区 | 精品欧美一区二区精品久久久 | 日日噜噜噜夜夜爽爽狠狠视频97 | 国产日韩欧美 | 免费观看www7722午夜电影 | 日韩不卡一区二区 | 久久久久久久久久一区二区 | 视频一区中文字幕 | 国产日韩一区二区 | 亚洲va欧美va天堂v国产综合 | 国产区视频在线观看 | 97人人超碰| 日韩精品亚洲专区在线观看 | 99久久婷婷国产综合精品首页 | 国产精品欧美一区二区三区 | 国产日韩欧美精品一区二区 | 国产成人福利视频 | 国产精品1区| 99成人免费视频 | 日韩免费av| 欧美色性 | 国产日韩欧美一区 | 久久久久黄 | 成人老司机 | 中文字幕在线网 | 伦理午夜电影免费观看 | 精品中文字幕一区 | 久久精品国产一区二区三区 | 日韩有码在线观看 | 国产精品中文 | 涩涩视频在线观看免费 | 国产在线资源 |