当前位置: 首页 > news >正文

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

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

1.概述

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

2.操作步骤

2.1.硬件搭建

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

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

2.2.程序代码

/*************************************************************
* 程序名: 两个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灯交替明暗变化。

http://www.lryc.cn/news/238743.html

相关文章:

  • 美团面试:微服务如何拆分?原则是什么?
  • easyExcel注解详情
  • S7-1200PLC 作为MODBUSTCP服务器通信(多客户端访问)
  • 泰勒多项式
  • 【Hello Go】Go语言文本文件处理
  • ppt录屏制作微课,轻松打造精品课程
  • php伪随机数
  • 为什么录屏没声音?实用技巧大放送!
  • 分布式系统的认证授权
  • TVS瞬态抑制二极管的工作原理和特点?|深圳比创达电子EMC
  • csdn - mermaid
  • C题目11:数组a[m]排序
  • 编译器安全
  • docker部署gitlab 12.10.6过程
  • 单例设计模式是什么?什么是 Singleton 单例设计模式?Python 单例(单件)设计模式示例代码
  • Redis跳跃表
  • C++基础从0到1入门编程(二)
  • Uniapp扫码预览连接地址与手机不在同一网段
  • 万界星空科技SMT行业生产管理MES系统解决方案
  • vue3 uniapp h5 安卓和iOS开发适配踩坑记录
  • inf和nan
  • 十. Linux关机重启命令与Vim编辑的使用
  • Spring-IOC-@Value和@PropertySource用法
  • 如何理解Python中一切皆对象?
  • 【如何学习Python自动化测试】—— 鼠标键盘操作
  • 随笔-事儿就这么个事儿
  • django理解03 数据库引入
  • Jtti:windows中apache怎么实现负载均衡
  • 2311rust,到43版本更新
  • 前端埋点上报的几种方式