Ⅰ 如何用單片機輸出脈沖信號
利用單片機產生脈沖信號有多種方法。最簡單的方法,就是在單片機的程序中對一個引腳反復置1,清0,置1,清0....,這個引腳上就會出現脈沖信號。
當需要產生指定周期和寬度的脈沖信號時,通常使用單片機中的計數器來實現:給計數器賦於不同的計數初值,在計數到0時產生中斷去置1或清0某引腳即可。
Ⅱ 單片機採集電壓,電流,頻率可以用哪幾種方法來實現
電壓直接用ADC來測量。
電流通過電阻轉換為電壓,再由ADC測量。
頻率通過計數器或者定時器測量。
當然通過V/F變換,把電壓電流信號轉換為頻率信號,也能完成測量。
串列口採集頻率的說法還沒聽說過。
Ⅲ 單片機的使用方法
傳統51單片機IO介面只可以作為標准雙向IO介面,如果用其來驅動LED只能用灌電流的方式或是用三極體外擴驅動電路。
點擊放大圖片
灌電流方式:LED正極接VCC,負極接IO口。IO為高電平是LED兩極電平相同,沒有電流,LED熄滅;IO為低電平時,電流從VCC流入IO,LED點亮。但是當你吧LED正極接在IO介面,負極接GND時,將IO介面置於高電平,LED會亮,但因為IO介面上拉能力不足而使亮度不理想,可以用下面介紹的方式解決這個問題。
推挽工作方式:LED正負極分別接在兩個IO口上,然後設置正極IO介面為推挽輸出,負極IO介面為標准雙向灌電流輸入。推挽方式具有強上拉能力,可以實現高電平驅動LED。
IO口的四種使用方法
從I/O口的特性上看,標准51的P0口在作為I/O口使用時,是開漏結構,在實際應用中通常要添加上拉電阻;P1、P2、P3都是准雙向I/O,內部有上拉電阻,既可作為輸入又可以作為輸出。而LPC900系列單片機的I/O口特性有一定的不同,它們可以被配置成4種不同的工作模式:准雙向I/O、推挽輸出、高阻輸入、開漏。
准雙向I/O模式與標准51相比,雖然在內部結構上是不同的,但在用法上類同,比如要作為輸入時都必須先寫「1」置成高電平,然後才能去讀引腳的電平狀態。!!!!!為什麼是這樣子?見下面分析。
推挽輸出的特點是不論輸出高電平還是低電平都能驅動較大的電流,比如輸出高電平時可以直接點亮LED(要串聯幾百歐限流電阻),而在准雙向I/O模式下很難辦到。
高阻輸入模式的特點是只能作為輸入使用,但是可以獲得比較高的輸入阻抗,這在模擬比較器和ADC應用中是必需的。
開漏模式與准雙向模式相似,但是沒有內部上拉電阻。開漏模式的優點是電氣兼容性好,外部上拉電阻接3V電源,就能和3V邏輯器件介面,如果上拉電阻接5V電源,又可以與5V邏輯器件介面。此外,開漏模式還可以方便地實現「線與」邏輯功能。
對於上面疑問的解釋,有這樣一個資料:
高阻態這是一個數字電路里常見的術語,指的是電路的一種輸出狀態,既不是高電平也不是低電平,如果高阻態再輸入下一級電路的話,對下級電路無任何影響,和沒接一樣,如果用萬用表測的話有可能是高電平也有可能是低電平,隨它後面接的東西定。
電路分析時高阻態可做開路理解。你可以把它看作輸出(輸入)電阻非常大。他的極限可以認為懸空。
高阻態的典型應用:
1、在匯流排連接的結構上。匯流排上掛有多個設備,設備與匯流排以高阻的形式連接。這樣在設備不佔用匯流排時自動釋放匯流排,以方便其他設備獲得匯流排的使用權。
2、大部分單片機I/O使用時都可以設置為高阻輸入,如凌陽,AVR等等。高阻輸入可以認為輸入電阻是無窮大的,認為I/O對前級影響極小,而且不產生電流(不衰減),而且在一定程度上也增加了晶元的抗電壓沖擊能力。
Ⅳ 單片機之間如何實現通信
兩個單片機之間串口通信,如果是用proteus模擬,最簡單了,兩個單片機的rxd,txd交叉連接就行了。要是實物最好用rs232連接通信,距離可以達到幾十米。再遠點距離,用rs485連接通信。總之,方法很多的,也很靈活的。
Ⅳ 單片機實現延時一般有幾種方法,比較它們之間的優缺點
一般兩種:
1,直接讓單片機做空循環,死等。
2,利用定時器的溢出間隔,如果時間上不夠,可以在溢出中斷中配合軟體計數器來實現。
前者浪費cpu,後者比較高效,但是佔用一個定時器
Ⅵ 單片機的具體應用例子
1、節能控制:
單片機可以控制能耗的節奏,例如:收集睡眠和運動步數等數字,以分鍾級的頻率進行上報;信息未上報時,設備處於低能耗的狀態,信息上報時,會出現一些網路傳輸方面的消耗,單片機可以控制能耗的節奏,將大部分時間控制在低能耗的狀態下,可以使得待機時間長達七十二小時以上。
2、智能語音設備:
例如:在導航智能電子設備中,可以將其中的一些道路名稱、距離等進行提取,然後進行播報;同時,還可以選擇不同的名人口吻進行播報,真正實現智能化的定製操作,更好地滿足用戶的需求;
3、報警控制:
例如:家裡經常使用的火災報警器,就是在外界環境達到一定條件下開啟智能報警的設備,如果室內的煙霧濃度到達某種水平,或者是收集外界的數據達到某種狀態時,就會自動觸發報警設置,從而實現智能報警的功能。
4、工廠生產檢測:
例如:在一些工廠中,經常會安裝一些設備,對工廠的生產環境進行監控,當出現某些異常數據時,就會發生報警,為確保設備的正常運作,設備維護人員需要及時進行處理,避免產生較大的故障。
5、家電領域:
其中家用電器就是其應用中的一個領域,用單片機取代傳統的家用電器中機械控制部件,並實現家電智能化。由此確定了單片機在家用電器中的重要地位。如:智能電飯煲、智能洗衣機、智能電視等都有單片機的應用。
Ⅶ 如何用單片機實現單擊 + 雙擊 + 長按
這是三種鍵有效方法,可按下面思路設計供你參考;
1、單擊有效,可以採用彈起有效。如選擇上升沿有效。
2、雙擊有效,要採用在一定的定時時間內兩次計數的方法,也就是先設定一個有效時間,在第一次鍵有效後在這個有效時間內鍵再次有效就可以認定最終有效,否則無效。
3、長按有效,也要採用計時的方法。也就是鍵有效後在一定的時間內連續檢測有效性,如檢測時間內連續保持有效可以認定最終有效,否則無效。
後兩種方法要求設計一個專門的判斷程序才能完成。
Ⅷ 如何利用單片機實現對正玄波信號頻率的測量
一樓的方法基本可行,不過有缺陷。
直接利用門電路整形,然後輸入單片機的引腳,這種方法只能檢測頻率不高的信號。對於標准51來說,最高也只能檢測幾百K的信號,上M就很為難了。
最好的辦法是,先把信號進行放大,然後進行過零比較和整形,把信號變成標準的方波,然後用一到兩級的計數器,把頻率降低,然後再輸入單片機。這種方法可以實現對10MHz級別信號的測頻。
Ⅸ 如何用單片機做流水燈
因為電路用單片機控制,所以電路非常簡潔。其電路原理圖見下圖,印製板圖如下圖所示。
電路的核心部分是AT89C2051單片機,前面提到它有Pl和P3兩組I/O口,我們這里只用到Pl口,共8個引腳。圖中Cl、R9組成典型的上電復位(即在加電時單片機復位)電路,XTAL、C2、C3與AT89C2051片內振盪電路組成時鍾振盪器。值得注意的是,C2、C3的容量不能與圖中數值偏差太大,否則可能引起不起振或振盪不穩定。XTAL的頻率可以在4-20MHz之間,不過,頻率的變化會導致程序運行速度的變化,這樣就需要調整延時子函數的參數。事實上,不調整參數亦可,只是此時延遲時間不再是1秒,其延遲時間會隨著XTAL頻率的降低而增加。
二、軟體部分
本程序包含兩個函數,一個是主函數,另一個是延時子函數。源程序如下(為了便於講解,我們為每行程序加上了編號):
程序各行作用如下:
00行:把AT89C2051的頭文件「AT89x051.H」包含進來。
01行:聲明Delay()延時子函數,該函數有一個無符號整型參數k,同時函數前面的void表明函數不返回函數值。
02行:延時子函數的開始,同時聲明兩個無符號整型變數i和j。
不過請注意,這里沒有象上期的程序一樣,把表示函數開始的「{」單獨成行,而是把下一行寫在一起了。事實上,寫C程序的時候,可以把多行寫作一行,C編譯器只要遇到分號就認為是一行語句的結束。
當然,我們不能因為C程序有這個特點,就隨意把多行合作一行書寫,實際書寫C程序的時候,還是要養成良好的程序書寫習慣,按照約定俗成的原則來書寫。
03行:聲明for()循環。這個循環的初始條件是i=0,終止條件是i<k,循環計數是每循環一次,用手計數的變數i加1。因此,這個循環的循環次數就是k次。這樣,只要改變k的值(即改變Delay()延時子函數的參數k的值),就可以很容易地控制循環次數,從而獲得不同的延時時間。
04行:聲明嵌套在03循環中的一個新的for()循環,這個循環與上一個循環相似,其循環次數是120次。本循環與上一個循環嵌套後,使得總的循環次數達120×k次。
05行:第一個分號,表示L條空語句,佔用一個機器時間,以實現延時的目的。後面的兩個「}」中,第一個「}」是04行for()循環的結束標志,程序遇到它時,將自動返回04行,使用於循環計數的變數j加1,同時判斷j是否小於120,如果否,則轉入05行;第二個是03行for()循環的結束標志,程序遇到它則會返回03行
Ⅹ 如何利用單片機進行過零檢測
用單片機進行過零檢測。1,查詢方法,用單片機的A/D轉換,不斷地對電壓信號進行查詢,查詢過零點電壓後,進行程序運行處理。2,中斷方法,外部電路用比較器檢測過零點電壓信號,有了過零點電壓信號,比較器輸出觸發單片機外部中斷口,單片機中斷後,進行程序運行處理。