点亮LED灯的三种方式标比较-课程设计

课程设计题目: 沟通对话的单片机---单片机人机界面及电子钟
所修课程名称: 《微机原理及应用》(1)
徐晓峰
2024.1.2


单片机人机界面及电子钟

一、设计目的

  (1) 软件安装,Proteus和Keil4
  (2) 软件使用熟悉
  (3) 建立一个单片机最小系统及基本电路,掌握I/O口使用、软件延时、定时/计数器基本应用等模块功能实现

二、设计任务

  项目内容:
  在单片机最小系统的基础上,配置I/O口基本输入输出接口,包括但不局限于LED、键盘、蜂鸣器等,实现以下功能:
  1) 通过键盘控制LED的亮灭,或其他输出器件的开关
  2) 采用软件延时控制LED或其他输出器件的开关,延时时间可调节
  3) 采用定时器和中断控制LED或其他输出器件的开关,延时时间可调节

三、设计内容

  选择AT89C51单片机模型创建工程,并添加元件组成8051单片机最小系统,包括LED、键盘(矩阵键盘)、8051单片机等。

  


在这里插入图片描述
  

  通过keil软件使用c语言编写8051程序。在Proteus中,配置仿真选项,选择关联的.h程序文件,设置仿真时钟频率。
  


在这里插入图片描述

  

  开始运行仿真,观察LED的状态随键盘输入的变化而改变。在仿真中,调试程序,确保LED的控制和键盘输入响应按预期工作。如果出现问题,根据仿真结果及时进行修改和优化。
  本次设计总体采用软件控制硬件的方式,用Keil软件编写相应C语言程序用于驱动和控制芯片的工作,同时应用Proteus仿真软件搭建仿真电路完成整体电路仿真。
  电路总体以AT89C51单片机为核心,由电源电路进行驱动,键盘电路进行控制,当按下键盘控制,单片机根据P1.0口的按键控制P2.0口的LED灯亮灭,按下复位键后恢复初始状态。

3.1 硬件设计与仿真

  使用八级联七段数码管,分别连接到到89C51单片机的P0口和P2口输出引脚上,共需要需要16个引脚来控制八级联7段数码管显示。
  设计键盘矩阵,连接4x4的键盘矩阵到89C51单片机的P1口输入引脚上,4行和4列需要8个引脚,其中4个用于输入行和4个用于输出列。并设计一个蜂鸣器以实现闹钟接口。
  主要实现的功能有,日期显示,时间显示,日期,时间切换,修改日期及时间,12小时/24小时切换 ,闹钟功能 ,闹钟关闭/打开 。
  所用的电子元器件有单片机89C51,八级联LED数码管(共阳极),上拉电阻,按键若干。因为需要实现闹钟,加入蜂鸣器,按键连接到P1.0-P1.6,P1.7连接蜂鸣器,P0,P2口控制显示器显示日期,时间等。
  


在这里插入图片描述

图 1 总体电路

3.2 局部电路

3.2.1晶振电路

  晶振电路主要用于产生12M 的晶振,给单片机提供工作信号脉冲。如图所示,将两个电容C1、C2串联在AT89C51的18和19端口即XTAL1和XTAL2两个端口,再并联一个晶振器(如图中Y1),最后整体接地,构成晶振电路。
  


在这里插入图片描述

图 2 晶振电路

3.2.2 复位电路

  将如图所示电路接入AT89C51的9号端口RST端口,用于总电路的复位。

在这里插入图片描述

图 3 复位电路

3.2.3按键电路

  使用独立式键盘的按键,当按下按键时,产生一个低电平,信号经过单片机处理,然后传递给P2.0口一个高电平,从而点亮LED灯

  


在这里插入图片描述

图 4 按键电路

3.2.4 LED灯电路

  


在这里插入图片描述

         <div align=center>图 5 显示电路

四、软件设计、说明与仿真

  通过89C51单片机循环读取按键此时的电平高低,从而判断是否在P2.0口输出高电平,这样就实现了通过键盘控制LED的亮灭。代码如下图
在这里插入图片描述
  

  通过在keil软件中调整延时函数delay的计数值多少,即可延时控制LED的亮灭。代码如下图所示。
  

在这里插入图片描述
  

  通过单片机的定时器进行定时中断,在中断服务程序中将单片机上完结单片机IO口来回置高电平或者是低电平的,从而让LED亮或灭。代码如下图所示。

在这里插入图片描述
  

五、联合仿真结果及分析

  键盘控制的系统运行图如下所示:
在这里插入图片描述

  当按下键盘后,LED灯亮,如图
在这里插入图片描述

  软件延时控制LED时,只需要调节延时函数的计数值即可

在这里插入图片描述

  通过单片机的定时器进行定时中断时,根据定时器设置时长,单片机自动改变电平

在这里插入图片描述

六、优化及讨论

  使用89C51单片机通过按键控制LED,用延时函数控制LED,用定时器控制LED这三种方式各有优缺点:
  通过按键控制LED的优点是相对简单,适用于简单的应用,不需要精确的时间控制,不要额外的硬件。缺点是响应时间受限于主循环的速度,不适合需要高精度定时控制的应用,不便于实现复杂的时间控制逻辑,如多个LED的不同闪烁频率。
  通过延时函数控制LED的优点是相对简单,具有一定的时间控制能力,适用于需要基本的时间控制的应用。缺点是延时函数会占用CPU资源,降低系统的响应速度,不适用于需要较长、稳定和高精度的延时的应用。
  通过定时器控制LED的优点是精确的时间控制,不受CPU负载的影响,允许多任务并行执行,提高系统的响应速度,可以轻松实现复杂的时间控制逻辑。
  缺点是配置和编程相对复杂,需要理解定时器的工作原理,需要了解硬件的特性,如时钟频率和定时器寄存器的操作。
  总之,使用89C51单片机通过按键控制LED简单易懂但响应时间有限,延时函数控制LED具备一定时间控制能力但会占用CPU资源,定时器控制LED提供精确时间控制,允许多任务并行执行,适用于高精度、长时间延时和复杂时间控制的应用,但需要更复杂的配置和编程。所以选择LED控制方式应根据应用需求和硬件特性进行权衡。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值