应广单片机PMS150G开发挂脖小风扇实战代码 如果大家觉得有帮助,记得投票关注和评论,采用的是台湾应广科技的PMS150G的主控芯片(其他芯片也是一样的,稍加修改就可以了,有任何问题请联系博主),话不多说,上代码: #include “extern.h”
bit KEY : PA.7; bit LED : PA.6; bit EN : PA.4; //EN使能1和 CHK_LOAD为1时,电机启动 待机为低,开机一直为高 bit CHK_LOAD : PA.5; //EN使能1和 CHK_LOAD为1时,电机启动 待机和开机一直为低 //bit PWM : PA.3;
void dang1(); void dang2(); void dang3();
void FPPA0 (void) {
.ADJUST_IC SYSCLK=IHRC/2
PAC =0B0011_1111; //输出输出
PAPH =0B1111_1111; //上拉电阻
EN=0;
CHK_LOAD=0;
wdreset;
tm2ct=0x0; //timer2计数寄存器
// tm2b=0x7f; //timer2上限寄存器 // tm2s=0b0_00_00001; //timer2分频寄存器 // tm2c=0b0001_10_1_0; //timer2控制寄存器
BYTE mode; //按键模式变量
mode=0;
while (1)
{
if(KEY==0)
{
.delay 20;
if(KEY==0)
{
mode++;
if(mode==1)
{
dang1();
}
if(mode==2)
{
dang2();
}
if(mode==3)
{
dang3();
}
if(mode>=4)
{
mode=0;
EN=0;
tm2b = 0b_0000_0000;
tm2s = 0b_1_00_00010;
tm2c = 0b_0010_10_1_0;
}
while(!KEY) NULL; //或者.wait1 KEY 等待按键释放
}
}
}
} /*********************************************************/ void dang1() { tm2b = 0b_0000_0101; //占空比 约 20% //1000->1011 1 十进制数为:11 5 tm2s = 0b_1_00_00010; //十进制数为:130 tm2c = 0b_0010_10_1_0; //十进制数为:42 EN=1; } /*********************************************************/ void dang2() { tm2b = 0b_0000_1011; //占空比40% //1001->1010 2 十进制数为:26 11 tm2s = 0b_1_00_00001; // 十进制数为:129 tm2c = 0b_0010_10_1_0; // 十进制数为:42 EN=1; } /*********************************************************/ void dang3() { tm2b = 0b_00010010; //0101 -> 0100 ->0010_0010 ->0001_1100(2880) ->0001_1111 3 十进制数为:34 18 tm2s = 0b_1_00_00001; // 十进制数为:129 tm2c = 0b_0010_10_1_0; // 十进制数为:42 EN=1; } /QQ:1475881755/
|