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

請問有關89C51計時器設定的問題...

答題得分者是:
nevertheless
一般會員


發表:4
回覆:7
積分:2
註冊:2005-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-08 17:40:26 IP:60.248.xxx.xxx 未訂閱
我使用TIMER0的MODE 0... TH0 = (8192 - count) / 32; TL0 = (8192 - count) mod 32; 我使用的語言是Keil C... 請問一下各位大大... count變數的值是怎麼算的...?? 另外我想要計時20us... 該如何設定...?? 謝謝...^^"

版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-08 22:46:37 IP:220.134.xxx.xxx 未訂閱
手邊有51相關書籍吧!?書中一定有說明原理與如何計算,請看仔細.有問題再來發問. 給你個提示:當石英振盪器接12MHz時,count=5000就是計時5ms.20us該怎麼設呢?我想答案很清楚了!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-09 08:44:13 IP:211.21.xxx.xxx 未訂閱
你的公式看起來怪怪滴~ 應該是 TH0 = (65536-count) / 256 TL0 = (65536-count) mod 256 這樣才對 count的值為多少 就是計時多少uS ------------------- 美好的事物 稍縱即逝
topevo6
一般會員


發表:9
回覆:21
積分:16
註冊:2005-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-09 09:12:08 IP:59.113.xxx.xxx 未訂閱
TIMER0的MODE 0是13位元的計數器, 它是向上計數的計時計數器 如果做計時器而你的振盪器是12MHz的話 亦即每1us週期TH暫存器內容會加1,一直到溢位為止 要計時20us的話應該是 MOV TH0,#>(8192-8172) MOV TL0,#<(8192-8172)
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-09 10:07:49 IP:211.21.xxx.xxx 未訂閱
沒注意是MODE 0
引言: 要計時20us的話應該是 MOV TH0,#>(8192-8172) MOV TL0,#<(8192-8172)
Ar??? , it's Keil C , (8192-20) ------------------- 美好的事物 稍縱即逝
nevertheless
一般會員


發表:4
回覆:7
積分:2
註冊:2005-06-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-09 10:19:44 IP:60.248.xxx.xxx 未訂閱
引言: 沒注意是MODE 0
引言: 要計時20us的話應該是 MOV TH0,#>(8192-8172) MOV TL0,#<(8192-8172)
Ar??? , it's Keil C , (8192-20)
也就是說我只要在原本的count部份輸入20,就相當於20us了嗎? 但是我從示波器上看到的時間會改變ㄟ,不知道是什麼原因。 也謝謝各位大大的回答

版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-09 10:30:36 IP:211.22.xxx.xxx 未訂閱
引言: 也就是說我只要在原本的count部份輸入20,就相當於20us了嗎?
yes
引言: 但是我從示波器上看到的時間會改變ㄟ,不知道是什麼原因。 也謝謝各位大大的回答
這要看你ㄉdelay或中斷是怎麼寫的...
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
nevertheless
一般會員


發表:4
回覆:7
積分:2
註冊:2005-06-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-09 11:53:38 IP:60.248.xxx.xxx 未訂閱
引言: 這要看你ㄉdelay或中斷是怎麼寫的...
了解,另外我忘了說,我的震盪器是用11.0592MHz的, 這對於計時器的影響該怎麼修正??

版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-06-09 13:19:49 IP:211.22.xxx.xxx 未訂閱
引言: 了解,另外我忘了說,我的震盪器是用11.0592MHz的, 這對於計時器的影響該怎麼修正??
12/11.0592=1.085 假設12MHz時要設20,11.0592MHz就要設 20*1.085==21.7
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
nevertheless
一般會員


發表:4
回覆:7
積分:2
註冊:2005-06-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-06-09 16:28:16 IP:60.248.xxx.xxx 未訂閱
引言: 12/11.0592=1.085 假設12MHz時要設20,11.0592MHz就要設 20*1.085==21.7
可是TL0 沒有辦法處理小數點,不過我用近似值22去處理應該只有一點點誤差 感謝大大,我繼續努力去....
系統時間:2024-05-17 7:11:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!