51单片机两种PWM呼吸灯的实现方法(STC15FK60S2)

本文介绍了使用C语言和STC15F2K60S2单片机开发的LED控制程序,涉及延时函数和定时器的应用,通过改变占空比实现LED的亮度调节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

蓝桥杯板子.

这不是一个工程(毫无技术水平),时钟系统2.0还在赶,争取明天发.

可怜的孩子就写了一篇来完成新人任务.

还不懂硬件pwm,pwm还有别的很多作用,呼吸灯只是抛砖引玉.

延时版

#include <STC15F2K60S2.H>
#include <intrins.H>
unsigned char i,time;
void P2andP0(unsigned char p2,p0,p42)
{	
	P42=p42;
	P0=p0;
	P2=p2;
	P2=0;//防止被别的操作修改P0而影响了
}
void Delay1ms(unsigned char t)	//@12.000MHz
{
	while(t--); //一定要是空循环,不然用软件生成的一闪一闪很明显	
}

void main()
{
	P2andP1(0xA0,0,0);//初始化关闭嗡鸣器继电器
	while(1)
	{
		for(time=0;time<100;time++)//由暗到亮,以100为单位符合百分之多少多少的占空比
		{
			for(i=0;i<200;i++)//改变变化快慢,每个亮度持续时间
			{
				P2andP1(0x80,0,0);
				Delay1ms(time);
				P2andP1(0x80,0xFF,0);
				Delay1ms(100-time);//原理是改变亮暗的比例(占空比)
			}
		}
		for(time=100;time>0;time--)//由亮到按
		{
			for(i=0;i<200;i++)
			{
				P2andP1(0x80,0,0);
				Delay1ms(time);
				P2andP1(0x80,0xFF,0);
				Delay1ms(100-time);
			}
		}
	}
}

解释</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值