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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機紅外線多功能電子鐘程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:405166 發表于 2020-5-22 10:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
設計實際實現功能
(1) 進行實時時鐘顯示功能(達到正點時,自動報時)
(2) 時間校準功能 液晶能夠顯示年月日星期時分秒(以上位數據均可調),最后一部分顯示電自1707班級名
(3) 設置鬧鐘功能,能夠對實時時鐘進行設置鬧鐘(且能夠選擇到點提醒功能)
   當選擇提醒功能0時,鬧鐘到點進行響鈴
   當選擇提醒功能1時,鬧鐘到點進行驅動風扇
   當選擇提醒功能2時,鬧鐘到點播放鈴聲黑人抬棺
(4) 能夠作為AD測電壓模塊,將所測電壓實時顯示到LCD1602上面
(5) 當按下功能轉換5時,LCD1602會顯示出所設置鬧鐘的時間以及外界的溫度,持續顯示5秒鐘,最終將顯示實時時鐘


單片機源程序如下:
  1. /*
  2. 本系統共分為以下幾個模塊:
  3. LCD1602顯示模塊
  4. DS1302實時模塊
  5. 紅外發射遙控模塊
  6. XPT2046AD測電壓模塊
  7. DS18B20溫度傳感器模塊

  8. 源程序說明
  9. ds18b02.c和ds18b02.h文件為DS1302實時時鐘模塊的配置庫文件
  10. lcd.c和lcd.h為lcd1602液晶顯示模塊的配置文件
  11. realtime.c和realtime.h為實時時鐘模塊的配置文件
  12. redkey.c和redkey.h為紅外發射模塊的配置文件
  13. xpt2046.c和xpt2046.h為AD測量模塊的配置文件
  14. timer.c和timer.h為定時器的配置文件
  15. redkeyhandle.c和redkeyhandle.h為紅外發射按鍵的處理函數文件
  16. lcd_time.c和lcd_time.h為液晶顯示的處理函數文件
  17. heirentaiguan.che和heirentaiguan.h為黑人抬棺鈴聲


  18. 實現功能
  19. 1 進行實時時鐘顯示功能(達到正點時,自動報時)

  20. 2 時間校準功能 液晶能夠顯示年月日星期時分秒(以上位數據均可調),最后一部分顯示電自1707班級名

  21. 3 設置鬧鐘功能,能夠對實時時鐘進行設置鬧鐘(且能夠選擇到點提醒功能)
  22.    當選擇提醒功能0時,鬧鐘到點進行響鈴
  23.    當選擇提醒功能1時,鬧鐘到點進行驅動風扇
  24.    當選擇提醒功能2時,鬧鐘到播放音樂

  25. 4 能夠作為AD測電壓模塊,將所測電壓實時顯示到LCD上面

  26. 5 當按下功能轉換5時,LCD會顯示出所設置鬧鐘的時間以及外界的溫度,持續顯示5秒鐘,最終將顯示實時時鐘


  27. */


  28. #include "reg52.h"                       
  29. #include "lcd.h"
  30. #include "realtime.h"
  31. #include "timer.h"
  32. #include "lcd_time.h"
  33. #include "redkey.h"
  34. #include "redkeyhandle.h"
  35. #include "heirentaiguan.h"

  36. typedef unsigned int u16;         
  37. typedef unsigned char u8;
  38. sbit beep = P1^5;                 //無源蜂鳴器
  39. sbit moto = P1^2;                 //直流電機
  40. sfr WDT_CONTER = 0xE1;         //看門狗
  41. bit flag1000ms = 0;                 //1s標記位
  42. bit flag1ms = 0;                 //1ms標記位
  43. struct sTime bufTime;          //重置緩存時間區
  44. u8 psec = 0xAA;
  45. u8 logo[]="1707";
  46. u8 time[8];       
  47. u8 str[20];                 //lcd顯示功能數組
  48. u8 mode=1;                                 //模式選擇,模式1為實時時鐘
  49. u8 watchclockmode = 0;         //鬧鐘模式
  50. u8 ds18b20flag5s=0;                 //溫度顯示5s模式
  51. unsigned int zhengdianflag = 0;        //正點標記位
  52. unsigned char ircode[4];                //紅外發射接收碼
  53. bit irflag = 0;                                        //紅外發射標記位
  54. bit openwatchclock = 0;                        //開啟鬧鐘時鐘
  55. bit naozhong = 0;                                //鬧鐘標記位
  56. bit dianji =0;                                        //電機標記位
  57. bit zhengdian = 0;                                //正點標記位
  58. bit heiren = 0;                                        //黑人抬棺標記位

  59. void main(void)
  60. {
  61.    
  62.         lcd_init();                           //lcd1602初始化
  63.         Timer1Init();                        //定時器1初始化
  64.     Timer2Init();                        //定時器2初始化
  65.         InitDS1302();                         //ds1302初始化
  66.         pic_write();                         //寫入自定義字符
  67.         Initredkey();                         //紅外發射初始化
  68.         rstclockinit();                         //鬧鐘重置初始化
  69.         moto = 0;                                 //電機初始化
  70.         WDT_CONTER = 0x36;                 //開啟看門狗
  71.         while(1)
  72.   {
  73.     WDT_CONTER |= 0x10;                 //喂狗
  74.          if(flag1000ms)                        //1s刷新
  75.         {
  76.            flag1000ms = 0;
  77.            if(mode==1){
  78.            lcd_displaytime();  //實時時鐘
  79.           }
  80.            if(mode==2)
  81.           { lcd_displayrstclock();        //設置實時時鐘
  82.             mode = 20;
  83.           }
  84.            if(mode==3)
  85.           {
  86.             lcd_displaywatchclock();         //設置鬧鐘
  87.                 mode=30;
  88.           }
  89.            if(mode==4)
  90.           {
  91.             lcd_displayxpt2046();                //AD測電壓模式
  92.           }
  93.            if(mode==5)
  94.           {
  95.             EA = 0;
  96.             lcd_display18b20();                   //顯示周圍的溫度以及設置的鬧鐘時間
  97.                 mode=50;
  98.                
  99.           }
  100.            if(mode==50)                                        //顯示溫度以及設置的鬧鐘時間5s之后回到實時時鐘界面
  101.           {
  102.         ds18b20flag5s++;
  103.                 if(ds18b20flag5s>=3){
  104.                   mode=1;
  105.                   ds18b20flag5s=0;
  106.                 }            
  107.           }
  108.         }
  109.     redkeyIRQ();                        //紅外線掃描
  110.     if(zhengdian==1){                  //正點提示(如果正點了,zhengdian被置1)
  111.           if(flag1ms)
  112.           {
  113.             flag1ms=0;
  114.                 beep=~beep;
  115.                 zhengdianflag--;       //響鈴的時間,在lcd.time.c里面被設置為了一個常數
  116.                 if(zhengdianflag<=0){  //時間到了,將標志置零
  117.                 zhengdian = 0;
  118.                 }
  119.           }

  120.         }
  121.         //提示功能區(如果被設置了,那么相應的標記位被置1)
  122.         if(naozhong==1){           //鬧鐘響鈴提示
  123.            if(flag1ms)
  124.            {
  125.              flag1ms=0;
  126.                  beep=~beep;       //蜂鳴器響
  127.            }
  128.         }
  129.         if(dianji==1){                   //電機轉動提示
  130.            if(flag1ms)
  131.            {
  132.                  flag1ms=0;
  133.                  moto=~moto;       //驅動電機IO口翻轉,此時假如外接了直流電機,即可啟動
  134.            }       
  135.         }
  136.         if(heiren==1){                         //黑人抬棺鈴聲
  137.        
  138.          BuzzDriver();          //鈴聲驅動函數
  139.          TR2 = 0;               //定時器2停止,為了確保鈴聲的品質,此時時鐘顯示刷新會停止
  140.         }
  141.           
  142.   }       
  143.                            
  144. }
復制代碼

程序51hei提供下載:
紅外線多功能電子鐘.zip (131.79 KB, 下載次數: 34)


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

使用道具 舉報

沙發
ID:328014 發表于 2020-5-22 14:43 | 只看該作者
好東東 有原理圖嗎?
回復

使用道具 舉報

板凳
ID:432653 發表于 2020-5-23 11:42 | 只看該作者
紅外線是啥東西?
回復

使用道具 舉報

地板
ID:405166 發表于 2020-6-5 11:16 | 只看該作者
單片機是普中科技最便宜的那種51單片機
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区在线观看 | 精品欧美一区二区精品久久久 | .国产精品成人自产拍在线观看6 | 国产精品久久久久久久久久 | 午夜免费av | 美女视频一区 | 日韩国产免费观看 | 免费在线观看黄网站 | 四虎国产| 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 美日韩免费 | 日韩喷潮 | 毛片国产 | 一区二区三区不卡视频 | 五月天激情综合网 | 国产精品一区二区视频 | 国产精品免费高清 | 天天精品在线 | 国产精品日韩在线 | xx性欧美肥妇精品久久久久久 | 狠狠亚洲 | 免费一区| 欧美日韩网站 | 99精品在线 | 欧美激情精品久久久久久变态 | 99福利视频 | 午夜av免费 | 日韩一区二区三区av | 久草在线 | 久久国产精彩视频 | 在线观看毛片网站 | 日韩欧美中文在线 | 97色免费视频| 色狠狠一区 | 国产成人高清在线观看 | 电影午夜精品一区二区三区 | 成人午夜电影在线观看 | 亚洲视频在线免费 | 6996成人影院网在线播放 | 日韩视频在线一区 | 日韩一区二区福利 |