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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

帶節日顯示提醒,溫度報警的單片機萬年歷程序

[復制鏈接]
跳轉到指定樓層
樓主


非常經典的STC89C52單片機 + DS1820溫度 + DS1302時間0 + LCD12864液晶 萬年歷程序,帶節日顯示提醒,溫度報警:
萬年歷.zip (111.76 KB, 下載次數: 50)


部分源碼預覽:
  1. /***********************************************************
  2. 文件名稱: 主函數
  3. 作 者:    LQW
  4. 版 本:    0.01
  5. 說 明:   
  6. 時間 : 12月12日22:20:11
  7. 修改記錄:
  8. 總結 :   1:今天搞了4個鐘,收獲最大是要看電路圖,忘記加一個上拉電阻,時鐘時間跑不準
  9.                   2:12月18日20:33:21加入顯示節日函數       
  10.                   3:12月20日18:58:58加入溫度顯示函數
  11.                   4: 全局變量用多了將會超出KEIL        默認的直接尋址的DATA區且DATA區只有128字節
  12.                   5: DS18B20也加4.7K上拉電阻
  13. ***********************************************************/
  14. #include"LCD12864.h"
  15. #include"delay.h"
  16. #include"ds1302.h"
  17. #include"timeadjust.h"
  18. #include"keyscan.h"
  19. #include"keypro.h"
  20. #include"disfestival.h"
  21. #include"ds18b20.h"
  22. #include"ds18b20distemp.h"
  23. #include"ds18b20alarm.h"
  24. //#include<reg52.h>
  25. //#include<string.h"

  26. /*------------------------------------------
  27.         定義臨時變量
  28. -------------------------------------------*/
  29. u8 *WEEK[] = {"SUM","MON","TUS","WEN","THU","FRI","SAT"};
  30. sbit LED1 = P3^7;//溫度高于上限LED1閃爍
  31. sbit LED2 = P3^6; //溫度高于下限LED2閃爍
  32. u16 TimCnt = 0;
  33. sbit BEEP = P3^5;

  34. /***********************************************************
  35. 函數名稱: 定時器T0 初始化
  36. 函數功能:        
  37. 入口參數:          
  38. 出口參數:
  39. 備 注:
  40. ***********************************************************/
  41. void Time0_Init(void)
  42. {
  43.         TMOD |= 0x01;  // 定時器T0工作在方式1
  44.         TH0 = - 1000  / 256;
  45.         TL0 = - 1000  % 256;       
  46.         EA  = 1;                        //打開總中斷
  47.         ET0 = 1;                //允許T0中
  48.         //TR0 = 1;                //開啟定時器T0中斷
  49. }

  50. /***********************************************************
  51. 函數名稱: 定時器T0中斷函數
  52. 函數功能: 定時每2ms刷新數碼管
  53. 入口參數:          
  54. 出口參數:
  55. 備 注:
  56. ***********************************************************/
  57. void Time0_ISR() interrupt 1
  58. {
  59.         TH0 = - 1000  / 256;
  60.         TL0 = - 1000  % 256;
  61.         BEEP = !BEEP;
  62.         if( ++TimCnt == 200 )
  63.         {
  64.                 TimCnt = 0;
  65.                 if( H_Alarm )
  66.                         LED1 = ~LED1;
  67.                 else
  68.                         LED1 = 1;
  69.                 if( L_Alarm )
  70.                         LED2 = ~LED2;
  71.                 else
  72.                         LED2 = 1;
  73.                 TR0 = 0; //關閉定時器
  74.         }       
  75. }


  76. void main()
  77. {
  78.         u8 keynum;
  79.         Time0_Init();//定時器T0初始化
  80.         Set_DS18B20_Alarm_Temp();//設置DS18B20溫度的報警值,且寫入ds18b20里
  81.         ds18b20_ReadTemperature();////讀取溫度值分別放在Temp_Value[](存放溫度值)與Temp_Alarm[](存放報警值
  82.         Init_DS18B20();//ds18b20初始化       
  83.         Init_DS1302();//ds1302初始化,是對時時間
  84.         Init_LCD12864();//液晶初始化
  85.         DelayMs( 1 );
  86.         while( 1 )
  87.         {
  88.                 ds18b20_ReadTemperature();//讀取溫度值分別放在Temp_Value[](存放溫度值)與Temp_Alarm[](存放報警值
  89.                 keynum = KeyScan();//讀取按鍵的
  90.                 if( adjust_index == -1)
  91.                 {
  92.                         GetTime();//獲取時間       
  93.                         Format_Time( DataTime[ 6 ],  LCD_DIS_BUFFER1 + 2 );
  94.                         Format_Time( DataTime[ 4 ],  LCD_DIS_BUFFER1 + 6 );
  95.                         Format_Time( DataTime[ 3 ],  LCD_DIS_BUFFER1 + 10 );

  96.                         Format_Time( DataTime[ 2 ],  LCD_DIS_BUFFER2 + 0 );
  97.                         Format_Time( DataTime[ 1 ],  LCD_DIS_BUFFER2 + 4 );
  98.                         Format_Time( DataTime[ 0 ],  LCD_DIS_BUFFER2 + 8 );
  99.                         strcpy( LCD_DIS_BUFFER2 + 13, WEEK[ DataTime[ 5 ] - 1]);

  100.                            LCD_PutString( 0, 1, LCD_DIS_BUFFER1);
  101.                            LCD_PutString( 0, 2, LCD_DIS_BUFFER2);
  102.                 }

  103.                 Dis_Festival();        //顯示公歷節日

  104.                 if( iS_DS18B20_OK == 1 )
  105.                 {       
  106.                         if( H_Alarm == 1 || L_Alarm == 1  )       
  107.                                 TR0 = 1;
  108.                         else
  109.                                 TR0 = 0;       
  110.                         ds18b20_Display_Temperature();//溫度轉換       
  111.                 }
  112.                 if(  keynum != 0xff )
  113.                 {
  114.                         KeyPro( keynum );         //一邊調整一邊顯示

  115.                         Format_Time( DataTime[ 6 ],  LCD_DIS_BUFFER1 + 2 );
  116.                         Format_Time( DataTime[ 4 ],  LCD_DIS_BUFFER1 + 6 );
  117.                         Format_Time( DataTime[ 3 ],  LCD_DIS_BUFFER1 + 10 );
  118.                
  119.                            LCD_PutString( 0, 1, LCD_DIS_BUFFER1);
  120.                
  121.                         Format_Time( DataTime[ 2 ],  LCD_DIS_BUFFER2 + 0 );
  122.                         Format_Time( DataTime[ 1 ],  LCD_DIS_BUFFER2 + 4 );
  123.                         Format_Time( DataTime[ 0 ],  LCD_DIS_BUFFER2 + 8 );
  124.                            LCD_PutString( 0, 2, LCD_DIS_BUFFER2);       
  125.                 }
  126.                
  127.                                                
  128.         }
  129. }
復制代碼

評分

參與人數 1黑幣 +8 收起 理由
wangtao123 + 8 很給力!

查看全部評分

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

使用道具 舉報

沙發
ID:185064 發表于 2017-3-31 13:54 | 只看該作者
好厲害啊
回復

使用道具 舉報

板凳
ID:257406 發表于 2017-12-5 20:13 | 只看該作者
有仿真圖嗎?,求發
回復

使用道具 舉報

地板
ID:57570 發表于 2017-12-7 21:30 來自手機 | 只看該作者
沒有圖片!!!!!!!!
回復

使用道具 舉報

5#
ID:711928 發表于 2020-4-11 00:14 | 只看該作者
可以發一下原理圖仿真圖嗎?跪求
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久影音先锋 | 黄色成人免费在线观看 | 一区欧美 | 亚洲视频在线观看 | 国产成人精品免费 | 日韩中文一区二区 | 欧美国产免费 | 精品久久久久久亚洲综合网 | 成人福利片 | 欧美激情综合网 | 本地毛片 | 欧美婷婷| 日本一区二区三区在线观看 | 精品国产乱码久久久久久蜜退臀 | 国产一级电影在线观看 | 国产一级视频 | 国产一区二区欧美 | 欧美福利 | 欧美日韩一区二区三区在线观看 | 欧美福利| 久久免费大片 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 亚洲国产精品99久久久久久久久 | 一区二区视频 | 日本午夜免费福利视频 | 亚洲精品国产a久久久久久 午夜影院网站 | 久久99精品久久久久蜜桃tv | 久久精品99久久 | 米奇狠狠鲁 | 91在线精品视频 | 亚洲男女视频在线观看 | 在线精品一区二区三区 | 国产日韩精品一区二区三区 | 国产综合精品 | 久久久123 | 国产欧美一区二区三区在线看 | 成人毛片视频免费 | 成人精品一区二区三区 | www.久久久.com | 久久久成人免费视频 | 国产成人精品视频在线观看 |