(含报告,记得关注)基于8051高性能单片机的LED灯闪烁、亮灭、循环移动、跑马灯设计设计

摘要

本设计基于8051高性能单片机AT89C52,实现了LED灯的多种动态效果,包括闪烁、亮灭、循环移动、跑马灯。通过C语言程序控制,利用AT89C52的GPIO端口控制LED的状态变化,实现了简单而富有趣味性的光效。在程序中,使用delay函数进行简单的延时,通过控制LED的引脚状态,实现了四种不同的LED灯效。LED1进行简单的闪烁,LED2在亮灭之间切换,LED3呈现循环移动的效果,LED4则表现为跑马灯式的动态。

关键字:8051单片机、C语言编程、LED控制

目录

一、课程设计名称 1

二、设计目的 1

三、设计原理图 1

四、设计内容 2

1硬件电路搭建 2

2软件程序编写 3

3调试测试 4

五、设计步骤与结果 4

1 设计步骤 4

2 设计结果 11

六、总结 12

1 实验当中遇到的问题 12

2实验总结 13

七、附录 13

1 参考文献 13

2 程序代码 13

    3结果展示...............................................................................................................................15

课程设计名称

基于8051高性能单片机的LED灯闪烁、亮灭、循环移动、跑马灯设计设计

二、设计目的

(1) 设计目的在于展示如何组织代码、定义引脚、使用循环结构等,从而为日后更复杂的嵌入式开发奠定基础。

(2) 将其应用到实际电路中进行设计;

(3) 培养我们的动手能力和软硬件结合能力。

三、设计原理图

本次实训所需的电路主要由STC89C52单片机、晶振、二极管、电解电容以及排阻等组成。具体电路原理图如下所示:

图1 电路原理图

四、设计内容

本设计主要分为以下几个部分:

1、硬件电路搭建

为实现电路原理图,首先收集原理图上的对应物料,物料列表如图4-1所示:

图2 物料列表图

2、软件程序编写

利用Keil C51集成开发环境,编写相应的程序代码。主要包括等部分的编写

图3代码运行及结果图

图4代码运行结果图

3、调试测试 

在电脑中配置好ST-USB设备驱动。将转接线连接在单排针的对应位置上,再将转接线的USB接口连接到电脑,通过软件stc-isp将编写好的.hex代码文件烧录到STC89C52芯片中。

烧录完成后,按下电源按钮,即可看到代码文件的实际运行结果,根据结果对代码进行调整,再重复以上步骤,直到达到预期效果。

五、设计步骤与结果

1、设计步骤

1.1硬件设备准备

收集完毕后,全部元件如下图5所示:

图5 元件实物展示图

1.2搭建硬件电路:

将准备好的元件按照电路原理图以及物料列表中给的位号,将元件焊接在开发板上。小组成员焊接操作图:

图6焊接操作图

将各个元件焊接在对应位置。特别注意元件的正负方向,例如发光二极管较长的引脚为正极,较短的为负极,则要分别对应开发板上标识的正负位置。还要注意,在进行焊接前,对于有方向的元器件先用万用表的电源档进行测试,确定好器件本身无质量问题以及器件的正负方向后,再进行焊接,尽量避免二次加工。全部元件焊接完成的展示图如图7、图8所示:

图7焊接完成电路板背面展示图

图8 焊接完成电路板正面展示图

按照原理图连接各个器件,连接完成后,接上电源进行测试,保证电路工作正常。

1.3软件程序编写

代码编写:

硬件配置和常量定义:在代码开头,首先进行硬件配置和常量定义。这包括定义LED的引脚以及一些常量,如延时时间。

延时函数的定义:在程序的开头,定义一个通用的延时函数,以便在后续的LED效果模块中使用。

LED效果模块的设计:将每个LED效果设计为独立的模块,例如闪烁、亮灭、循环移动、跑马灯。每个模块使用参数来控制LED引脚和延时时间,提高代码的灵活性。

1.4调试测试

将编写好的程序进行编译链接,若无报错,则调试成功。反之,根据报错信息,进行修改代码。直至无报错信息。

1.5上传程序

安装ST-USB驱动

将转接线的USB接入电脑,可在设备管理器界面看到新增设备,如图9所示:

图9 新增设备示意图

在此设备的右键菜单中,选择“更新驱动程序软件”,可看到如下窗口:

图10搜索驱动程序示意图

选择第二项,选中电脑中存储的驱动程序文件,看到图11代表安装成功。

图11驱动安装成功示意图

烧录程序

将已经调试好的程序烧录到STC89C52芯片上。关闭电源开关,停止给单片机供电。打开软件stc-isp准备烧录程序。

图12 stc-isp软件界面

发现串口未自动识别。将转接线的USB重新接入电脑,此时软件可以自动识别端口。

点击“打开程序文件”,选择已编写好的.hex文件。再点击“下载/编程”,结果如图13所示:

图13代码文件下载结果图

最后,将已经调试好的程序烧录到STC89C52芯片上,并且进行整体测试和调试,确保LED灯在控制下能够正常工作。

2、设计结果

设计结果主要涵盖了对LED灯的多种动态效果,包括闪烁、亮灭、循环移动和跑马灯。

LED闪烁效果: LED以固定的时间间隔交替闪烁。

LED亮灭效果: LED以固定的时间间隔从亮到灭,再从灭到亮交替变化。

LED循环移动效果: LED以固定的时间间隔在多个LED之间循环移动。

LED跑马灯效果: 两个LED以固定的时间间隔在不同的位置交替点亮,产生跑马灯效果。

六、总结

1、实验当中遇到的问题

 LED不亮或不闪烁:

解决方案: 仔细检查硬件连接,确保LED正确连接到单片机引脚。对于每个LED,可以逐个测试,找出具体有问题的LED。

原因:发现错误的硬件连接,LED引脚接错,正负极接反了。

2、实验总结

    在这次基于8051单片机的LED灯动态效果设计实验中,我学到了很多关于嵌入式系统和低级别编程的知识。通过实验,我更深入地理解了嵌入式系统的基本原理,包括单片机与外部硬件的交互,以及程序如何控制硬件执行特定任务。 这次实验让我熟悉了8051单片机的基本编程,包括引脚配置、延时控制等,为将来的嵌入式开发打下了坚实的基础。实验中,我学到了如何编写清晰、模块化的代码,通过将LED效果设计为独立的函数,提高了代码的可读性和可维护性。通过参数化设计,我能够轻松地调整LED效果的延时时间,使得代码更加灵活,适应不同的需求。 在实验过程中,我遇到了硬件连接错误等问题,通过良好的错误处理机制和调试技能,我能够快速找到问题并解决。 通过实验,我学到了设计一个小型嵌入式系统的一般思路,包括硬件配置、模块化设计、参数化和可配置性等。: 实验结果也启发了我对未来可能的扩展和优化方向的思考,例如添加更多的LED效果或通过外部输入设备来控制LED。总的来说,这次实验不仅加深了我对嵌入式系统和8051单片机的理解,还提高了我的编程和调试能力。在将来的学习和项目中,我将继续积累经验,不断改进和拓展我的嵌入式开发技能。

七、附录

1、参考文献

[1] 《计算机硬件系统综合设计》指导手册

[2] ZS5110开发板说明书

2、 程序代码

#include <REG52.H>

void delay(unsigned int count) {

    while(count--);

}

void main() {

    bit LED1 = P1^0;

    bit LED2 = P1^1;

    bit LED3 = P1^2;

    bit LED4 = P1^3;

    while(1) {

        LED1 = 1;

        delay(50000);

        LED1 = 0;

        delay(50000);

        LED2 = 1;

        delay(50000);

        LED2 = 0;

        delay(50000);

LED3 = 1;

        delay(50000);

        LED3 = 0;

        delay(50000);

        LED3 = 1;

        delay(50000);

        LED3 = 0;

        delay(50000);

        LED4 = 1;

        delay(50000);

        LED4 = 0;

        delay(50000);

        LED3 = 1;

        delay(50000);

        LED3 = 0;

        delay(50000);

    }

}

实验结果展示(闪烁、循环移动、跑马灯、亮灭,因无法插入视频,故采取图片展示)

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值