線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2247
推到 Plurk!
推到 Facebook!

請問一下 8051的計時器

答題得分者是:luckyjoe
as70361
一般會員


發表:9
回覆:14
積分:4
註冊:2007-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-28 23:16:16 IP:122.116.xxx.xxx 訂閱
請問一下各位大大
8051要計時一小時以上
該如何寫呢
我用的是Keil C
謝謝大家

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-28 23:36:23 IP:219.70.xxx.xxx 未訂閱
1> 用 RTC

2> 用 Timer 搭配幾個變數做 counter. timer 若可以數 100ms, counter 計數個 10 次就是 1 sec. 以此類推.


P.S : Timer 使用書上都有範例, 搭配幾個變數就可以輕鬆做到. 請參考相關書籍.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
luckyjoe
一般會員


發表:1
回覆:9
積分:12
註冊:2007-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-03 20:42:52 IP:220.139.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code">PT2=1; //中斷順序--timer2高優先 TCLK=0; //timer2--auto reload mode CP_RL2=0; T2EX=1; //上數 EA=1; //中斷中斷開啟且開啟timer2中斷 ET2=1; RCAP2L = 0; //起始值47104 RCAP2H = 184; TR2=1; //開啟timer2 void timer2interrupt(void) interrupt 5 using 1 { TF2=0; //溢位旗標歸0 msec=msec 1; //毫秒加一秒 if(msec>=100) { msec=0; //毫秒歸零 秒加一 sec=sec 1; if(sec>60) { sec=0; /秒歸零 分加一 min=min 1; } } </textarea><br />
這只有到分
要推到小時應該不難

p.s. 11.0592MHz 6T或12T

如果是不同型號的8051起始值要改
編輯記錄
luckyjoe 重新編輯於 2007-09-03 20:47:02, 註解 無‧
as70361
一般會員


發表:9
回覆:14
積分:4
註冊:2007-08-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-14 10:47:30 IP:140.121.xxx.xxx 訂閱
謝謝兩位大大~
我已經解決了~
先利用一個小計時程式
再設幾個變數加上計數~
就可以做到了~
感謝大家
as70361
一般會員


發表:9
回覆:14
積分:4
註冊:2007-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-14 12:01:50 IP:140.121.xxx.xxx 訂閱
不好意思~
要怎麼結案呢~
謝謝~
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-14 12:23:22 IP:122.124.xxx.xxx 未訂閱
仔細看你第一篇文章的上方有個[問題結案]的按鈕
系統時間:2024-05-15 6:53:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!