free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標簽廣場
我要提問

單片機

單片機控制RGB

/*原理:先亮紅燈(保持一會兒)----紅綠過度(綠加1、紅減1循環(huán)240次)------

綠燈亮起(保持一會兒)----綠蘭過度(蘭加1、綠減1循環(huán)240次)-----蘭燈亮起

(保持)-----蘭白過度(綠加1、紅加1循環(huán)240次、蘭不變---白紅過度*/

#include//MCU頭文件

#define uchar unsigned char//字浮型宏定義

#define uint unsigned int//整型宏定義

#define shudu 60//LED漸變速度調(diào)整

#define dengji 1//LED變化等級調(diào)整

sbit B1=P1^0;//紅色燈控制IO口

sbit G1=P1^1;//綠色燈控制IO口

sbit R1=P1^2;//蘭色燈控制IO口

uchar Rout,Bout,Gout;//紅綠蘭3個變量

/***************************************************/

/**********************延時子程序*******************/

/***************************************************/

void delay(uint z)

{

uint x,y;//局部變量定義

for(x=0;x<5;x++)//延時外循環(huán)

for(y=0;y}

/**********************************************/

/**********PWM控制紅綠蘭3種燈亮滅時間**********/

/**********************************************/

void RGBpwm(uchar Rou,uchar Gou,uchar Bou)//3個局部變量,這部分為帶參數(shù)函數(shù)

{

if(Rou!=0)//如果紅燈變量不等于0就亮紅燈

{

  R1=1;//紅燈亮

  delay(Rou);//紅燈亮起時間

  R1=0;//紅燈滅

}

if(Gou!=0)//如果綠燈變量不等于0就亮綠燈

{

  G1=1;//綠燈亮

  delay(Gou);//綠燈亮起的時間 

  G1=0;//綠燈滅

}

if(Bou!=0)//如果蘭燈變量不等于0就亮蘭燈

{

  B1=1;//蘭燈亮

  delay(Bou);//蘭燈亮起的時間

  B1=0;//蘭燈滅

}

}

  

/***********************************************/

/********************主程序*********************/

/***********************************************/

void main()

{

TMOD=0x01;//選擇定時器在方式1下工作

EA=1;//打開總中斷

ET0=1;//打開定時器中斷

TR0=1;//打開定時器

R1=0;//開機將紅燈關(guān)閉

G1=0;//開機將綠燈關(guān)閉

B1=0;//開機將蘭燈關(guān)閉

TH0=(65536-256)/256;//給定時器高8位賦值

TL0=(65536-256)%256;//給定時器低8位賦值

while(1)//程序主循環(huán)

{

  RGBpwm(Rout,Gout,Bout);//調(diào)用RGBpwm子程序

}

}

/*************************************************/

/*中斷服務(wù)子程序(控制LED紅綠蘭亮滅時間占空比例)*/

/*************************************************/

void zhong() interrupt 1//中斷向量位為1

{

uint num;//定時器計數(shù)變量

uint ji;//亮度等級控制變量

TH0=(65536-256)/256;//給定時器高8位賦值

TL0=(65536-256)%256;//給定時器低8位賦值

num++;//將定時計數(shù)變自動增加1

if(num==shudu)//如果速度變量等于定時計數(shù)器變量就執(zhí)行下面大括號語句

{

  num=0;//將計數(shù)器清0

  ji++;//將亮度等級控制變量加1

  if((ji>0)&&(ji<100))//如果亮度等級控制變量ji小于100,紅燈亮起時間變量為240

  {

   Rout=240;//紅燈亮起變量為240

   Gout=0;//綠燈亮起變量為0

   Bout=0;//蘭燈亮起變量為0

  }

  if((ji>100)&&(ji<340))/*如果亮度等級控制變量ji大于100小于340(剛好240個等級),

  紅燈亮起時間變量由原來的240,慢慢減小到0,同時綠燈由原來的0慢慢增到240,形成

  紅燈到綠燈的漸變過程*/

  {

   Rout-=dengji;//將紅燈變量減1。因為dengji為亮度變化等級(本程序變化等級為1),

   Gout+=dengji;//將綠燈變量加1

   Bout=0;//蘭燈不變

  }

  if((ji>340)&&(ji<440))/*亮度等級控制變量ji大于340小于440時,讓綠燈變量停一段時間

  這樣就形成了當紅燈過度到綠燈時,綠燈會停一會兒的效果。*/

  {

   Rout=0;//紅燈滅

   Gout=240;//綠燈亮

   Bout=0;//蘭燈滅

  }

  if((ji>440)&&(ji<680))//同理:亮度等級控制變量ji大于440小于680時,由綠燈到蘭燈過度

  {

   Rout=0;//紅燈變量不變

   Gout-=dengji;//將綠燈變量減1

   Bout+=dengji;//將蘭燈變量加1

  }

  if((ji>680)&&(ji<780))//亮度等級控制變量ji大于680小于780時,讓蘭燈變量停一段時間

  {

   Rout=0;//紅燈滅

   Gout=0;//綠燈滅

   Bout=240;//蘭燈亮一會兒

  }       

  if((ji>780)&&(ji<1020))//亮度等級控制變量ji大于780小于1020時,由蘭燈到白燈過度

  {

   Rout+=dengji;//將紅燈變量加1

   Gout+=dengji;//綠燈變量加1

   Bout=240;//蘭燈不變

  }

  /*if((ji>1020)&&(ji<1120))//亮度等級控制變量ji大于1020小于1025時,由蘭燈到白燈過度

  {

   Rout=240;//將紅燈變量加1

   Gout=240;//綠燈變量加1

   Bout=240;//蘭燈不變

  }

  if((ji>1260)&&(ji<1500))//亮度等級控制變量ji大于1025小于1265時,由白光到紅光過度

  {

   Rout=240;//紅燈變量不變

   Gout-=dengji;//綠燈變量自動減1

   Bout-=dengji;//蘭燈變量自動減1

  }*/

  if(ji>1120)//當亮度等級控制變量ji大于1210時,就將它清0

  ji=0;//將亮度控制等級清0

}

}綠色轉(zhuǎn)藍色的時候沒有呼吸的效果,直接變藍色,求大神指導(dǎo)

提問者:hu_wflllll12 地點:- 瀏覽次數(shù):7544 提問時間:10-19 11:56
我有更好的答案
提 交
1條回答
CQuin 10-19 11:56

RGB-LED變化出64中不同的顏色,......

----
每種顏色的LED,要有四種亮度。
三種顏色搭配,就有 64 種顏色了。

每種顏色的LED,要有四種亮度:不亮、1/3亮、2/3亮、全亮。

其實,并不難控制。
都用不上 PWM 控制器。
用一個定時器,每隔一毫秒中斷一次,對三路輸出,控制一下即可。

撰寫答案
提 交
1 / 3
1 / 3
相關(guān)單片機
具有音調(diào)控制的單片機立體聲前置放大器
用于單片機與電子裝置中的開關(guān)電源
單片機軟硬件復(fù)位的條件都有啥
電動機的單片機控制
單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航