|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念4 H/ D4 l x- R7 b4 f* y; ~6 w
看完書上還是沒很了解..
& f/ @' s7 K/ n) c: N$ ?0 y+ P有沒有人可以跟我說一下我的盲點在哪..! z+ A$ I( Q' d) o! l
" m% q7 m! s" O' ~% f; q
單晶片用12MHz的石英震盪器8 V4 U e6 U4 J; z. M
然後因為8051一個機械周期1 ~, \! g1 ^: W) b$ u9 U$ M$ Z/ L
需要12個石英震盪器周期
" C. H$ Z- M* ]; L: h \1 C2 T12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波1 s# G" d5 M. S6 M
+ p. }! E2 i2 l0 I" X然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷 w* y! ]- C1 W3 `7 `( t3 M
每1us就送入一個脈波計時器就加1
! D/ N8 P( y% e* O. j當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次 c, f1 p' K, W- f" X0 q
( Y8 _% r p( Z3 M7 N; p0 R那如果要設定時間間隔為5ms秒的話7 }! ?+ u% w# u+ d/ Y$ G) N# T% z( \
就代表每送入5000個1us的脈波就中斷一次 . S. [& K8 b; d0 }
但為什麼 計時器設定數值是
7 H! c# C4 z8 v$ o65536-5000 =60536 再轉16進制 去分高低位元就好了?
2 f; |, L$ r7 [$ C! v60536不是意思是,當計數器內部加到60536 就產生中斷嗎?4 j' R5 y% h( n
這樣不就是60536us中斷一次?4 J, D$ B( N: ~# `
不是5ms中斷一次 |
|