51单片机LED灯渐明渐暗实验

51单片机LED灯渐明渐暗实验

1.概述

这篇文章介绍使用单片机控制两个LED彩灯亮度渐明渐暗效果,详细介绍了操作步骤以及完整的程序代码,动手就能制作的小实验。

2.操作步骤

2.1.硬件搭建

1.硬件准备
名称 型号 数量
单片机 STC12C2052AD 1
LED彩灯 2
晶振 12MHZ 1
电容 30pf 2
电阻 100欧姆 2
面包板 1
连接线 5
2.硬件链接电路图

根据下面的电路图将与元器件与单片机连接好,注意LED灯只需要连接19和18两个引脚即可,其他不需要链接。

2.2.程序代码

c 复制代码
/*************************************************************
* 程序名: 两个LED灯亮度渐亮渐暗
* 编写人: bruce
* 硬件支持:TC12C2052 外部12MHZ晶振
* 日  期: 2023-11-14
* 修改日志: 通过控制LED灯亮和灭的时间实现亮度渐变效果,可修改a变量值观察LED灯变化效果
/*************************************************************/

#include<STC12C2052AD.H>

sbit LED1 = P1 ^ 7;
sbit LED2 = P1 ^ 6;

/*********************************************************************************************
函数名:毫秒级CPU延时函数
调  用:DELAY_MS (?);
参  数:1~65535(参数不可为0)
返回值:无
结  果:占用CPU方式延时与参数数值相同的毫秒时间
备  注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
	unsigned int i;
	while( --a != 0){
		for(i = 0; i < 600; i++);
	}
}

void main(void){
	while(1){
		unsigned char a;
		for(a=1;a<20;a++){
			LED1 = 0;
			LED2 = 1;
			// 通过修改延迟值改变灯亮灭的时间,达到渐亮渐暗效果
			DELAY_MS(a);
			LED1 = 1;
			LED2 = 0;
			DELAY_MS(20-a);
		}
		for(a=19;a>0;a--){
			LED1 = 0;
			LED2 = 1;
			DELAY_MS(a);
			LED1 = 1;
			LED2 = 0;
			DELAY_MS(20-a);
		}
		
	}

}

2.3.烧录程序

使用Keil工具编译程序,打开STC-ISP软件选择编译后的hex文件,设置外部晶振,下载程序。将程序烧录到单片机后,在给单片机冷启动(断掉5V电源在上电)使单片机切换为外部晶振,观察两个LED灯交替明暗变化。

相关推荐
点灯小铭17 分钟前
双积分AD转换电路
单片机·毕业设计·课程设计·期末大作业
youcans_37 分钟前
【动手学STM32G4】(8)STM32G431之 DAC进阶
stm32·单片机·嵌入式硬件·dma·定时器
hqwest40 分钟前
码上通QT实战14--监控页面06-串口设备数据初始化-
单片机·rs232·serialport·波特率·串口设备·虚拟串口设备软件·qt项目配置文件
qq_397562311 小时前
BMI088 , 传感器的使用经验 . ( SPI 模式 )
单片机
点灯小铭1 小时前
基于单片机的智能收银机模拟系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
TEC_INO1 小时前
STM32_9:I2C_DHT11_OLED项目
stm32·单片机·嵌入式硬件
__万波__1 小时前
STM32基于HAL 库开发包创建新的工程-编译-烧录
stm32·单片机·嵌入式硬件
曾浩轩2 小时前
跟着江协科技学STM32之4-5OLED模块教程OLED显示原理
科技·stm32·单片机·嵌入式硬件·学习
BreezeJuvenile2 小时前
ADC_案例练习:独立模式多通道采集
stm32·单片机·adc·多通道采集·dma辅助
代码游侠2 小时前
学习笔记——HC-SR04 超声波测距传感器
开发语言·笔记·嵌入式硬件·学习