您现在的位置: 主页 > MCU > 单片机技术应用 > 51单片机利用LED宏,控制LED等的亮度 -
本文所属标签:
为本文创立个标签吧:

51单片机利用LED宏,控制LED等的亮度 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]经常用led灯来观察现象,甚至调试代码,修改代码时用0和1很不方便,而且阅读性也不好,利用个宏,用起来方便些。

 u=598658345,2312026540&fm=23&gp=0.jpg

本文引用地址: http://www.21ic.com/app/mcu/201704/717122.htm

经常用led灯来观察现象,甚至调试代码,修改代码时用0和1很不方便,而且阅读性也不好,利用个宏,用起来方便些。

今天尝试控制灯的亮度. 先试试for循环控制,占空比调节...

c代码

//#include "my51.h"

#include

typedef unsigned char u8;

typedef unsigned short int u16;

#ifndef _51LED_

#define _51LED_

#define led P1 //P1总线连8个led灯,灯连573锁存器,P1置低电平点亮

#define LED led

#define ON(x) P1&(~(1<<(x))) //打开某个灯,开多个灯用 ON(m) & ON(n)

#define OFF(x) P1|(1<<(x)) //关闭某个灯,关多个灯用 OFF(m)| OFF(n)

#define on(x) ON(x) //包含大小写

#define off(x) OFF(x)

#define ledon 0 //某个灯,打开

#define ledoff 1 //某个灯,关闭

sbit led0=P1^0;

sbit led1=P1^1;

sbit led2=P1^2;

sbit led3=P1^3;

sbit led4=P1^4;

sbit led5=P1^5;

sbit led6=P1^6;

sbit led7=P1^7;

sbit ledLock=P2^5; //锁定当前8个led的状态,0锁定 ,1不锁定

#endif

void ledCtr(u8 ledX,u8 per) //参数1是某个灯,参数2是亮度

{

u8 i=1;

for(i=1;i<=100;i++)

{

if(i

{

led=on(ledX) ; //打开灯

}

else

{

led=off(ledX); //关闭灯

}

}

}

void delayms(u16 ms) //毫秒级软延时函数

{

u16 i,j;

for(i=ms;i>0;i--)

{

for(j=113;j>0;j--)

{}

}

}

void main() //测试

{

led6=ledon; //打开6号灯,亮度100%

led=on(0); //打开0号灯,亮度100%

led=on(1) & on(5); //打开1号和5号灯,亮度100%

delayms(2000);

led0=ledoff; //关闭0号灯

led=off(6)|off(1)|off(5);//关闭1,5,6号灯

while(1)

{

ledCtr(2,5); //仅打开2号灯,亮度5%, 省电...

}

 

}



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > 51单片机利用LED宏,控制LED等的亮度 -
 

"51单片机利用LED宏,控制LED等的亮度 -"的相关文章

网站地图

围观()