概要

本次实验使用STC89C52单片机的P1.0引脚外接LED灯,通过软件控制引脚高低电平翻转,配合延时函数实现LED周期性闪烁。

硬件搭建

使用Proteus仿真软件搭建电路,可参考如下图搭建。

代码编写

使用Keil5软件进行代码的编写,源码如下:

#include <reg52.h>// 包含51单片机寄存器定义的头文件,必须写
typedef unsigned int u16;// 给unsigned int起别名u16,方便简写
typedef unsigned char u8;// 给unsigned char起别名u8,方便简写
sbit LED=P1^0;// 定义LED接在P1.0口,后面直接用LED代替P1_0
/**
 * @brief  简单延时函数
 * @param  i 延时长短,数值越大延时越久
 */
void delay_ms(u16 ms)//ms延时函数
{
    u16 i, j;
    for(i = ms; i > 0; i--)
        for(j = 110; j > 0; j--);//1ms循环
}

/**
 * @brief  主函数,程序入口
 */
void main(void)
{
    
    while(1)// 无限循环,让LED以1秒的频率闪烁
    {
        LED = 0;    // P1.0输出低电平 → 点亮LED
        delay_ms(1000); // 保持亮一段时间(1000ms=1s)

        LED = 1;    // P1.0输出高电平 → 熄灭LED
        delay_ms(1000); // 保持灭一段时间 (1000ms=1s)
    }
}

编译下载

1.程序编写好后进行编译,点击图中左上角的编译按键,然后查看下方的编译结果以及下载文件(.hex)的路径。

2.程序没问题后就可以将hex文件导入proteus工程中。

3.导入完下载文件后,点运行就可以看到LED以1秒的时间间隔闪烁了。

小结

本次LED闪烁实验是51单片机入门的基础案例,通过对IO口的控制、sbit位定义的使用以及延时函数的封装,让我们初步掌握了单片机程序的基本结构与控制逻辑。

 

 

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐