51單片機(jī) 測速

2022-12-14 07:11

當(dāng)感應(yīng)到磁性的時候 有高電平,沒有感應(yīng)到磁性的時候是低電平,求兩次測到高電平之間時間是多少。 C語言程序怎么寫?用霍爾傳感器或者是磁性開關(guān)
2022-12-14 12:07
  可以考慮用外部中斷加定時器來做,當(dāng)感應(yīng)到磁性的時候產(chǎn)生外部中斷,這時打開定時器,給定時器設(shè)定一個合理的溢出時間,比如1ms,然后打開定時器溢出中斷,另外在程序中加一個時間變量,定時器產(chǎn)生一次溢出中斷后變量就加1,直到第二個外部中斷到來時,關(guān)閉定時器,這時檢查時間變量,值是多少就說明兩次外部中斷間隔了多少毫秒。

   單片機(jī),全稱單片微型計算機(jī)(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲器、定時/計數(shù)器(Timer/Counter)、各種輸入輸出接口等都集成在一塊集成電路芯片上的微型計算機(jī)。與應(yīng)用在個人電腦中的通用型微處理器相比,它更強(qiáng)調(diào)自供應(yīng)(不用外接硬件)和節(jié)約成本。它的最大優(yōu)點是體積小,可放在儀表內(nèi)部,但存儲量小,輸入輸出接口簡單,功能較低。由于其發(fā)展非常迅速,舊的單片機(jī)的定義已不能滿足,所以在很多應(yīng)用場合被稱為范圍更廣的微控制器;從上世紀(jì)80年代,由當(dāng)時的4位、8位單片機(jī),發(fā)展到現(xiàn)在的32位300M的高速單片機(jī)。
更多回答
有兩種方式:
1、高低電平范圍是較小時(不超過30ms),就可以在有高電平時啟動定時器,接受到低電平時關(guān)閉定時器,并讀出th和tl的值。
2、高低電平范圍是較大時(超過30ms),當(dāng)有高電平時,啟動定時器(定時器基礎(chǔ)時間定為1ms),配置一個寄存器在定時器中斷里,不斷自加1,直到有低電平到了,關(guān)閉定時器,讀出寄存器的值。
可以考慮用外部中斷加定時器來做,當(dāng)感應(yīng)到磁性的時候產(chǎn)生外部中斷,這時打開定時器,給定時器設(shè)定一個合理的溢出時間,比如1ms,然后打開定時器溢出中斷,另外在程序中加一個時間變量,定時器產(chǎn)生一次溢出中斷后變量就加1,直到第二個外部中斷到來時,關(guān)閉定時器,這時檢查時間變量,值是多少就說明兩次外部中斷間隔了多少毫秒
另外,外部中斷盡量用邊沿方式觸發(fā),不要用電平方式,這樣會更可靠一些
熱門問答