|
最近也比較忙,就不放圖片了,大家可以自己下載下來看一下,
這是關(guān)于PWM 輸出波形脈沖的仿真proteus仿真,有仿真示波器,有程序,用數(shù)碼管和流水燈表示輸出結(jié)果,大家有問題的可以再來找我,15538053902(我微信)
IMG_20170413_162756.jpg (2.52 MB, 下載次數(shù): 66)
下載附件
2017-4-15 21:16 上傳
0.png (36.87 KB, 下載次數(shù): 108)
下載附件
2017-4-30 20:16 上傳
部分單片機(jī)源程序:
- #define PWM_GLOBAL 1
- #include "pwm.h"
- /*****************************************************
- *函數(shù)名稱:pwm_init(void)
- *函數(shù)功能:PWM初始化,設(shè)置定時器
- *函數(shù)入口:無
- *函數(shù)出口:無
- *****************************************************/
- void pwm_init(void) // 12M
- {
- TMOD=0x20; // 定時器1 模式2
- TL1 = 255-10; // 1ms
- TH1 = 255-10;
- ET1 = 1; //定時器1邊沿觸發(fā)
- TR1 = 1; //開定時器1中斷
- pwmPeriodCont =0x00;
- pwmH=0x01;
- }
- /*****************************************************
- *函數(shù)名稱:void pwm_set(const uchar NewPwmValue)
- *函數(shù)功能:PWM占空比設(shè)置
- *函數(shù)入口:無
- *函數(shù)出口:無
- *****************************************************/
- void pwm_set(uchar NewPwmValue)
- {
- if ((NewPwmValue >= 1)&&(NewPwmValue <= 99)) //一個周期里
- {
- pwmH = NewPwmValue;
- }
- else //若占空比不在1...99范圍內(nèi)則輸出一個尖脈沖
- {
- pwmH =0x01;
- }
- }
- /*****************************************************
- *函數(shù)名稱:pwmProduce(void)
- *函數(shù)功能:定時器1溢出中斷設(shè)置
- *函數(shù)入口:無
- *函數(shù)出口:無
- *****************************************************/
- void pwmProduce(void) interrupt 3
- {
- pwmPeriodCont++; //PWM定時周期計(jì)數(shù)加1
- if(pwmPeriodCont<=pwmH)
- PWM_OUT =1; // 高電平從0 到...PWM_H
- else // 剩下的為低電平時間
- {
- PWM_OUT =0;
- if (pwmPeriodCont >= PWM_Period)// 一個頻率周期結(jié)束
- {
- pwmPeriodCont=0;
- }
- }
- }
復(fù)制代碼
0.png (54.83 KB, 下載次數(shù): 71)
下載附件
2017-4-30 20:16 上傳
所有資料下載:
PWM輸出控制系統(tǒng).rar
(24.65 KB, 下載次數(shù): 61)
2017-4-30 19:50 上傳
點(diǎn)擊文件名下載附件
仿真和程序 下載積分: 黑幣 -5
新建 Microsoft Word 文檔.docx
(328.67 KB, 下載次數(shù): 21)
2017-4-30 19:50 上傳
點(diǎn)擊文件名下載附件
文檔 下載積分: 黑幣 -5
|
|