欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
利用兩個單片機(jī)定時器做一個固定頻率可調(diào)占空比的pwm程序
[打印本頁]
作者:
colin988
時間:
2020-6-2 10:03
標(biāo)題:
利用兩個單片機(jī)定時器做一個固定頻率可調(diào)占空比的pwm程序
看到我吃灰多年的手工DIY微型鉆子,發(fā)現(xiàn)不能調(diào)速真是硬傷,今天就花點(diǎn)時間來寫一個簡單的程序,做一個頻率固定,占空比可調(diào)的PWM, 先簡單接一個12V的小燈泡試試,等畫pcb板時再完善,程序貼出來,大家看看還有什么地方需要修改的!
下面是效果圖:
26e73dc2-c885-4b1a-8b01-b76648bba7dc.gif
(1.22 MB, 下載次數(shù): 70)
下載附件
2020-6-2 10:01 上傳
單片機(jī)源程序如下:
#include <STC15.H>
#define uchar unsigned char
#define uint unsigned char
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define PWM_OUT P11
#define K1 P12
#define K2 P13
#define K3 P14
#define led P33
uchar fa;
uint t0_v = 0x10;
//初始化T0的函數(shù),51單片機(jī)工作頻率為11.0592M
void initT0(void)
{
AUXR &= 0x7F; //定時器時鐘1T模式
TMOD &= 0xF0; //設(shè)置定時器模式
TMOD |= 0x02; //設(shè)置定時器模式
// TL0 = t0_v; //設(shè)置定時初值
// TH0 = t0_v; //設(shè)置定時重載值
TF0 = 0; //清除TF0標(biāo)志
ET0 = 1;
// TR0 = 1; //定時器0開始計(jì)時
}
void Timer2Init(void) //1微秒@11.0592MHz
{
AUXR |= 0x04; //定時器時鐘1T模式
T2L = 0x24; //設(shè)置定時初值
T2H = 0xF4; //設(shè)置定時初值
AUXR |= 0x10; //定時器2開始計(jì)時
}
void delay(BYTE num)
{
BYTE i;
WORD j;
for(i=0;i<num;i++)
{
for(j=0;j<1085;j++);
}
}
void main(){
P1M1 &= ~(1 << 1); //P1.1 設(shè)置為推挽輸出
P1M0 |= (1 << 1);
led = 0;
P3M1 &= 0xf7;
P3M0 |= 0x08;
K1 = K2 = K3=1;
initT0();
Timer2Init();
PWM_OUT = 0;
//ET0=1;
IE2 |= 0x04;
EA =1;
while(1)
{
if(K1==0)
{
delay(5);
if(K1==0 && t0_v!=0xff)
{
t0_v++;
}
}
if(K2==0)
{
delay(5);
if(K2==0 && t0_v!=0x01)
{
t0_v--;
}
}
if(K3==0)
{
delay(10);
if(K3==0)
{
led = ~led;
}
}
if(t0_v==0xff)
{
led = ~led;
}
if(t0_v==0x05)
{
led = ~led;
}
}
}
void timer0_int (void) interrupt 1
{
TR0 = 0;
PWM_OUT =1;
}
void timer2_int (void) interrupt 12
{
TR0 = 0;
TH0 = TL0 =t0_v;
TR0 =1;
PWM_OUT = 0;
}
復(fù)制代碼
全部資料51hei下載地址:
timer_pwm.rar
(21.28 KB, 下載次數(shù): 27)
2020-6-2 10:02 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
hhh402
時間:
2020-6-18 11:56
PWM是STC單片機(jī)標(biāo)配,沒有必要用定時器模擬,對于直流電機(jī)調(diào)速太簡單了,設(shè)置一個1ms定時器開中斷,在中斷程序中:如果要10檔:開9ms關(guān)1ms、開8ms關(guān)2ms、...開1ms關(guān)9ms;如果要20檔:開19ms關(guān)1ms、開18ms關(guān)2ms、...開1ms關(guān)19ms;幾個語句就完成了。這是簡化版PWM。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1