2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 单片机C语言控制16*16LED显示屏 基于单片机的pwm控制16*16led点阵亮度调节怎么做啊 ...

单片机C语言控制16*16LED显示屏 基于单片机的pwm控制16*16led点阵亮度调节怎么做啊 ...

时间:2018-06-30 06:01:55

相关推荐

单片机C语言控制16*16LED显示屏 基于单片机的pwm控制16*16led点阵亮度调节怎么做啊 ...

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#define uintunsigned int

#define uchar unsigned char

//定义控制灯的端口

#define LED1 P1_0 //定义LED1为P10口控制

#define KEY1 P0_0 //KEY1为P00口控制

//函数声明

void Delay(unsigned int t); //函数声明

void InitIO(void); //初始化LED控制IO口函数

void InitKey();

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned int CYCLE=1000,PWM_LOW=0;//定义周期并赋值

InitIO();

InitKey();

while (1) //主循环

{

if(KEY1==0)

{

//S1按下,一直按着哦。

PWM_LOW++;

if(PWM_LOW>CYCLE)

{

PWM_LOW=CYCLE-1;

}

}

else

{

PWM_LOW--;

if(PWM_LOW<1)

{

PWM_LOW=1;

}

}

if(PWM_LOW==1)

{

LED1=0;

}

else if(PWM_LOW==CYCLE)

{

LED1=1;

}

else if(CYCLE>PWM_LOW)

{

LED1=1;

Delay(PWM_LOW);

LED1=0;

Delay(CYCLE-PWM_LOW);

}

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(t)

{

t--;

t++;

t--;

}

}

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

//初始化IO口程序

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

void InitIO(void)

{

P1DIR |= 0x01;//P10定义为输出

}

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

按键初始化函数

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

void InitKey()

{

P0SEL &= ~0x01; //设置P0.0为普通IO口

P0DIR &= ~0X01; //按键接在P00口上,设P00为输入模式

P0INP &= ~0x01; //打开P00上拉电阻

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。