欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機呼吸燈代碼問題,請教下大神,已經折騰很久了(我是菜鳥)
[打印本頁]
作者:
barret.zhang
時間:
2019-6-2 09:20
標題:
單片機呼吸燈代碼問題,請教下大神,已經折騰很久了(我是菜鳥)
開發需求是:
1. 剛開始LED1和LED2均滅
2. LED1漸亮漸滅一次,然后LED1滅。
3. LED2漸亮漸滅一次,然后LED2滅。
就這樣一直循環
我寫的代碼為何實現不了,求大神解答,折騰很久了
#include "reg51.h"
sbit LED1=P2^0;
sbit LED2=P2^1;
unsigned char cycle=0;
unsigned int step=1;
unsigned int bright=0;
unsigned char cycle2=0;
unsigned int step2;
unsigned int bright2=0;
void test1(void);
void test2(void);
void delay(unsigned int time_i);
void main()
{
while(1)
{
test1();
test2();
}
}
void test1(void)
{
if(++cycle >250)
{
cycle = 0;
switch (step)
{
case 1 :
bright++;
if(bright > 250)
{
step ++;
}break;
case 2 :
bright--;
if(bright < 1)
{
step2 = 1;
}break;
}
}
if(cycle < bright)
{
LED1=0; //燈亮
}
else
{
LED1=1; // 燈滅
}
}
void test2(void)
{
if(++cycle2 >250)
{
cycle2 = 0;
switch (step2)
{
case 1 :
bright2++;
if(bright2 > 250)
{
step2 ++;
}break;
case 2 :
bright2--;
if(bright2 < 1)
{
step = 1;
}break;
}
}
if(cycle2 < bright2)
{
LED2=0; //燈亮
}
else
{
LED2=1; //
}
}
作者:
suncat0504
時間:
2019-6-3 16:13
我的印象里,呼吸燈使用脈寬比控制的,需要控制高低電平的時間比。是不是需要使用定時器,通過動態調節TH、TL的初裝值,來實現輸出不同脈寬比的信號。
作者:
陳潤源home
時間:
2019-6-3 17:46
你可以看看我之前發的帖子
作者:
幻劍心
時間:
2019-6-3 18:16
#include "reg51.h"
sbit LED1=P1^0;
sbit LED2=P1^1;
unsigned char cycle=0;
unsigned int step=1;
unsigned int bright=0;
unsigned char cycle2=0;
unsigned int step2;
unsigned int bright2=0;
void test1(void);
void test2(void);
void delay(unsigned int time_i);
void main(){
while(1){
test1();
test2();
}
}
void test1(void){
if(++cycle >250){
cycle = 0;
switch (step){
case 1 :
bright++;
if(bright > 250){
step ++;
}break;
case 2 :
bright--;
if(bright < 1){
step = 3;
step2 = 1;
}break;
}
}
if(cycle < bright){
LED1=0; //燈亮
}
else{
LED1=1; // 燈滅
}
}
void test2(void){
if(++cycle2 >250){
cycle2 = 0;
switch (step2){
case 1 :
bright2++;
if(bright2 > 250){
step2 ++;
}break;
case 2 :
bright2--;
if(bright2 < 1){
step2 = 3;
step = 1;
}break;
}
}
if(cycle2 < bright2){
LED2=0; //燈亮
}
else{
LED2=1; //
}
}
換LED的步驟出錯了。將這個和你的程序對照下就清楚了。
作者:
ZGJ20170905
時間:
2019-6-5 10:17
漸亮漸滅需要用PWM實現
作者:
barret.zhang
時間:
2019-6-8 10:41
幻劍心 發表于 2019-6-3 18:16
#include "reg51.h"
sbit LED1=P1^0;
好的,非常感謝
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1