芯片复制STC15W2K16单片机自带PCA模块
| 芯片复制//单片机STC15W2K16. 芯片复制//晶振11.0592. 芯片复制//LED红绿蓝三色共阳。 芯片复制//PWM输出在第四脚(P1.0) #include<intrins.h> #include "stch15.h"//这个头文件是STC15.H #define uchar unsigned char sbit k1=P2^0; sbit k2=P2^1; sbit k3=P2^2; sbit bled=P2^3;//蓝色LED. sbit rled=P2^4;//红色LED sbit gled=P2^5;//绿色LED uchar u; uchar zhanko=0xff;//占空比 void pwmint()//这是PCA初始化函数 { CMOD=0X02; CL=0X00; CH=0X00; CCAPM0=0X42; CCAP0H=0Xff; CCAP0L=0Xff; CR=1; } void pwmshe(uchar t)//这是占空比调节函数 { CCAP0H=t; CCAP0L=t; } void yan(int q)//延时函数 { char a,b; for(a=100;a>0;a--) for(b=q;b>0;b--); } void anjian()//按键扫描 { if(k1==0)//占空比增加按键 { yan(100); if(k1==0) yan(100); if(k1==1) yan(100); if(zhanko<255) { zhanko=zhanko+1; pwmshe(zhanko);//占空比设置函数 } } if(k2==0)//占空比减小按键 { yan(100); if(k2==0) { yan(100); } if(k2==1) yan(100); if(zhanko>0) { zhanko=zhanko-1; pwmshe(zhanko); } } if(k3==0)//红绿蓝三色LED选择按键 { yan(1000); if(k3==0) { yan(1000); if(k3==1) { yan(1000); u++; } if(u==1) yan(500); { bled=1;//蓝色LED rled=1;//红色LED gled=0;//绿色LED } if(u==2) { bled=0; rled=1; gled=1; } if(u==3) { bled=1; rled=0; gled=1; } if(u==4) { u=1; } } } } void main() { pwmint(); while(1) { anjian(); } } |

芯片解密