您的位置 首页 嵌入式

51单片机由软件完成的PWM控的LED渐亮、渐暗作用

#includereg51.h>sbitLEDR=P2^5;//P2.0引脚上接了一个红的发光二极管sbitLEDG=P2^6;//P2.1引脚上接了一个绿的发…

#include

sbit LEDR= P2 ^ 5; //P2.0引脚上接了一个红的发光二极管

sbit LEDG = P2 ^ 6; //P2.1引脚上接了一个绿的发光二极管

void delay (unsigned char d){ // 延时功用函数–由d决议延时长度

unsigned char i;

while( d– != 0)

{

for(i = 0; i < 8; i++);

}

}

void delay1 (unsigned int d){ // 延时功用函数–由d决议延时长度

unsigned char i;

while( d– != 0)

{

for(i = 0; i < 8; i++);

}

}

//Speed 1~9

//Direct 1\0

void Lighter( unsigned char Speed, bit Direct)

{

unsigned char Delay_Length, Loop_Time; // a操控延时长度 b操控循环周期

LEDR= Direct;

Delay_Length = 0x00;

for ( Loop_Time=0; Loop_Time<254; Loop_Time++)

{

// 界说半周期循环时刻(次数)

Delay_Length += Speed;

if (Delay_Length > 250)

break;

delay (Delay_Length); // 延时长度随a而改动

LEDR= Direct;

Delay_Length = ~Delay_Length; // a值取反 决议灯灭时的占空比

delay (Delay_Length);

LEDR= ~Direct;

Delay_Length = ~Delay_Length; // a值取反 使a回到原值持续循环

}

}

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

主程序:突变式LED闪耀

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

void main (void)

{ // 彩灯主函数 完成彩灯的显现

while (1)

{

delay1 (60000);

Lighter(9, 0);

delay1 (60000);

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/266554.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部