㈠ 如何讓pic單片機輸出一個pwm脈沖
輸出脈沖的時候應該承擔面積,所以的話是直接可以進行輸出的。
㈡ 單片機輸出脈沖信號是數字信號還是模擬信號
什麼叫數字信號 什麼叫模擬信號?
單片機輸出的脈沖信號 就是一個電壓信號,一個方波而已。
㈢ 怎麼利用單片機輸出負的脈沖
最簡單使用兩個電容器,幾個4148二級管,少量電阻就可以實現。
一個輸出口利用二極體和電容達成的充電泵產生負電壓,另一個輸出口通過電阻和4.6V(假設單片機5V供電)的穩壓管,利用編程的輸出正脈沖,定時消耗某電容器上的負電壓電荷。
這樣,負脈沖就產生了。置於阻容參數,根據輸出頻率計算啊。
上面是簡單廉價的方法,當然,你要求特定波形,就增加外圍電路元件,使用雙電源供電,當然更能實現了最簡單使用兩個電容器,幾個4148二級管,少量電阻就可以實現。
一個輸出口利用二極體和電容達成的充電泵產生負電壓,另一個輸出口通過電阻和4.6V(假設單片機5V供電)的穩壓管,利用編程的輸出正脈沖,定時消耗某電容器上的負電壓電荷。
這樣,負脈沖就產生了。置於阻容參數,根據輸出頻率計算啊。
上面是簡單廉價的方法,當然,你要求特定波形,就增加外圍電路元件,使用雙電源供電,當然更能實現了
最簡單使用兩個電容器,幾個4148二級管,少量電阻就可以實現。
一個輸出口利用二極體和電容達成的充電泵產生負電壓,另一個輸出口通過電阻和4.6V(假設單片機5V供電)的穩壓管,利用編程的輸出正脈沖,定時消耗某電容器上的負電壓電荷。
這樣,負脈沖就產生了。置於阻容參數,根據輸出頻率計算啊。
上面是簡單廉價的方法,當然,你要求特定波形,就增加外圍
,使用
,當然更能實現了
㈣ 請教51單片機引腳脈沖輸出問題
用一個中斷定時器,設置中斷時間,每次中斷時,用一個變數計數,當到了你想要的頻率時,將IO口取非就可以了;這樣可以做到每路的頻率不一樣。
㈤ 我想要51單片機的管腳輸出100個高低脈沖,但為什麼脈沖數控制不了,示波器上顯示的脈沖數根本停不下來
在程序末尾加while(1)分號即可,否則程序會反復循環或跑飛。
㈥ 單片機的ALE腳怎麼輸出1Hz的脈沖啊
你好!
有一種辦法你可以試一試。你可以在XTAL1引腳引入外部脈沖信號頻率為6Hz,XTAL2引腳懸空。ALE引腳輸出工作頻率的1/6,即1Hz。不知道這樣行不行,請高手指教
如果對你有幫助,望採納。
㈦ 單片機利用IO口反轉來實現脈沖輸出怎麼輸出的頻率那麼低呢這是怎麼回事呀!
利用單片機IO口翻轉來輸出脈沖,其脈沖頻率和單片機的指令周期、板上所用晶振有關。有的單片機還可以設置倍頻,那樣輸出頻率就可以更高了。
㈧ STC單片機PWM脈沖輸出可以變頻計數嗎
首先看CMOD這個寄存器,這里我們主要關注 CPS0,CPS1,CPS2,這三個位控制選擇PCA的計數脈沖源。 對應PWM功能,則是選擇頻率。 首先可以選擇 6個固定分頻,可以看圖片看出,分別是1,2,4,6,8,12的系統分頻。我們需要做可變頻率的PWM,所以我們需要選擇模式2,選擇定時器0的溢出作為系統分頻基數。
然後,我么看怎麼具體的去計算,去實現分頻。 這里就需要上面這個圖片的計算規則。 這里我舉一個例子來說明,比如我們單片機的晶振使用的是12MHZ,而我們需要實現300HZ的頻率。 如果得到呢?
首先,如果我們採用CMOD的固定分頻,可以發現,無論是1,2,4,8,12,分頻下來的頻率都不是300HZ。 所以這里也體現我們使用定時器0做分頻基數的好處了。
我們繼續計算,12MHZ需要轉化為300HZ,那麼根據上圖,首先我們需要確定PCA時鍾輸入頻率,根據公式 300*256=76800HZ,這個值就是我們需要的PCA時鍾輸入頻率。現在問題就是 ,我們怎麼把12MHZ,轉化為76.8KHZ, 12000KHZ/76.8KHZ=156.25 ,這個156.25就是分頻基數,而這個分頻基數由我們的定時器溢出參數來設定,意思就是當我們定時器如果計數156.25溢出就可以做到分頻基數為156.25, 所以我們在設置定時器0的計數起始值就是65536-156=65380,對應TH0=0XFF,TL0=0X64。
好了,怎麼計算PWM在定時器0下實現我們自己需要的任意頻率的計算方式這里就介紹完了。 如果要動態實現頻率可變,我們就可以通過通訊去動態調整定時器0的計數基數,(實際就是調整了分頻基數),就可以實現頻率的改變了。 另外,說明:這里的定時器0,不需要中斷,並且該定時器也不是作為產生PWM用的,是作為一個分頻基數用!
㈨ 如何寫一個單片機輸入上升沿和下降沿的脈沖輸出信號的c語言程序
如果是循環中查詢的話我一般這樣做, 定義一個變數比如keyLastStatus來記錄上一次掃描周期的狀態
sbit key=P2.0; char keyLastStatus=0;
keyLastStatus=key; //初始化
while (1)
{
if(key==0 && keyLastStatus!=key) Todo(); //上升沿
if(key==1 && keyLastStatus!=key) Todo(); //下降沿
keyLastStatus=key; //記錄上一次的狀態
}
㈩ 怎樣用51單片機輸出一個脈沖信號
我直接說思路可以嗎?利用已知的脈沖信號的數據(比如單位脈沖整個時間和高電位時間)可以推到出頻率計算公式,然後利用除法和取模,一位位的放到字元串裡面,然後顯示字元串。比如說51hz,(int)51/10=5,51%10=1,明白了吧。
寫完之後才發現這個問題是09年提的,都過了三年了,汗///估計現在這位兄弟已經成牛人了吧....