久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

用PWM控制漸變七彩燈C51程序

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年04月27日   【字體:

一、硬件介紹:

 (采用5050LED 2W) RGB三色LED控制引腳分別為單片機(jī)P1.2 、 P1.1  、 P1.0。LED正極接主電源(24V)正極,負(fù)極接驅(qū)動(dòng)3顆三極管的集電極,單片機(jī)控制腳分別接3顆NPN三極管,三極管發(fā)射極接地,而單片機(jī)的供電是來自三端穩(wěn)壓器7805,祥細(xì)原理如下:


 

二、實(shí)物圖片:



 

三、軟件部分:

1、/*原理:
 
先亮紅燈(保持一會(huì)兒)----紅綠過度(綠加1、紅減1循環(huán)240次)------
綠燈亮起(保持一會(huì)兒)----綠蘭過度(蘭加1、綠減1循環(huán)240次)
-----蘭燈亮起(保持)-----蘭白過度(綠加1、紅加1循環(huán)240次、蘭不變)
---白紅過度,技術(shù)支持網(wǎng)站
:http://www.zg4o1577.cn/ 
全部程序源代碼:點(diǎn)此下載*/

2、具體程序如下:
#include<reg52.h>//MCU頭文件
#define uchar unsigned char//字浮型宏定義
#define uint unsigned int//整型宏定義
#define shudu 30//LED漸變速度調(diào)整
#define dengji 1//LED變化等級(jí)調(diào)整
sbit B1=P1^0;//紅色燈控制IO口
sbit G1=P1^1;//綠色燈控制IO口
sbit R1=P1^2;//蘭色燈控制IO口
uchar Rout,Bout,Gout;//紅綠蘭3個(gè)變量
/***************************************************/
/**********************延時(shí)子程序*******************/
/***************************************************/
void delay(uint z)
{
 uint x,y;//局部變量定義
 for(x=0;x<5;x++)//延時(shí)外循環(huán)
 for(y=0;y<z;y++);//延時(shí)內(nèi)循環(huán)
}
/**********************************************/
/**********PWM控制紅綠蘭3種燈亮滅時(shí)間**********/
/**********************************************/
void RGBpwm(uchar Rou,uchar Gou,uchar Bou)//3個(gè)局部變量,些部分為帶參數(shù)函數(shù)
{
 if(Rou!=0)//如果紅燈變量不等于0就亮紅燈
 {
  R1=1;//紅燈亮
  delay(Rou);//紅燈亮起時(shí)間
  R1=0;//紅燈滅
 }
 if(Gou!=0)//如果紅燈變量不等于0就亮紅燈
 {
  G1=1;//綠燈亮
  delay(Gou);//綠燈亮起的時(shí)間 
  G1=0;//綠燈滅
 }
 if(Bou!=0)//如果紅燈變量不等于0就亮紅燈
 {
  B1=1;//蘭燈亮
  delay(Bou);//蘭燈亮起的時(shí)間
  B1=0;//蘭燈滅
 }
}
 
/***********************************************/
/********************主程序*********************/
/***********************************************/
void main()
{
 TMOD=0x01;//選擇定時(shí)器在方式1下工作
 EA=1;//打開總中斷
 ET0=1;//打開定時(shí)器中斷
 TR0=1;//打開定時(shí)器
 R1=0;//開機(jī)將紅燈關(guān)閉
 G1=0;//開機(jī)將綠燈關(guān)閉
 B1=0;//開機(jī)將蘭燈關(guān)閉
 TH0=(65536-256)/256;//給定時(shí)器高8位賦值
 TL0=(65536-256)%256;//給定時(shí)器低8位賦值
 while(1)//程序主循環(huán)
 {
  RGBpwm(Rout,Gout,Bout);//調(diào)用RGBpwm子程序
 }
}
/*************************************************/
/*中斷服務(wù)子程序(控制LED紅綠蘭亮滅時(shí)間占空比例)*/
/*************************************************/
void zhong() interrupt 1//中斷向量位為1
{
 uint num;//定時(shí)器計(jì)數(shù)變量
 uint ji;//亮度等級(jí)控制變量
 TH0=(65536-256)/256;//給定時(shí)器高8位賦值
 TL0=(65536-256)%256;//給定時(shí)器低8位賦值
 num++;//將定時(shí)計(jì)數(shù)變自動(dòng)增加1
 if(num==shudu)//如果速度變量等于定時(shí)計(jì)數(shù)器變量就執(zhí)行下面大括號(hào)語句
 {
  num=0;//將計(jì)數(shù)器清0
  ji++;//將亮度等級(jí)控制變量加1
  if((ji>0)&&(ji<100))//如果亮度等級(jí)控制變量ji小于100,紅燈亮起時(shí)間變量為240
  {
   Rout=240;//紅燈亮起變量為240
   Gout=0;//綠燈亮起變量為0
   Bout=0;//蘭燈亮起變量為0
  }
  if((ji>100)&&(ji<340))/*如果亮度等級(jí)控制變量ji大于100小于340(剛好240個(gè)等級(jí)),
  紅燈亮起時(shí)間變量由原來的240,慢慢減小到0,同時(shí)綠燈由原來的0慢慢增到240,形成
  紅燈到綠燈的漸變過程*/
  {
   Rout-=dengji;//將紅燈變量減1。因?yàn)閐engji為亮度變化等級(jí)(本程序變化等級(jí)為1),
   Gout+=dengji;//將綠燈變量加1
   Bout=0;//蘭燈不變
  }
  if((ji>340)&&(ji<440))/*亮度等級(jí)控制變量ji大于340小于440時(shí),讓綠燈變量停一段時(shí)間
  這樣就形成了當(dāng)紅燈過度到綠燈時(shí),綠燈會(huì)停一會(huì)兒的效果。*/
  {
   Rout=0;//紅燈滅
   Gout=240;//綠燈亮
   Bout=0;//蘭燈滅
  }
  if((ji>440)&&(ji<680))//同理:亮度等級(jí)控制變量ji大于440小于680時(shí),由綠燈到蘭燈過度
  {
   Rout=0;//紅燈變量不變
   Gout-=dengji;//將綠燈變量減1
   Bout+=dengji;//將蘭燈變量加1
  }
  if((ji>680)&&(ji<780))//亮度等級(jí)控制變量ji大于680小于780時(shí),讓蘭燈變量停一段時(shí)間
  {
   Rout=0;//紅燈滅
   Gout=0;//綠燈滅
   Bout=240;//蘭燈亮一會(huì)兒
  }
  if((ji>780)&&(ji<1020))//亮度等級(jí)控制變量ji大于780小于1020時(shí),由蘭燈到白燈過度
  {
   Rout+=dengji;//將紅燈變量加1
   Gout+=dengji;//綠燈變量加1
   Bout=240;//蘭燈不變
  }
  if((ji>1020)&&(ji<1025))//亮度等級(jí)控制變量ji大于1020小于1025時(shí),由蘭燈到白燈過度
  {
   Rout=240;//將紅燈變量加1
   Gout=240;//綠燈變量加1
   Bout=240;//蘭燈不變
  }
  if((ji>1025)&&(ji<1265))//亮度等級(jí)控制變量ji大于1025小于1265時(shí),由白光到紅光過度
  {
   Rout=240;//紅燈變量不變
   Gout-=dengji;//綠燈變量自動(dòng)減1
   Bout-=dengji;//蘭燈變量自動(dòng)減1
  }
  if(ji>1265)//當(dāng)亮度等級(jí)控制變量ji大于1210時(shí),就將它清0
  ji=0;//將亮度控制等級(jí)清0
 }
}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 人人做人人澡人人爽欧美 | 日韩一区二区三区精品 | 日本中文在线视频 | 天堂影院av | 一区二区三区免费 | 国产一区二区三区久久久久久久久 | 久久综合一区二区三区 | 国产日韩欧美在线 | 成人一区二区三区 | 久久久久国产一区二区三区 | 91国内在线观看 | 日本超碰 | 精品一区国产 | 精品一二区 | 精品美女久久久 | 国产精品视频一区二区三区 | 成人看片在线观看 | 中文字幕免费在线 | 国产精品不卡一区 | 久久精品一| 日本精品一区二区三区在线观看视频 | 日韩一级免费电影 | 一区视频在线 | 午夜一区二区三区 | 午夜影视大全 | 国产精品视频一二三区 | 日韩久久久久久 | 国产中文在线观看 | 国产www. | 精品成人免费一区二区在线播放 | 成年人在线观看视频 | 成人欧美一区二区三区黑人孕妇 | 噜啊噜在线 | 亚洲视频在线播放 | 97精品视频在线 | 国产免费拔擦拔擦8x高清 | 国产精品久久精品 | 国产免费一区二区 | 国产精品一区二区福利视频 | 亚洲欧美自拍偷拍视频 | 亚洲黄色视屏 |