|
粘貼一段STC15W4K32S4的PWM程序,希望大家喜歡,里面用了SI7021溫濕度傳感器,提供全部源碼
0.jpg (41.83 KB, 下載次數(shù): 40)
下載附件
2018-4-4 04:21 上傳
單片機(jī)源程序如下:
- #include <STC15F2K60S2.H>
- #include <STC15_PWM.H>
- #define EAXSFE() P_SW2 |= 0x80; //CPU訪問(wèn)外部擴(kuò)展
- #define EAXRAM() P_SW2 &= 0x7F; //CPU訪問(wèn)內(nèi)部RAM
- unsigned int PWM_Duty = 600;
- int PWM_Right_Duty = 100,PWM_Left_Duty = 100;
- unsigned int PWM_Freq = 2200;
- void PWM_init()
- {
- PWMCFG = 0; //PWM配置寄存器 全部初始低電平
- EAXSFE();
- PWMCKS = 0x00;//不分頻,分頻數(shù)=低四位加一
- PWM2CR = 0x08;
- PWM3CR = 0x00;
- P2M0 |= (1<<7);
- P2M0 |= (1<<1);
- PWM2T1H = PWM3T1H = 0;
- PWM2T1L = PWM3T1L = 0;
- PWM_Flash_Freq(PWM_Freq);
- PWM_Flash_Duty(PWM_Duty);
- EAXRAM();
- /////////////////////////////////////
- PWMCR = 0x83; //PWM選擇控制寄存器
- //PWMCR 啟用PWMn對(duì)應(yīng)為置“1” ,
- //ENPWM/ECBI/EN7/EN6/EN5/EN4/EN3/EN2/
- // 1 0 0 0 0 0 1 1
- //////////////////////////////////////
- }
- void PWM2_Flash_Duty(uint Duty)
- {
- PWM_Right_Duty = Judgment_value(Duty);
- EAXSFE();
- PWM2T2H = PWM_Duty / 256;
- PWM2T2L = PWM_Duty % 256;
- EAXRAM();
- }
- void PWM3_Flash_Duty(uint Duty)
- {
- PWM_Left_Duty = Judgment_value(Duty);
- EAXSFE();
- PWM3T2H = PWM_Duty / 256;
- PWM3T2L = PWM_Duty % 256;
- EAXRAM();
- }
- void PWM_Flash_Duty(uint Duty)
- {
- PWM_Duty = Judgment_value(Duty);
- EAXSFE();
- PWM2T2H = PWM3T2H = PWM_Duty / 256;
- PWM2T2L = PWM3T2L = PWM_Duty % 256;
- EAXRAM();
- }
- void PWM_Flash_Freq(uint Freq)
- {
- Freq = Judgment_value(Freq);
- EAXSFE();
- PWMCH = Freq / 256;
- PWMCL = Freq % 256;
- EAXRAM();
- }
- uint Judgment_value(uint value)
- {
- if(value>(PWM_Freq-20))
- value=PWM_Freq-20;
- if(value<11)
- value=20;
- return value;
- }
復(fù)制代碼
所有資料51hei提供下載:
防火控制.rar
(747.29 KB, 下載次數(shù): 31)
2018-4-3 11:52 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|