欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC15單片機的5050PCA流水燈程序
[打印本頁]
作者:
天藍色的Toto
時間:
2021-2-13 02:08
標題:
STC15單片機的5050PCA流水燈程序
通過74HC595控制8位流水燈,PCA的三路PWM控制顏色
引腳定義(僅供參考)
sbit DQ=P1^2;
sbit RCK=P1^3;
sbit SCLK=P1^4;
sbit Blue=P1^0;
sbit Red=P1^1;
sbit Green=P3^7;
單片機源程序如下:
#include<stc15f2k60s2.h>
#include<intrins.h>
sbit DQ=P1^2;
sbit RCK=P1^3;
sbit SCLK=P1^4;
/*
sbit Blue=P1^0;
sbit Red=P1^1;
sbit Green=P3^7;
*/
unsigned int bianliang;
unsigned char red,green,blue;
#define CCP_S0 0x10
#define CCP_S1 0x20
void delay(void) //誤差 0us
{
unsigned char a,b;
for(b=173;b>0;b--)
for(a=143;a>0;a--);
}
void Timer0Init(void) //7500微秒@11.0592MHz
{
AUXR &= 0x7F; //定時器時鐘12T模式
TMOD &= 0xF0; //設置定時器模式
TH0 = 0x0F1;
TL0 = 0x9A;
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
EA=1;
ET0=1;
}
void Write595(unsigned char dat)
{
unsigned char i;
RCK=0;
for(i=0;i<8;i++)
{
SCLK=0;
dat<<=1;
_nop_();
DQ=CY;
_nop_();
_nop_();
SCLK=1;
}
RCK=1;
}
void PWMInit()
{
ACC=P_SW1;
ACC&=~(CCP_S0|CCP_S1);
P_SW1=ACC;
CCON=0X00;
CL=0;
CH=0;
CMOD=0x08;
/*紅*/
PCA_PWM0=0x00;
CCAP0H=CCAP0L=0X00;
CCAPM0=0X42;
/*藍*/
PCA_PWM1=0x00;
CCAP1H=CCAP1L=0X00;
CCAPM1=0X42;
/*綠*/
PCA_PWM2=0x00;
CCAP2H=CCAP2L=0Xff;
CCAPM2=0X42;
}
void PWMSet(unsigned char re,blu,gree)
{
CCAP0H=CCAP0L=re;
CCAP1H=CCAP1L=blu;
CCAP2H=CCAP2L=gree;
}
void main()
{
bianliang=0;blue=255;green=0;red=0;
PWMInit();
Timer0Init();
while(1)
{
unsigned char ams,i,j,sma;
for(j=0;j<12;j++)
{
ams=0x80;
for(i=0;i<8;i++)
{
Write595(~ams);
ams>>=1;
delay();
}
}
for(j=0;j<12;j++)
{
ams=0x01;
for(i=0;i<8;i++)
{
Write595(~ams);
ams<<=1;
delay();
}
}
for(j=0;j<8;j++)
{
ams=0x80;
for(i=0;i<8;i++)
{
Write595(~ams);
ams>>=1;
delay();
}
ams=0x01;
for(i=0;i<8;i++)
{
Write595(~ams);
ams<<=1;
delay();
}
}
for(j=0;j<16;j++)
{
ams=0x80;sma=0x01;
for(i=0;i<8;i++)
{
Write595(~(ams|sma));
ams>>=1;
sma<<=1;
delay();
}
}
for(j=0;j<8;j++)
{
ams=0x7f;
for(i=0;i<8;i++)
{
Write595(ams);
ams>>=1;
delay();
}
}
for(j=0;j<8;j++)
{
ams=0xfe;
for(i=0;i<8;i++)
{
Write595(ams);
ams<<=1;
delay();
}
}
for(j=0;j<12;j++)
{
ams=0xf0;
for(i=0;i<2;i++)
{
Write595(~ams);
delay();
delay();
delay();
ams>>=4;
Write595(~ams);
delay();
delay();
delay();
}
}
for(j=0;j<12;j++)
{
ams=0xaa;
for(i=0;i<2;i++)
{
Write595(~ams);
delay();
delay();
delay();
Write595(ams);
delay();
delay();
delay();
}
}
for(j=0;j<12;j++)
{
ams=0x88;
for(i=0;i<4;i++)
{
Write595(~ams);
ams>>=1;
delay();
delay();
}
}
for(j=0;j<12;j++)
{
ams=0x11;
for(i=0;i<4;i++)
{
Write595(~ams);
ams<<=1;
delay();
delay();
}
}
}
}
void Timer() interrupt 1
{
if(bianliang==0)
{blue=255;green=0;red=0;}
if(bianliang>0&&bianliang<255)
{blue--;red++;}
if(bianliang==255)
{blue=0;green=0;red=255;}
if(bianliang>255&&bianliang<510)
{red--;green++;}
if(bianliang==510)
{blue=0;green=255;red=0;}
if(bianliang>510&&bianliang<765)
{blue++;}
if(bianliang==765)
{blue=255;green=255;red=0;}
if(bianliang>765&&bianliang<1020)
{red++;green--;}
if(bianliang==1020)
{blue=255;green=0;red=255;}
if(bianliang>1020&&bianliang<1275)
{blue--;green++;}
if(bianliang==1275)
{blue=0;green=255;red=255;}
if(bianliang>1275&&bianliang<1530)
{blue++;}
if(bianliang==1530)
{blue=255;}
if(bianliang>1530&&bianliang<1785)
{red--;}
if(bianliang==1785)
{red=0;}
if(bianliang>1785&&bianliang<2040)
{red++;blue--;}
if(bianliang==2040)
{blue=0;red=255;}
if(bianliang>2040&&bianliang<2295)
{blue++;green--;}
if(bianliang==2295)
{blue=255;green=0;red=255;}
if(bianliang>2295&&bianliang<2550)
{red--;green++;}
if(bianliang==2550)
{blue=255;green=255;red=0;}
if(bianliang>2550&&bianliang<2805)
{blue--;}
if(bianliang==2805)
{blue=0;green=255;red=0;}
if(bianliang>2805&&bianliang<3060)
{red++;green--;}
if(bianliang==3060)
{blue=0;green=0;red=255;}
if(bianliang>3060&&bianliang<3315)
{red--;blue++;}
bianliang++;
PWMSet(red,blue,green);
if(bianliang==3315)
{bianliang=0;}
}
復制代碼
所有程序51hei提供下載:
5050全彩流水燈PCA.zip
(34.5 KB, 下載次數: 11)
2021-2-13 02:08 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1