欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機多功能電子鐘參考練習 [打印本頁]

作者: SAKURA6    時間: 2018-7-6 17:40
標題: 單片機多功能電子鐘參考練習
這是我練習的多功能電子時鐘,我們要實現的功能有:走時、 校時、鬧鐘、溫度、遙控這么幾個。要想實現這幾個功能,其中走時所需要的就是時鐘芯片, 即 DS1302;時間需要顯示給人看,就需要顯示器件,我們用到了點陣、數碼管、獨立 LED、 液晶;再來看校時,校時需要輸入器件,本例中我們可以用板載按鍵和遙控器,它們各自的 驅動代碼不同,但是實現的功能是一樣的,都是校時;還有鬧鐘設置,在校時的輸入器件的 支持下,鬧鐘也就不需要額外的硬件輸入了,只需要用程序代碼讓蜂鳴器響就行了。
  1.     ET1 = 0;       //禁止 T1 中斷     IT1 = 1;       //設置 INT1 為負邊沿觸發     EX1 = 1;       //使能 INT1 中斷 } /* 獲取當前高電平的持續時間 */ uint16 GetHighTime() {     TH1 = 0;  //清零 T1 計數初值     TL1 = 0;     TR1 = 1;  //啟動 T1 計數     while (IR_INPUT)  //紅外輸入引腳為 1 時循環檢測等待,變為 0 時則結束本循環     {         if (TH1 >= 0x40)         {             //當 T1 計數值大于 0x4000,即高電平持續時間超過約 18ms 時,             break;   //強制退出循環,是為了避免信號異常時,程序假死在這里。         }     }     TR1 = 0;  //停止 T1 計數

  2.     return (TH1*256 + TL1);  //T1 計數值合成為 16bit 整型數,并返回該數 } /* 獲取當前低電平的持續時間 */ uint16 GetLowTime() {     TH1 = 0;  //清零 T1 計數初值     TL1 = 0;     TR1 = 1;  //啟動 T1 計數     while (!IR_INPUT)  //紅外輸入引腳為 0 時循環檢測等待,變為 1 時則結束本循環     {         if (TH1 >= 0x40)         {             //當 T1 計數值大于 0x4000,即低電平持續時間超過約 18ms 時,             break;   //強制退出循環,是為了避免信號異常時,程序假死在這里。         }     }     TR1 = 0;  //停止 T1 計數

  3.     return (TH1*256 + TL1);  //T1 計數值合成為 16bit 整型數,并返回該數 } /* INT1 中斷服務函數,執行紅外接收及解碼 */ void EXINT1_ISR() interrupt 2 {     uint8 i, j;     uint8 byt;     uint16 time;
復制代碼


5.png (111.36 KB, 下載次數: 45)

頭文件

頭文件

source.rar

20.85 KB, 下載次數: 5, 下載積分: 黑幣 -5






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1