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

timer 0的MODE2是這樣用的嗎?

 
johnny1209
一般會員


發表:1
回覆:0
積分:0
註冊:2006-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-02 23:32:39 IP:203.121.xxx.xxx 未訂閱

大家好:

我是剛開始學習8051,先從計時器開始,但我用到MODE2的時間,我自己算的時間是OK的,但實際在跑的時候,比我算出來的還要快,有人可以指導我嗎?謝謝

250*4000*0.000001=1s,可是看起來是0.2s,一直都找不到是什麼原因

TIMES EQU 4000 ;計數次數(4000次)
ORG 0
START:
MOV TMOD,#22H ;MODE2

LOOP: MOV DPTR,#TIMES ;載入計數之數(4000次)
MOVX A,@DPTR
AGAIN: MOV TH0,#(256-250)

MOV TL0,#00
SETB TR0 ;開啟Timer 0
WAIT: JBC TF0,TIMEOUT ;是否已執行完0.25ms時間
JMP WAIT ;0.25ms未執行完
TIMEOUT: CLR TR0 ;關閉Timer 0
DJNZ A,AGAIN ;執行計時器(250*4000*0.000001=1s)

CPL P3.7 ;執行完1s,p3.7取補數
JMP LOOP
END

hsk6138
初階會員


發表:12
回覆:59
積分:49
註冊:2003-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-16 10:27:53 IP:61.230.xxx.xxx 未訂閱
看你的程式很奇怪,如果你要時間準確的話,最好是用TIMER來計數較準確,不要在MAIN做這是個人小小建議
系統時間:2024-05-13 23:14:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!