51单片机使用按键控制LED灯亮度,要求使用PWM波完成,即更改PWM波的占空比
急,朋友们,代码发一下谢谢了#include <REGX52.H>
#include <intrins.h>
#define u8 unsigned char
#define u16 unsigned int
sbit D1=P2^0;
void Delay100us() //@11.0592MHz
{
unsigned char i;
_nop_();
i = 43;
while (--i);
}
void Delay5ms() //@11.0592MHz
{
unsigned char i, j;
i = 9;
j = 244;
do
{
while (--j);
} while (--i);
}
u8 key()
{
static u8 key_en=1;
u8 value;
value=0;
if(key_en==1&&(P3_0==0||P3_1==0))
{
key_en=0;
Delay5ms();
if(P3_1==0)
value=2;
if(P3_0==0)
value=1;
Delay5ms();
}
else if(P3_0==1&&P3_1==1)
key_en=1;
return value;
}
void main()
{
u8 i;
u8 propor; //Õ¼¿Õ±È
u8 value; //¼üÅÌ·µ»ØÖµ
propor=5;
while(1)
{
for(i=0;i<10;i++)
{
if(i<propor)
D1=0;
else
D1=1;
Delay100us();
}
value=key();
if(value)
{
switch(value)
{
case 1:propor++;break; //Ôö¼ÓÁÁ¶È
case 2:propor--;break; //¼õµÍÁÁ¶È
default:break;
}
if(propor==10)
propor=9;
if(propor==255)
propor=0;
}
}
} cute 发表于 2023-1-29 22:05
刚开始弄这个,注释有乱码了
页:
[1]