請(qǐng)問(wèn)怎樣用89C51采集多路脈沖信號(hào)?
答:
要看頻率多高,如果不高可以通過(guò)查詢實(shí)現(xiàn)多路計(jì)數(shù)。(yanggt)2005-3-5 14:15:00
頻率在1-3000Hz之間,好實(shí)現(xiàn)嗎?(athome)2005-3-5 16:22:36
3000Hz,十幾路也沒(méi)問(wèn)題。(yanggt)2005-3-5 22:55:08
yanggt:能指點(diǎn)的具體一點(diǎn)嗎?我悟性差,兩天也沒(méi)悟出來(lái)!(athome)2005-3-11 15:56:35
比如說(shuō)采樣8路信號(hào),把8路信號(hào)接在單片機(jī)某個(gè)口上(如p1口), 然后以信號(hào)的最高頻率的兩倍定時(shí)讀取這個(gè)口上的信號(hào),如果某一位發(fā)生了電平變化,改路計(jì)數(shù)值就加一,同理,十幾路也可以同樣處理。(cjs)2005-3-11 16:36:12 -35
防萬(wàn)一,先向采集腳寫(xiě)1,再讀入(禤顯佳)2005-3-11 16:50:53
加上一句,要以最小的信號(hào)的寬度計(jì)算頻率.
比如,一個(gè)脈衝高(低)電平為1us,低(高)電平為1ms,
你不能說(shuō)是1khz,而應(yīng)是1mhz.
統(tǒng)計(jì)1秒內(nèi)各路信號(hào)發(fā)生跳變的次數(shù),然后分別除以2,結(jié)果就是頻率。(yanggt)2005-3-12 14:42:56
幾條指令供你參考:
MOVB, P1
CLP:MOVA, P1
XCHA, B
XRLA, B;發(fā)生跳變的引腳對(duì)應(yīng)的
位=1
CCH0:JNBACC.0, CCH1
INCCNTR0
...
...
CCH1:JNBACC.1, CCH2
2005-3-12 14:47:19
謝謝各位鼎力相助,只是覺(jué)得有些地方不妥,比如--
比如,如果鍵盤(pán)或者液晶屏或者其它某地方發(fā)生中斷要求處理,或
者某地方需要精確延時(shí),耽誤了P1口的查詢,不是很容易丟失脈沖
數(shù)嗎?
這些就需要編程技巧了,都可以解決。
“如果鍵盤(pán)或者液晶屏或者其它某地方發(fā)生中斷要求處理",這些是不
會(huì)經(jīng)常發(fā)生的。有足夠的時(shí)間處理他們。
"某地方需要精確延時(shí),耽誤了P1口的查詢",還有定時(shí)器呢!
評(píng)論