• 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
    
    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);
    		}
    		
    	}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    2.3.烧录程序

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

  • 相关阅读:
    Python 网络请求模块 urllib 、requests详解
    嵌入式系统中的GPIO控制与应用
    Vsftp安装配置(超详细版)
    Docker赋能物联网:探索软件供应链的优势、挑战和安全性
    10.31+11.1
    8.StringTable(字符串常量池)
    基于SSM+Vue的医院住院综合服务管理系统的设计与实现
    接口的触发形式类型有哪些?
    Bugku sql注入
    编译器一日一练(DIY系列之语法树打印)
  • 原文地址:https://blog.csdn.net/m0_38039437/article/details/134546374