1樓:匿名使用者
1 設定一個 io 輸出口dao作為 pwm 輸出2 設定一
回個 可調定時答器 如 定時 250 io輸出 0 , 定時 5 io輸出 1, 高電平 窄
或 定時 5 io輸出 0 , 定時 250 io輸出 1, 高電平 寬
即定時器每中斷一次要重灌定時資料
2樓:最近的天涯海角
有的微控制器帶有pwm功能,用定時器實現的方法是:根據佔空比計算出高電平和低電平的時間,利用定時器定時,然後取反就可以了
51微控制器是如何產生pwm波的?
3樓:匿名使用者
主要通bai過一個定時器和一個io口來實現dupwm的輸zhi出。
在一個週期裡
dao面,首先讓io口輸出高電版平,並定時一定的時間然後再權將io口輸出低電平,定時一定的時間。
然後在while裡面迴圈輸出即可。
需要改變佔空比的話就改變高電平的時間與低電平的時間比。
4樓:鈍角111度
設定相應程式,控制相應頻率,輸出高低電平來控制開關管。調製輸出pwm波。
5樓:匿名使用者
可以用匯編指令nop來完成頻率設定。
計算好頻率後直接用io口輸出就可以了
6樓:匿名使用者
程式控制中斷和定時器來實現。
怎麼51微控制器定時器來模擬pwm波?
7樓:匿名使用者
pwm的意思是「脈衝寬度調製」
pwm有兩個最基本的引數:頻率、佔空比。
頻率就是每秒鐘電平高低變化的次數,佔空比是指高電平保持時間和整個脈衝週期中的比例關係。
對於用定時器來模擬,最基本的方法就是使用一個io口迴圈設定其輸出值為高電平和低電平。
只要做到這兩個時間的計時,那麼就可以實現基本的pwm了。
而要做到兩個時間的計時,有兩種方案:
1.單計時器方案
int i;//計時變數
timer1()
else if (i==100)
else if (i==0)
}2.雙計時器方案
//只需要設計好兩個計時器的初值和週期,即可完成交替亮滅timer1()
timer2()
8樓:匿名使用者
用定時器t1/t2的工作方式2吧(我也忘記了,就是能自動重灌初始值的那個),在定時器程式裡,讓一個i/o口取反輸出(例如sbit s=p1^0;s=~s;)通過改變定時時常就可以了
學習51微控制器,如何起步,學習51微控制器,應該先學什麼
先學微控制器結構和彙編吧,要掌握微控制器的精髓還是從彙編開始,如果嫌枯燥,也可以從c學 學習51微控制器,應該先學什麼?一是必須得有較好的c語言基礎,如果是組合語言非常熟練的話也行.二是買一個微控制器開發板,上有很多.三是弄本關於51微控制器應用的書,然後在網上看51微控制器的介紹.四是天天拿著電腦...
51微控制器如何檢測高電平輸入,51微控制器引腳檢測高電平輸入的問題
51微控制器,把引腳設定為輸入狀態,方法就是輸出一個1。這是微控制器的設計者 生產廠家所規定的。在這個前提下,外界,只有輸入低電平,才會改變引腳的狀態。輸入高電平,是沒有反應的。如果,外設,一定要送來高電平,那就必須加上一個反相器,再連線到微控制器的引腳。這個電路和功能是可以實現的 c2放完電p1....
51微控制器的51是什麼意思,51微控制器什麼意思啊
51微控制器是指8051系列的微控制器,最初由英特爾設計,因為效能較優被廣泛使用,後多家改型。功能雖說千差萬別但核心一樣。51微控制器什麼意思啊 6秒定時,12m晶振時一次定時溢位是實現不了的,需要多次溢位累積才行,所以初值是不確定的,比如可以是 tmod 0x01 th0 65536 50000 ...