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

单片机闪烁灯实验

《单片机原理与应用》实验报告

实验三、闪烁灯

1.实验目的

在P0.0 端口上接一个发光二极管D7,使D7 在不停地一亮一灭,一亮一灭的时间间隔为1 秒。

2.实验步骤

首先,安装Vision5和STC-ISP软件,在本地部署。其次,拿到单片机,了解到其型号为STC12C5A60S2,找到其原理图,如图2-1所示。把“单片机系统”区域中的P0 端口旁边的跳线帽跳到’LED’端,使LED灯接到P0 端口上。之后,打开Vision5新建项目,编写闪烁灯代码,设计延时程序函数,如表2-1所示。然后,打开STC-ISP,选择对应的单片机型号,打开.hex文件,载入程序,进行烧录。

图2-1 STC12C5A60S2原理图

表2-1 闪烁灯代码

#include <REGX52.H>

#include <INTRINS.H>

void Delay500ms()         //@12.000MHz

{

        unsigned char i, j, k;

        _nop_();

        i = 4;

        j = 205;

        k = 187;

        do

        {

                 do

                 {

                         while (--k);

                 } while (--j);

        } while (--i);

}

void main()

{

        while(1)

        {

                 P2=0xBF;       //1111 1110

                 Delay500ms();

                 P2=0xFF;        //1111 1111

                 Delay500ms();

        }

}

3.实验结果

根据上述操作,我们完成了代码的撰写和代码的烧录。单片机运行结果如图3-1所示。当P0.0 端口输出高电平,即P0.0=1 时,根据发光二极管的单向导电性可知,这时发光二极管D7 熄灭;当P0.0 端口输出低电平,即P0.0=0 时,发光二极管D7 亮。

(a)

(b)

图3-1 实验结果

4.实验体会

通过本次实验,我深入理解了单片机I/O端口的基本操作原理以及延时程序的设计方法。实验中,我们通过配置P0.0端口的电平状态(高电平或低电平)来控制LED灯的亮灭,并利用软件延时实现1秒的间隔闪烁。在调试过程中,我发现延时函数的精度对实验结果影响较大,需通过调整循环次数来优化定时效果。此外,通过查阅STC12C5A60S2的数据手册,我进一步掌握了该型号单片机的硬件特性,例如其I/O端口的驱动能力和寄存器配置方式。本次实验不仅巩固了我的编程能力,还提升了硬件调试技能,为后续复杂实验奠定了基础。本次实验使我系统地学习了单片机控制LED闪烁的实现方法,包括硬件电路连接、软件编程及程序烧录等关键步骤。在实验中,我注意到跳线帽的正确连接对电路功能至关重要,若未将P0端口跳至LED端,则无法实现预期效果。此外,延时函数的设计需要结合单片机的时钟频率进行计算,单纯依赖经验值可能导致定时不准确。通过使用STC-ISP工具烧录程序,我熟悉了单片机开发的全流程,并认识到程序调试中逻辑严谨性的重要性。未来,我将进一步研究中断定时器替代软件延时的方法,以提高系统的实时性和可靠性。

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

相关文章:

  • HDFS数据倾斜导致MapReduce作业失败的排查与优化实践
  • 3分钟解锁网页“硬盘“能力:离线运行VSCode的新一代Web存储技术
  • 【数据分享】2022 年黑龙江省小麦、玉米和水稻幼苗影像数据集
  • 经典回顾:Hive执行原理、MapReduce执行流程、Spark执行流程
  • 系统思考:情绪内耗与思维模式
  • 学习笔记与效率提升指南:编程、记忆与面试备考
  • 腾讯云开发小程序工具箱使用心得
  • LeetCode Hot100:递归穿透值传递问题
  • 三天速通 Vue+Flask+SQLite 项目+阿里云轻量应用级服务器【宝塔面板】①
  • 【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器
  • 非中文语音视频自动生成中文字幕的完整实现方案
  • 【HarmonyOS】鸿蒙应用迁移实战指南
  • STM32传感器模块编程实践(十四)DIY语音+满溢检测智能垃圾桶模型
  • 开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘
  • 17.3 删除购物车商品
  • 【科研绘图系列】R语言绘制多种饼图
  • 20day-人工智能-机器学习-线性回归
  • 超高车辆碰撞预警系统如何帮助提升城市立交隧道安全?
  • 【机器学习深度学习】生成式评测
  • 金融项目高可用分布式TCC-Transaction(开源框架)
  • 服装企业客户满意度调查:民安智库的市场调研赋能实践(北京市场调查)
  • 汽车行业 AI 视觉检测方案(二):守护车身密封质量
  • 指针类型:解引用与运算的关键
  • 电子电气架构 --- 探索软件定义汽车(SDV)的技术革新
  • 基于多模型的零售销售预测实战指南
  • Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
  • 【java】对word文件设置只读权限
  • 英文PDF翻译成中文怎么做?试试PDF翻译工具
  • Canal 技术解析与实践指南
  • ffmpeg 安装、配置与使用完全指南