欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
關(guān)于STC15W408AS單片機(jī)中的PWM引腳使用方法問題求教
[打印本頁]
作者:
JF.y
時(shí)間:
2020-4-26 22:46
標(biāo)題:
關(guān)于STC15W408AS單片機(jī)中的PWM引腳使用方法問題求教
STC15W408AS這款單片機(jī),我看了一下他們的資料,
看到這款單片機(jī)引腳有些是自帶PWM脈沖功能的。
這種有PWM的引腳,是不是可以直接就能輸出脈沖。
比如,我想做PWM無極調(diào)光呼吸燈,亮起來,滅下去。
我以前用89C52做呼吸燈程序時(shí)個(gè),是用定時(shí)0的中斷來實(shí)現(xiàn)的。感覺有時(shí)會影響到其他程序的運(yùn)行,補(bǔ)其他外部中斷0,中斷時(shí)候,會明顯抖一下。
現(xiàn)在我的問題是:這款15W408AS自帶PWM引腳,應(yīng)該怎么使用。是不是不會占用我其他程序的執(zhí)行時(shí)間?
有沒相關(guān)的例程,請分享一下,我想學(xué)習(xí)研究。謝謝各位。
作者:
xqleft
時(shí)間:
2020-4-27 00:35
呼吸燈的程序直接軟件模擬就可以了。沒有必要pwm 。
作者:
wulin
時(shí)間:
2020-4-27 06:22
STC15W408AS內(nèi)置硬件PWM,正常運(yùn)行不占用CPU資源,控制CCAP0H寄存器預(yù)裝值0x00~0xff就能控制占空比。呼吸燈示例程序
#include <STC15F2K60S2.H>
#define uint unsigned int
#define uchar unsigned char
//sbit key1=P4^2;
//sbit key2=P4^4;
//sbit LED=P1^0;
uchar num=0x00; //占空比變量
bit a=0; //呼吸位變量
uint b; //延時(shí)計(jì)數(shù)變量
void PWM_Init()
{
CCON = 0; //初始化PCA控制寄存器
//PCA定時(shí)器停止
//清除CF標(biāo)志
//清除模塊中斷標(biāo)志
CL = 0; //復(fù)位PCA寄存器
CH = 0;
CMOD = 0x02; //設(shè)置PCA時(shí)鐘源,PWM頻率=12MHZ/2/256=23.4375KHZ
//PWM頻率=11.0592MHZ/2/256=21.600KHZ
PCA_PWM0 = 0x00; //PCA模塊0工作于8位PWM
CCAP0H = CCAP0L = 0xff; //PWM0的占空比為0%(0x00=100%)
CCAPM0 = 0x42; //PCA模塊0為8位PWM模式
CR = 1; //PCA定時(shí)器開始工作
}
void scan()
{
static uint count1=0,count2=0;
if(a==0)
{
count1++;
if(count1>=2000)
{
count1=0;
if(num<0xff)
{
num++;
if(num==0xff)
{
a=1;
b=5000;
while(b--);
}
}
}
}
else
{
count2++;
if(count2>=2000)
{
count2=0;
if(num>0)
{
num--;
if(num==0)
{
a=0;
b=5000;
while(b--);
}
}
}
}
}
void main()
{
P1M0 = 0x01; //P1.0端口推挽輸出模式
P1M1 = 0x00;
PWM_Init(); //初始化PWM
while(1)
{
scan(); //呼吸掃描
CCAP0H=num; //P1.0輸出PWM
}
}
復(fù)制代碼
作者:
余生不負(fù)
時(shí)間:
2020-4-27 11:12
如果你是從89C52過度到STC15W408AS,怎么也要學(xué)習(xí)1個(gè)月以上才能掌握。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1