<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 傳感器課程設計心得

傳感器課程設計心得

作者: 時(shí)間:2012-08-16 來(lái)源:網(wǎng)絡(luò ) 收藏
經(jīng)過(guò)半個(gè)月的奮斗,終于完成,雖然跟自己開(kāi)始的想法差了不少,總體上還過(guò)得去,這個(gè)過(guò)程中解接觸了一些新的東西,也無(wú)意中看到了一些,總結如下,以便查看:

1、C51編程:C語(yǔ)言在進(jìn)入main函數前會(huì )有一個(gè)對單片機內存單元的初始化,另外運用浮點(diǎn)乘除運算時(shí)程序龐大,使用循環(huán)加或者循環(huán)減時(shí)會(huì )大大的減少程序,對于浮點(diǎn)數的顯示可以將其乘以10的整數冪(這個(gè)乘是人編程時(shí)設定計算的參數是設好的,并不需要單片機去計算),這樣就可以將浮點(diǎn)運算轉化為整數運算,進(jìn)一步簡(jiǎn)化程序,對于它的顯示可以在固定位置設置小數點(diǎn)(利用或者||,由數碼管類(lèi)型決定),這個(gè)方法同樣適用于匯編,且可以使匯編更簡(jiǎn)單。在涉及到對硬件的控制時(shí),可以使用C語(yǔ)言的賦值語(yǔ)句,根據外圍硬件的工作時(shí)序設定賦值的順序,不過(guò)由于C編譯后的具體指令組成并不清楚,很可能出現意想不到的情況(只是設想,還需證實(shí)),由于C語(yǔ)言對硬件的控制并不是很強,所以可以使用嵌套或調用匯編的方法,不過(guò)這種方法不夠好,可以根據C生成 SRC文件,對其進(jìn)行改變,從而變成匯編。用C編程的時(shí)候注意不要受匯編的干擾,注意指針的使用(這次用C編寫(xiě)出錯的一個(gè)最重要的原因)

2、AD的使用:一般單片機的時(shí)鐘輸出并不能滿(mǎn)足AD的時(shí)鐘頻率要求,通常需要進(jìn)行分頻,利用計數器(例如74LS192)可以做出分頻器,首先計數器進(jìn)制應為分頻器分頻數的二倍,或門(mén)(或非門(mén))的一段接分頻數的輸出端,另一端接計數器的清除端(MR),這樣門(mén)輸出即為分頻后的時(shí)鐘頻率。在鎖存通道、啟動(dòng)AD 轉換、允許AD輸出轉換值時(shí),在匯編中通常使用MOVX指令,但是由于使用MOVX時(shí)WR、RD變化時(shí)間是很短的,可能會(huì )在數據沒(méi)有準備好時(shí)就已經(jīng)操作了,從而造成數據錯誤,也有可能MOVX的電平維持時(shí)間不夠長(cháng),從而造成并不能使AD進(jìn)入我們需要的狀態(tài)。解決的辦法是我們按照AD的工作時(shí)序,對特定的引腳進(jìn)行電平變換,即可控制電平的時(shí)間,從而保證數據傳輸的正確性。在使用中斷(定時(shí)器或者其他)啟動(dòng)AD轉換后,要在盡可能短的時(shí)間內退出該中斷,因為為了保證對AD的操作不被中斷(中斷后可能不能再繼續),在對AD進(jìn)行操作的中斷中不允許其他中斷,這樣我們必須盡快開(kāi)啟中斷允許并退出中斷,當然也可以在啟動(dòng)AD后打開(kāi)中斷允許,這樣也可以保證轉換值能夠及時(shí)被讀取,不過(guò)會(huì )出現中斷嵌套,可能對程序的運行不利。

3、Keil與proteus的聯(lián)調:使用Keil和proteus聯(lián)調,可以單步運行Keil,通過(guò)proteus即可觀(guān)察到每一條程序的運行結果,同樣可以了解到每一句C語(yǔ)言對應的匯編以及運行的結果。

4、數碼管的顯示時(shí),尤其是多個(gè)時(shí),要使用驅動(dòng)電路,因為數碼管的驅動(dòng)電流一般為10mA,單片機輸出驅動(dòng)不夠,驅動(dòng)電路可以是三極管,也可以使用專(zhuān)門(mén)的數碼管驅動(dòng)芯片,可以減少對單片機資源的占用,例如LM8186,MAX7219等。

5、壓電蜂鳴器的信號輸出阻抗很高,使用一般的信號采集電路并不能將信號采集進(jìn)來(lái)??梢允褂秒姾煞糯笃?,一是輸入阻抗大,二是靈敏度較高,不過(guò)由于電荷放大器的頻響較高,如果沒(méi)有好的屏蔽措施極容易引進(jìn)干擾。另一個(gè)辦法是,可以使用高輸入阻抗運放接成電壓跟隨器形式,既可以作為前置放大器的輸入端提高輸入阻抗,又可以起到隔離電路的作用。運放可以選用LM102,輸入阻抗高達1012歐姆,不過(guò)供電電源為 正負12到15,并不是很好,不過(guò)可以選用其他運放,例如CA3130(高達1.5T)等。

6、氣壓表壓指示燈部分是無(wú)意中發(fā)現的現象,具體原理還需要進(jìn)一步找答案

7、還有一點(diǎn)忘了,數碼管動(dòng)態(tài)顯示的操作順序:關(guān)地址,賦段碼,打開(kāi)地址,每個(gè)的刷新時(shí)間間隔為1ms左右,時(shí)間越長(cháng),數碼管亮度越高,不過(guò)使用延時(shí)時(shí)間較長(cháng)的話(huà),一是可能會(huì )閃爍,二是單片機灌電流較大,對單片機不利,這次使用的是400微秒的刷新時(shí)間,120歐姆的限流電阻,顯示穩定,亮度也好,不過(guò)感覺(jué)限流電阻小了一些,耗電功率較大。
分頻器相關(guān)文章:分頻器原理
蜂鳴器相關(guān)文章:蜂鳴器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>