1樓:匿名使用者
1、首先要明白pwm的含義,pwm就是輸出不同占空比的脈衝,2、普通51微控制器io口輸出pwm的話,可以用定時器去計時,比如要輸出100hz的占空比50%的pwm。可以配置1ms的定時器中斷,在中斷中計數,乙個中斷就是1ms,100hz的脈衝,週期是10ms,50%的占空比,可以計數到5的時候把io口取反;程式如下
void main()
void timer0() interrupt 1else if(t < 10)
else
}上面的程式就是週期是10ms,占空比為50%的輸出了,,,需要調節占空比的話,只要改變io口電平**的時間就可以了;
3、多個io口 輸出不同占空比的pwm;
原理是和1個的是一樣的, 多用幾個時間變數去計時,判斷就可以了。
4、上面說的是普通的51微控制器,現在有很多增強型微控制器,內部有pwm模組,可以直接使用,賦值乙個週期值,比如30000到特定的暫存器裡面; 然後改變第一次電平變化的時間和第二次電平變化的時間 就可以實現不同的占空比調節了。具體的可以參考下微控制器的資料手冊都會有例程說明的,。如果是使用內部pwm模組的話,需要選擇含有多路pwm功能的微控制器來滿足設計要求了。
2樓:匿名使用者
你需要分時輸出嗎?不然的話乙個io口就只能輸出一路pwm訊號。
3樓:匿名使用者
提供下思路,兩個定時器。乙個控制高低電平,另乙個控制四種pwm的順序及時長。
4樓:火鍋公子
不可以,乙個具有pwm輸出功能的io口只能輸出一路pwm
51微控制器怎樣輸出5v的pwm波,為什麼我輸出的pwm波是0~4v呢
5樓:帖學岺汝棋
用定時器t1/t2的工作方式2吧(我也忘記了,就是能自動重灌初始值的那個),在定時器程式裡,讓乙個i/o口取反輸出(例如sbit
s=p1^0;s=~s;)通過改變定時時常就可以了
6樓:匿名使用者
首先,電源達5v。其次是你是否在io口接有負載,當有負載時會拉低io口的電壓,io口的高電平驅動能力只有幾百微安,低電平驅動能力最強的微控制器能達到20毫安,所以造成低電平能有0v,高電平卻達不到5v
7樓:匿名使用者
輸出要求5v,那就要占空比100%,這是不可能的,pwm做到90%都差不多了
8樓:匿名使用者
你指什麼是4v?如果你用萬用表量,只有占空比100%的才是5v,80%的會使4v。
微控制器IO口是怎樣擴充套件的,微控制器擴充套件io口怎麼用
4終 1 首先可以使用38譯碼器進行拓展,三個引腳的二進位制輸入可變成8個引腳的分別輸出。2 然後附74hc138晶片真值表。3 還可以使用鎖存器拓展 74hc573,顧名思義,就是可以通過控制le引腳鎖住輸入io的點平,保持輸出不變,如下圖。4 還可以用序列輸入並行輸出的移位快取器74hc595進...
微控制器的io口的幾種輸出方式,STM32微控制器IO口各種模式的特點
從i o口的特性上看,標準51的p0口在作為i o口使用時,是開漏結構,在實際應用中通常要新增上拉電阻 p1 p2 p3都是準雙向i o,內部有上拉電阻,既可作為輸入又可以作為輸出。而lpc900系列微控制器的i o口特性有一定的不同,它們可以被配置成4種不同的工作模式 準雙向i o 推輓輸出 高阻...
微控制器高阻態問題,關於微控制器i o口的高阻態問題
五寒夢 呵呵,這個問題真的有點意思啊,還真沒碰到過能輸出高阻的微控制器呢,呵呵。估計樓主是搞錯意思,gps的高頻訊號是會對系統造成干擾的 天線 或者 布板的走線 地線 等等 這邊設定成高阻的意思估計是 原來是 輸出的io口 在輸出完畢後為了保證這個io不產生多餘的 高頻干擾 將它再設定成 輸入 並選...